3

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

pyxiv2はタスクを実行するように見えますが、一見単純なタスクに対して多くの依存関係があります。

また、サイズ変更された画像に対して無効になる値を知りたいです。幅と高さは明らかです。

4

1 に答える 1

3

誰かが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))
于 2010-11-24T20:00:14.437 に答える