Я пишу инструмент Python 3 CLI, чтобы исправить даты создания фотографий в библиотеке (см. здесь .
. Я использую подушку, чтобы загрузить и сохранить изображение, и piexif для обработки данных exif.поиск / модификация.
Проблема, с которой я столкнулся, заключается в том, что я хочу изменить только EXIF-данные на изображениях, а не перепаковать все изображение. Кажется, что сохранение подушкой не может этого сделать.
Мой вопрос:
- Любая лучшая библиотека exif, которую я мог бы использовать, чтобы играть только с данными exif (до сих пор я пробовал py3exiv2, pexif и piexif)?
- Если нет,Есть ли способ указать Подушке только изменить exif изображения без повторного сжатия при сохранении?
Спасибо!
Вот код, который я использую для изменения даты создания до сих пор:
# Get original exif data
try:
exif_dict = piexif.load(obj.path)
except (KeyError, piexif._exceptions.InvalidImageDataError):
logger.debug('No exif data for {}'.format(obj.path))
return
# Change creation date in exif_dict
date = obj.decided_stamp.strftime('%Y:%m:%d %H:%M:%S').encode('ascii')
try:
exif_dict['Exif'][EXIF_TAKE_TIME_ORIG] = date
except (KeyError, piexif._exceptions.InvalidImageDataError):
return
exif_bytes = piexif.dump(exif_dict)
# Save new exif
im = Image.open(obj.path)
im.save(obj.path, 'jpeg', exif=exif_bytes)