9

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

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

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

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

3 ответа3

6

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

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) и записать их к месту назначения.

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).

-3

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

Переименуйте exiftool(-k).exe в

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

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

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