【发布时间】:2013-11-16 04:02:23
【问题描述】:
为了减少要在网站中使用的图像的大小,我将质量降低到 80-85%。这在一定程度上减小了图像大小。
为了在不影响质量的情况下进一步缩小尺寸,我的朋友指出,来自相机的原始图像有很多称为 Exif 信息的元数据。由于不需要为网站中的图像保留此 Exif 信息,我们可以将其删除。这将进一步减少 3-10 kB 的大小。
但我无法在我的 Python 代码中找到合适的库来执行此操作。我浏览了相关问题,并尝试了一些方法:
原图:http://mdb.ibcdn.com/8snmhp4sjd75vdr27gbadolc003i.jpg
-
/usr/local/bin/mogrify -strip filename结果:http://s23.postimg.org/aeaw5x7ez/8snmhp4sjd75vdr27gbadolc003i_mogrify.jpg 这种方法将大小从 105 kB 减小到 99.6 kB,但也改变了颜色质量。
-
exiftool -all= filename结果:http://s22.postimg.org/aiq99o775/8snmhp4sjd75vdr27gbadolc003i_exiftool.jpg 这种方法将大小从 105 kB 减小到 72.7 kB,但也改变了颜色质量。
- This answer详细解释了如何操作Exif信息,但是如何使用它来删除信息呢?
谁能帮我删除所有额外的元数据而不改变图像的颜色、尺寸和其他属性?
【问题讨论】:
-
ExifTool 修改“颜色质量”是错误的(改变实际像素?颜色?压缩?)。将原始结果和结果与 IM 的 compare:
compare -metric AE 8snmhp4sjd75vdr27gbadolc003i.jpg 8snmhp4sjd75vdr27gbadolc003i_exiftool.jpg null:进行比较,您将获得零差异(或使用 JPEGsnoop 等)。您可能会感到困惑,因为原始嵌入了 icc-profile 而结果没有,并且您在色彩管理应用程序中比较它们。但是您可以剥离除 icc-profile 之外的所有内容:exiftool -all= --icc_profile:all 8snmhp4sjd75vdr27gbadolc003i.jpg并在 icc-profile 不变的情况下获得 74.1 kb -
关于方法 3 (Exif-py),看起来该工具用于从图像中提取 Exif 信息,以便您可以在程序中访问它,而不是从图像文件中删除它。我不认为它是为修改图像文件而设计的。
标签: python image-processing python-imaging-library exif exiftool