ExifTool: удалить все метаданные, кроме определенных тегов

419
Kyselejsyreček

Я пытаюсь удалить все метаданные из файлов 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
Возможный дубликат [exiftool: удалить данные exif, но сохранить некоторые специальные теги] (https://superuser.com/questions/450838/exiftool-delete-exif-data-but-preserve-some-specific-tags) flolilolilo 6 лет назад 1
Используя ответ на указанный вопрос, можно получить неожиданный результат, указанный в моем вопросе. Kyselejsyreček 6 лет назад 0
Я переместил [мой ответ] (https://superuser.com/a/1295929/703240) на этот вопрос - я проверил мой, и он работает. flolilolilo 6 лет назад 0
Также обратите внимание, что v`10.40` с января 2017 года - v`10.79` был выпущен недавно. Последний серийный релиз v`10.55` - в июне 2017 года. flolilolilo 6 лет назад 0
Спасибо, это отвечает на мой вопрос. Также обратите внимание, что флаги, содержащие знак <, не будут работать в Linux после инкапсуляции с апострофами. Kyselejsyreček 6 лет назад 0
Рад, что я мог помочь :-) Вы имеете в виду, что вы должны бежать `<`? Могу я спросить, как ты это делаешь? Затем я могу добавить его в свой ответ (вы также можете его отредактировать). flolilolilo 6 лет назад 0
Да, это именно то, что я имел в виду. Достаточно написать `'<'`, но можно обернуть весь параметр, например, `'common Kyselejsyreček 6 лет назад 0
не могли бы вы переключиться на мой ответ? Теперь я отредактировал его, так что `-common` больше не нужен. flolilolilo 6 лет назад 1

1 ответ на вопрос

1
StarGeek

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если if -ICC_Profile:allне работает, так как некоторые из отдельных тегов в нем ICC_Profileне доступны для записи.

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

понравился `tl; dr:` и полностью с этим согласен. C0deDaedalus 6 лет назад 0

Похожие вопросы