exiftool: удалить данные exif, но сохранить некоторые специальные теги

5120
Sunny Reborn Pony

В настоящее время я использую exiftool с параметром -all =, и он удаляет все данные EXIF ​​из моих фотографий:

exiftool -overwrite_original -all= /Users/andyl/photos/*.jpg 

Теперь я хочу, чтобы exiftool удалил всю информацию EXIF, но НЕ заголовок, заголовок и ключевые слова фотографии.

Как мне этого добиться?

8

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

5
Baarn

Вы всегда должны проверять справочные страницы, если у вас проблемы.

man exiftools 

Который должен прочитать что-то вроде этого:

--TAG  Exclude specified tag from extracted information. Same as the -x option. May also be used following a -tagsFromFile option to exclude tags from being copied, or to exclude groups from being deleted when deleting all information (ie. "-all= --exif:all" deletes all but EXIF information). But note that this will not exclude individual tags from a group delete. Instead, individual tags may be recovered using the -tagsFromFile option (ie. "-all= -tagsfromfile @ -artist"). Wildcards are permitted as described above for -TAG. 

Что-то вроде:

exiftool -overwrite_original -all= -tagsFromFile @ -title -caption -keywords /Users/andyl/photos/*.jpg 

должно сработать. Убедитесь, что теги действительно названы таким образом, используя exif /path/to/file.jpg.

Что делает команда? -all=удаляет все теги, -tagsFromFile @берет перечисленные флаги из исходного файла, в этом случае @представляет текущий файл (можно, конечно, заменить его фиксированным файлом, как здесь -tagsFromFile pic.jpg) и записывает их в место назначения.

это мне очень помогло, спасибо Remus Rigo 7 лет назад 0
PS моя подпись тоже удаляется (с параметром -caption), есть ли способ ее сохранить? Remus Rigo 7 лет назад 0
1
flolilolilo

Если вы хотите удалить только определенные теги из исходного файла (т.е. не передавать из тегов между файлами, но из одного и того же файла), вам не нужен -tagsFromFileпереключатель, а <указание передавать их по файлу.

Примечание. На данный момент (версия 10.79) -common<commonне может устанавливать составные теги, и поэтому использование -commonдля передачи тегов может привести Flashк поломке, например, к передаче Model. Поэтому мой код является явным и включает каждый тег, -commonкоторый обычно включает. В любом случае, это хорошая идея.

exiftool -All:All= \ -DateTimeOriginal<DateTimeOriginal \ -Model<Model \ -LensModel<LensModel \ -FocalLength<FocalLength \ -ISO<ISO \ -ExposureTime<ExposureTime -ShutterSpeedValue<ShutterSpeedValue -BulbDuration<BulbDuration \ -ApertureValue<ApertureValue -FNumber<FNumber \ -WhiteBalance<WhiteBalance \ -Flash<Flash \ test.jpg # Or, if you want to use `-TagsFromFile`: exiftool -All:All= \ -TagsFromFile test.jpg \ -DateTimeOriginal \ -Model \ -LensModel \ -FocalLength \ -ISO \ -ExposureTime -ShutterSpeedValue -BulbDuration \ -ApertureValue -FNumber \ -WhiteBalance \ -Flash \ test.jpg 

Также обратите внимание, что мой код противоречит документации по приложению exiftool, которая включает примеры, которые я просто не смог получить для работы с этой задачей (и версия 10.79).

-3
Hello

Чтобы удалить все данные с помощью инструмента exif:

Переименовать exiftool(-k).exeв

exiftool (-overwrite_original -all= -k).exe 

Это решает много проблем