我用Python编写了一个小脚本,它可以根据我的旧Whatsapp图片的文件名设置exif数据。在
我用piexif和PIL(枕头)包。在
import piexif
from PIL import Image
from collections import defaultdict
img = Image.open(fname)
try:
exif_dict = piexif.load(img.info["exif"])
except KeyError:
exif_dict = defaultdict(dict)
exif_dict['Exif'][piexif.ExifIFD.DateTimeOriginal] = exiftime(date)
exif_dict['Exif'][piexif.ExifIFD.DateTimeDigitized] = exiftime(date)
exif_bytes = piexif.dump(exif_dict)
img.save('%s' % fname, "jpeg", exif=exif_bytes)
函数的作用是:设置日期的格式。在
但是,脚本正在设置一些exif字段,我不会修改压缩或类似的内容。在
我的问题是,运行脚本后,图片会变得更小。 我用一些示例图像测试了这个脚本,例如一张用nikond5300拍摄的照片,分辨率为6000x4000。原始文件大约有12Mb,在脚本之后只有4Mb。在
脚本会导致图片质量下降,还是只是更好的压缩?在
枕头的。保存自动压缩,默认质量75%的文件。你可以将压缩提升到100%(添加质量=100),这将最小化压缩,看起来它将完全跳过一些压缩组件,但枕头显然没有能力跳过压缩。很少有包这样做,我不知道Python模块的任何形式。注意,文档中说不提高95以上的质量,我可以证明这样做会输出一个更大的文件。。奇怪的。
这个回答有点晚,但类似的帖子指出了一个解决方案here只在文件中写入exif信息(使用piexif)。 因此,图像的内容不会被改变,因为没有压缩(通过“save”命令)。在
相关问题 更多 >
编程相关推荐