以前有人问过这个问题,但几年前就回答了这个问题,答案是指链接断开,可能不再是最好的方法。
pyxiv2看起来可以完成任务,但是对于看似简单的任务,它有很多依赖项。
我还想知道哪些值对于调整大小的图像将不再有效。宽度和高度是显而易见的。
万一有人想使用 piexiv2,这里有一个解决方案:使用 PIL 库调整图像大小,使用 pyexiv2 复制的 EXIF 数据和图像大小 EXIF 字段设置为新大小。
import pyexiv2
import tempfile
from PIL import Image
def resize_image(source_path, dest_path, size):
# resize image
image = Image.open(source_path)
image.thumbnail(size, Image.ANTIALIAS)
image.save(dest_path, "JPEG")
# copy EXIF data
source_image = pyexiv2.Image(source_path)
source_image.readMetadata()
dest_image = pyexiv2.Image(dest_path)
dest_image.readMetadata()
source_image.copyMetadataTo(dest_image)
# set EXIF image size info to resized size
dest_image["Exif.Photo.PixelXDimension"] = image.size[0]
dest_image["Exif.Photo.PixelYDimension"] = image.size[1]
dest_image.writeMetadata()
# resizing local file
resize_image("41965749.jpg", "resized.jpg", (600,400))