Если я правильно понимаю, то данные EXIF записываются в дополнительное пространство файла JPEG. Когда я добавляю или изменяю тег EXIF, изображение остается нетронутым? Я искал это, и я не смог найти ответ. Я не хочу «ухудшать качество» своих изображений, когда позже добавляю/удаляю/обновляю тег.
Есть теги, которые влияют на то, как изображение может интерпретироваться программным обеспечением (подумайте об ориентации), но нет, биты изображения трогать не следует.
Знания говорят, что есть (плохие) редакторы, которые открывают изображение (декодируют его), чтобы показать его, и даже если вы просто изменяете данные EXIF, они перекодируют данные JPEG вместо того, чтобы копировать поверх оригинала. В этом случае вы можете потерять качество. Я совершенно уверен, что, например, exiftool безопасен (как и многие другие инструменты).
Доказательство : я начинаю с изображения blue_boniface.jpg
и копирую его в blue_boniface_bare.jpg
and blue_boniface_comment.jpg
:
% cp blue_boniface.jpg blue_boniface_bare.jpg
% cp blue_boniface.jpg blue_boniface_comment.jpg
Теперь убираю все EXIF из первого, а Comment
во второе добавляю поле:
% exiftool -all= blue_boniface_bare.jpg
% exiftool -Comment='This is a new comment' blue_boniface_comment.jpg
И после этого я конвертирую все три изображения в формат PNM (который не имеет вспомогательных данных и является самым простым форматом изображения, который я знаю):
% jpegtopnm blue_boniface_bare.jpg > one.pnm
% jpegtopnm blue_boniface.jpg > two.pnm
% jpegtopnm blue_boniface_comment.jpg > three.pnm
% ls -l *.pnm
-rw-rw-r-- 1 romano romano 24307892 Sep 13 17:57 one.pnm
-rw-rw-r-- 1 romano romano 24307892 Sep 13 17:57 three.pnm
-rw-rw-r-- 1 romano romano 24307892 Sep 13 17:57 two.pnm
Три файла кажутся одинаковыми, давайте проверим:
% diff one.pnm two.pnm
% diff one.pnm three.pnm
( diff
молчит, если файлы одинаковые). Таким образом, данные изображения точно такие же после обработки файла EXIF. КЭД