Python 更改JPEG上的EXIF数据而不更改图片

Python 更改JPEG上的EXIF数据而不更改图片,python,image,python-imaging-library,jpeg,Python,Image,Python Imaging Library,Jpeg,我使用piexif来读取和写入exif数据,从而更改jpeg上的exif,这似乎工作正常。问题是当我读写jpeg时,即使我不更改字节,它也会用不同的像素和读取的图片保存图片。我需要它是完全相同的像素。我明白这是因为jpeg是一种有损格式,但我找到的唯一方法是将其保存为png,然后使用Mac Preview将其导出为jpeg,这并不好,因为我有数百张图片 def adjust_img(path): img = PIL.Image.open(path) exif_dict = piexi

我使用piexif来读取和写入exif数据,从而更改jpeg上的exif,这似乎工作正常。问题是当我读写jpeg时,即使我不更改字节,它也会用不同的像素和读取的图片保存图片。我需要它是完全相同的像素。我明白这是因为jpeg是一种有损格式,但我找到的唯一方法是将其保存为png,然后使用Mac Preview将其导出为jpeg,这并不好,因为我有数百张图片

def adjust_img(path):
   img = PIL.Image.open(path)
   exif_dict = piexif.load(img.info['exif'])
   new_exif = adjust_exif(exif_dict)
   exif_bytes = piexif.dump(new_exif)
   pc = path.split('/')
   stem = '/'.join(pc[:-1])
   img.save('%s/_%s' % (stem,pc[-1]), "JPEG", exif=exif_bytes, quality=95, optimize=False)
如何保存图片并更改exif?


使用exiftool。通过自制的
brew安装exiftool安装
最终使用了此功能。谢谢
exif_dict = piexif.load(path)
new_exif = adjust_exif(exif_dict)
exif_bytes = piexif.dump(new_exif)
piexif.insert(exif_bytes, path)