gpt4 book ai didi

python - 如何使用 Python 将 CUSTOM 元数据写入 JPEG?

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:17 25 4
gpt4 key购买 nike

如何使用 Python 将 CUSTOM 元数据写入 JPEG?

我试过了

import piexif
exif_dict = {
'uwi': myvalue1,
'activity_type': myvalue2,
'prediction': myvalue3,
'url_current': myvalue4,
'url_previous': mavalue5
}
exif_bytes = piexif.dump(exif_dict)
with open(filename, "w") as fp:
test_image.save(fp, "JPEG", exif=exif_bytes)

但是使用 XnView 在图像中看不到任何东西。我做错了什么?

附言我不需要写相机型号、曝光和其他东西。我想编写自己的自定义元数据。

最佳答案

我找不到关于自定义标签的明确答案(these links 建议您可以使用第三方工具),但查看 specifications只给出定义的标签,所以我要说不,你不能制作自己的元数据标签,至少不能直接制作。


所以您可以做的是将您自己的数据写入任何 defined标签。最好使用 MakerNote这个标签 - 大多数相机制造商 store他们自己的自定义元数据在那里。在将自定义标志填充到 MakerNote 标记之前将其转储到字节字符串中:

from PIL import Image
import piexif
import pickle

tags = {'url_current' : 'https://stackoverflow.com/q/52729428/1846249',
'contains_fish' : False,
3 : 0.14159265358979323, }

data = pickle.dumps(tags)
exif_ifd = {piexif.ExifIFD.MakerNote: data}

exif_dict = {"0th": {}, "Exif": exif_ifd, "1st": {},
"thumbnail": None, "GPS": {}}

img = Image.new('RGB', (500, 500), 'green')
exif_dat = piexif.dump(exif_dict)
img.save('image.jpg', exif=exif_dat)

因为它是您自己的格式,所以您需要自己读回:

img = Image.open('image.jpg')
raw = img.getexif()[piexif.ExifIFD.MakerNote]
tags = pickle.loads(raw)

exiftool 会看到图像有 MakerNote,但不会识别它:

C:\> exiftool image.jpg -MakerNote
Warning: [minor] Unrecognized MakerNotes - image.jpg

您也可以将其存储在 UserComment 标记中 - 存储方式相同。

C:\>exiftool image.jpg -UserComment
User Comment : Ç.ò^}ö(î.url_currentöî,https://stackoverflow.com/q/52729428/1846249öî.contains_fishöëK.G?┬.╡DB╤äu.

附言有一个limit 64kB 用于 jpeg 图像中的元数据

关于python - 如何使用 Python 将 CUSTOM 元数据写入 JPEG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52729428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com