在网站上爬取的图片,部分不能修改exif信息
import piexif
save_filename = 'F:/CodeWar/spider/exif/01.jpg'
im = Image.open(save_filename)
print(im.info)
exif_dict = piexif.load(im.info["exif"])
exif_dict["0th"][piexif.ImageIFD.Copyright] = '写入实验'.encode()
exif_bytes = piexif.dump(exif_dict)
im.save(save_filename, exif=exif_bytes)
运行程序报错
exif_dict = piexif.load(im.info["exif"])
KeyError: 'exif'
print(im.info)显示字典缺失exif键值对
{'jfif': 257, 'jfif_version': (1, 1), 'dpi': (96, 96), 'jfif_unit': 1, 'jfif_density': (96, 96), 'comment': b'CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), quality = 95\n'}
如果在图片属性的详细信息栏任意一个可填数据处,手动输入任何数据,再运行程序,便可以用代码修改exif信息
运行程序后可以看到,在程序修改exif之前,手动输入数据的结果就是im.info里自动加入了exif键值对,所以后续程序处理的时候,才不会找不到exif而报出KeyError: 'exif'
因为处理的图片比较多,需要修改的信息也多,想知道上面手动的过程如何用代码执行,或者有没有其他方法,求指导
上述问题图片爬自下图网站的缩略图
先判断字典中存不存在exif这个key,不存在的话添加一个空或者自定义值不就行了 piexif.load 调用之前
exif_dict = piexif.load(im.info["exif"]) if "exif" in im.info else piexif.load(自定义填充值)
每个图片都写一次空的就可以:
exif_dict={}
exif_bytes = piexif.dump(exif_dict)
im.save(save_filename, exif=exif_bytes)
感觉exif_dict这个是有固有格式的,可能需要打开开关才行,随便定义个空集不行,最后找到了用其他软件批量修改的方法了,谢谢以上各位