Как записать метаданные CUSTOM в JPEG с помощью Python? - PullRequest
0 голосов
/ 10 октября 2018

Как записать метаданные CUSTOM в JPEG с помощью Python?

Я пробовал

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.Что я делаю не так?

PS Мне не нужно писать модель камеры, экспозицию и другие вещи.Я хочу написать свои собственные метаданные.

1 Ответ

0 голосов
/ 10 октября 2018

Проверьте документы о том, как использовать piexif.Например, вы делаете неправильно, пытаясь записать собственные метаданные и открыть файл с помощью open вместо открытия с помощью Image из модуля PIL.

Вырезав пример из документов, вы можете сделать что-то вроде этого:

from PIL import Image
import piexif

zeroth_ifd = {
              piexif.ImageIFD.Make: u"Canon",
              piexif.ImageIFD.XResolution: (96, 1),
              piexif.ImageIFD.YResolution: (96, 1),
              piexif.ImageIFD.Software: u"piexif"
              }
exif_ifd = {
            piexif.ExifIFD.DateTimeOriginal: u"2099:09:29 10:10:10",
            piexif.ExifIFD.LensMake: u"LensMake",
            piexif.ExifIFD.Sharpness: 65535,
            piexif.ExifIFD.LensSpecification: ((1, 1), (1, 1), (1, 1), (1, 1)),
            }
gps_ifd = {
           piexif.GPSIFD.GPSVersionID: (2, 0, 0, 0),
           piexif.GPSIFD.GPSAltitudeRef: 1,
           piexif.GPSIFD.GPSDateStamp: u"1999:99:99 99:99:99",
           }
first_ifd = {
             piexif.ImageIFD.Make: u"Canon",
             piexif.ImageIFD.XResolution: (40, 1),
             piexif.ImageIFD.YResolution: (40, 1),
             piexif.ImageIFD.Software: u"piexif"
             }

exif_dict = {"0th":zeroth_ifd, "Exif":exif_ifd, "GPS":gps_ifd, "1st":first_ifd, "thumbnail":thumbnail}
exif_bytes = piexif.dump(exif_dict)
im = Image.open("foo.jpg")
im.save("out.jpg", exif=exif_bytes)

Вы можете проверить все поля метаданных, которые вы можете редактировать, с помощью piexif здесь .

...