exiftool: usuń dane exif, ale zachowaj niektóre określone tagi


10

Obecnie używam exiftool z opcją -all = i usuwa wszystkie dane EXIF ​​z moich zdjęć:

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

Teraz chcę, aby exiftool usunął wszystkie informacje EXIF, ale NIE tytuł zdjęcia, podpis i słowa kluczowe.

Jak mogę to osiągnąć?

Odpowiedzi:


7

Powinieneś zawsze sprawdzać strony podręcznika, jeśli masz kłopoty.

man exiftools

Który powinien przeczytać coś takiego:

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

Coś jak:

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

powinno działać. Upewnij się, że tagi naprawdę są tak nazywane przy użyciu exif /path/to/file.jpg.

Co robi polecenie? -all=usuwa wszystkie tagi, -tagsFromFile @pobiera wymienione flagi z pliku źródłowego, w tym przypadku @reprezentuje bieżący plik (możesz oczywiście zastąpić tutaj stałym plikiem, takim jak -tagsFromFile pic.jpg) i zapisuje je w miejscu docelowym.


PS mój podpis też jest usuwany (z parametrem -caption), czy jest jakiś sposób, aby go zachować?
Remus Rigo,

1

Jeśli chcesz usunąć tylko niektóre tagi z oryginalnego pliku (tj. Nie przenosić z tagów między plikami, ale z tego samego pliku), nie potrzebujesz -tagsFromFileprzełącznika, ale a, <aby powiedzieć, aby przenieść je wzdłuż pliku.

Uwaga: Na razie (wersja 10.79) -common<commonnie można ustawić znaczników kompozytowych, a zatem użycie -commondo przeniesienia znaczników spowoduje uszkodzenie, np. Przeniesienie Flashdo Model. Dlatego mój kod jest jawny i zawiera każdy tag, -commonktóry normalnie zawierałby. W każdym razie wydaje się dobrym pomysłem.

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

Proszę również zauważyć, że mój kod jest sprzeczny z dokumentacją aplikacji exiftool , która zawiera próbki, których po prostu nie mogłem zabrać do pracy z tym zadaniem (i wersją 10.79).


-3

Aby usunąć wszystkie dane za pomocą narzędzia exif:

Zmień nazwę exiftool(-k).exena

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

To rozwiązuje wiele problemów

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.