Closed WuyiSun closed 3 years ago
Tiff本身对Exif来说是Image IFD,而JPEG的Exif是独立的。你插入的是一个Tiff tag,它属于Image IFD。对于Tiff,为了不破坏图像的完整性,除了极个别的tag,是不允许更新的。比如你如果不小心改动了图像的尺寸等等属性,图像解码就可能出现错误。基于以上原因,如果用Metadata.insertExif(fin, fout, updatedExif, true)的方式来更新已经存在的tag就会报错。JPEG和Tiff不同,它的Exif本身是和图像解码无关的。所以不会受到以上限制。
你可以修改TiffTag里的SoftWare tag,让它的iscritical方法返回false,然后你就可以修改这个tag的值了。
Hi 你好, 我试图用Metadata.insertExif(fin, fout, updatedExif, true)的方式来更新一张tiff图片的某些exif tags。但是对于要更新的field,比如"Copyright" 或者 "Software", 在我用Metadata.insertExif(fin, fout, updatedExif, true) 的时候总是在报错 (Runtime Exception: Duplicate Tag)。 但是同样的代码对于jpg更新exif就没有问题。 想请教一下为什么? 附上代码片段:
使用的图片是您的测试文件exif.tiff (https://github.com/dragon66/icafe/blob/master/images/exif.tif)
谢谢! Wuyi