朋友发给我一个tif图像,422M,的确够大,
用Photoshop打开,像素数只有3500*6000,按照24位RGB,实际计算出来只有60M多一点,为什么会超出300多M,图像的的附加信息,例如宽、高、色空间等等,也不应该这么多呀。
第一想到的是嵌入了icc文件,但是AdobeRGB的icc也不大呀。
于是“另存为”了一下,把icc文件去掉,还是保存为tif,结果不出所料,还是很大。
因为tif保存图像是靠tag,想到可能还有其他tag保存了更多信息,于是把所有的tag读出来:
256、257、258、259、33723、262、34377、273、274、277、278、279、33432、282、283、284、296、34665、305、306、34675、315、700、254,这些tag的具体信息可以参阅https://blog.csdn.net/chenlu5201314/article/details/56276493 ,当然也可以参考iso标准,网上的比较便捷。
比如256保存的是图像宽度,257是图像长度,等等,这些都占用不了几个字节。
把各个tag的长度再读一下:
问题一下就找到了,tag700居然有300多兆,tag 34377有12K左右可以忽略不计。
tag 700是包含了XMP数据的XML包,属于扩展tag。
XMP(Extensible Metadata Platform)是Adobe公司提出的关于元数据的创建,处理和交换的一套标准。在制作和管理文档或图像时,如果在相关文件中包含有元数据(如标题,摘要,作者,版权等信息)则可通过元数据来归纳,分类,搜索等,也能获得各种参考资料,使处理过程变得很方便。但是也发现,如果在整个制作管理过程中要用到不同的应用软件,这些软件可能有自己的元素数据格式,于是在软件衔接部分就会带来很多麻烦。XMP最初的意图是使所有的Adobe软件都有统一的元数据标准,只要在制作过程中都使用Adobe软件就可以使整个流程畅通无阻,非常方便。随着很多公司支持和采纳,XMP已得到广泛使用,在2012年XMP成为国际标准ISO 16684-1。
在XMP中元数据采用RDF形式来表达,整个XMP文档用XML语言编写,所以在讲述XMP前有必要先简单介绍一下XML和RDF。
再读一下tag 700内容
因为没有研究过XMP,好像是记录的图像的所有的处理过程,可能从图像创建开始,操作者的每一步都记录下来了。
下一步就是如何去除掉这个tag 700,查了一下好像要装一些软件,那是不可能的。当然写程序也能够搞定,为了这一个图像写半天程序好像划不来。那就自由把图像另存一下了,存tif不行,已经试过了,psd也不行,保持在412M,存jpg有损失,那就jpg2000,。
出了个对话框
把“包含元数据”前面的勾去掉,颜色设置最好保留,把勾选上,保存结果是:
只有16M了,比以前小了400M,如果非要tif格式,再保存为tif,不压缩,回到了正常的61M
当然很多exif信息就丢掉了。