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

10

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

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

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

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

Солнечный реборн пони
источник

Ответы:

7

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

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) и записывает их в место назначения.

Baarn
источник
PS моя подпись тоже удаляется (с параметром -caption), есть ли способ ее сохранить?
Ремус Риго
1

Если вы хотите удалить только некоторые теги из исходного файла (т.е. не передавать из тегов между файлами, но из одного и того же файла), вам не нужен -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).

flolilo
источник
-3

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

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

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

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

Привет
источник