1

Я пытаюсь удалить все метаданные из файлов JPEG, кроме общих тегов фотографий, перечисленных с помощью exiftool -common (модель камеры, выдержка, диафрагма, ISO и т.д.), Модели объектива, цветового пространства и встроенного профиля ICC.

Используя ответ на вопрос exiftool: удалите данные exif, но сохраните некоторые специальные теги, создаются следующие команды. Проблема заключается в том, что оба они приводят к удалению выдержки, диафрагмы и встроенного профиля ICC, что можно проверить с помощью exiftool с соответствующими флагами.

exiftool -all= -tagsFromFile @ -common -LensModel -ColorSpace -icc_profile:all original.JPG

exiftool -all= -tagsFromFile @ -common -aperture -ShutterSpeed -LensModel -ColorSpace -icc_profile:all original.JPG

Они оба выдают предупреждение:

Warning: Sorry, filesize is not writable

Команды искажены или это ошибка ExifTool? Это поведение подтверждается в ExifTool версии 10.40.

1 ответ1

1

Common ярлык - это скорее тег сбора данных, и он на самом деле не предназначен для копирования информации из одного файла в другой (см. Раздел « Список ярлыков для ярлыков»). Многие из этих тегов, охватываемых этим ярлыком, являются тегами файловой системы (FileSize), тегами MakerNotes (Quality) или составными тегами (Aperture , ShutterSpeed). В случае FileSize вы, очевидно, не можете произвольно изменить размер файла назначения, поэтому filesize is not writable ошибкой.

В случае тегов Makernotes их нельзя скопировать или создать по отдельности. Он должен быть скопирован как блок с -MakerNotes . Возможно, вы не пытались скопировать тег Quality , но этот момент становится актуальным, когда речь идет о составных тегах.

Составные теги не являются тегами, которые находятся в файле. Они получены из нескольких других тегов. Aperture и ShutterSpeed являются двумя примерами. Вы не можете скопировать их в другой файл, потому что по отдельности они не существуют. Вы должны скопировать теги, на которых они основаны. Aperture основана на FNumber или ApertureValue , в зависимости от того, что на самом деле находится в файле. ShutterSpeed основан на ExposureTime , ShutterSpeedValue и / или BulbDuration . Чтобы правильно "копировать" Aperture и ShutterSpeed , вы должны скопировать вышеупомянутые теги, на которых они основаны. И некоторые из этих тегов могут быть только в MakerNotes, поэтому вам придется скопировать все Makernotes

ICC_Profile считается "небезопасным" тегом и не будет скопирован, если он явно не указан в списке. Возможно, вам придется скопировать его как блок с -ICC_Profile если -ICC_Profile:all не работает, так как некоторые из отдельных тегов в ICC_Profile не доступны для записи.

tl; dr: Нет ничего плохого в команде exiftool, она просто не делает то, что вы думаете, она делает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .