Я попытался добавить комментарий к своему изображению, и он уменьшил размер файла. У меня есть три изображения, все имеют разные размеры файлов и разные данные EXIF-комментариев пользователя. Изображение без комментариев является самым большим. Почему изображение без комментариев является самым большим? Редактируя данные EXIF, я сжимаю или изменяю изображение.Почему размер моего изображения уменьшается, когда я добавляю комментарий к изображению?
- У меня есть изображение 2007KB. Он не содержит комментариев пользователя в , это данные exif.
- Когда я добавляю комментарий («Привет, я люблю картошку», просто тестовый комментарий) через страницу свойств (Windows 10) уменьшает размер моего изображения до 1991 КБ.
- Когда я использую скрипт python для добавления комментария пользователя («blah blah blah»), он уменьшает размер файла до 726 КБ.
Помимо данных для файлов и EXIF, я не обнаружил других различий в изображениях. Я увеличил изображение и не заметил различий. Я просмотрел остальные данные EXIF, и есть некоторые отличия. Различия в
- EXIF InteroperabilityOffset
- EXIF OffsetSchema
- EXIF Перетяжка
- GPS GPSProcessingMethod
- Изображение ExifOffset
- Image GPSInfo
- Image Перетяжка
- Изображение XPComment
- Interoperability InterOperabilityIndex
- Interoperability InteroperabilityVersion
- миниатюрное JPEGInterchangeFormat
- миниатюрное JPEGInterchangeFormatLength.
Если у вас есть другие вопросы, пожалуйста, дайте мне знать.
Вот питон скрипт:
import piexif
import os.path
from PIL import Image
def writeExifComment(filename,comment):
im = Image.open(filename)
fileExtension = os.path.splitext(filename)[1]
exif_dict = piexif.load(im.info["exif"])
exif_dict["Exif"][piexif.ExifIFD.UserComment] = comment
exif_bytes = piexif.dump(exif_dict)
im.save(filename, 'jpeg', exif=exif_bytes)
im.close()
def readExifComment(filename):
data = piexif.load(filename)
exif = data['Exif']
comment = exif.get(37510, '').decode('UTF-8')
return comment
filename = '1.jpg'
writeExifComment(filename,"blah blah blah")
print(readExifComment(filename))
Проверили ли вы ответ? Не забудьте принять/проголосовать, если это правильно. Благодаря! – Dekel