簡體   English   中英

如何在使用PIL調整圖像大小后恢復EXIF數據?

[英]How can I restore EXIF data after resizing an image with PIL?

這個問題之前已被問 ,但幾年前就得到了回答,答案是指一個斷開的鏈接,可能不再是最好的方法了。

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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM