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) і записує їх до місця призначення.


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


-3

Щоб видалити всі дані за допомогою інструменту exif:

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

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

Це вирішує багато проблем

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.