この質問は以前に尋ねられましたが、数年前に回答があり、回答は壊れたリンクに言及しており、おそらく最善の方法ではありません.
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))