exiftool: elimina i dati exif ma conserva alcuni tag specifici


10

Attualmente uso exiftool con l' opzione -all = e cancella tutti i dati EXIF ​​dalle mie foto:

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

Ora voglio che exiftool elimini tutte le informazioni EXIF ​​ma NON il titolo, la didascalia e le parole chiave della foto.

Come posso raggiungere questo obiettivo?

Risposte:


7

Dovresti sempre controllare le pagine man se sei nei guai.

man exiftools

Che dovrebbe leggere qualcosa del genere:

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

Qualcosa di simile a:

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

dovrebbe funzionare. Assicurati che i tag siano davvero denominati in questo modo usando exif /path/to/file.jpg.

Cosa fa il comando? -all=elimina tutti i tag, -tagsFromFile @prende i flag elencati dal file di origine, in questo caso @rappresenta il file corrente (puoi ovviamente sostituire un file fisso qui come -tagsFromFile pic.jpg) e scriverli nella destinazione.


PS anche la mia didascalia viene eliminata (con il parametro -caption), c'è un modo per tenerla?
Remus Rigo,

1

Se si desidera eliminare solo determinati tag dal file originale (ovvero nessun trasferimento dai tag tra i file, ma dall'interno dello stesso file), non è necessario il -tagsFromFilepassaggio, ma un <per dire di trasferirli lungo il file.

Nota: A partire da ora (versione 10.79) -common<commonnon è possibile impostare tag compositi e pertanto l'utilizzo -commonper trasferire i tag interromperà le cose, ad esempio il trasferimento Flasha Model. Pertanto, il mio codice è esplicito e include tutti i tag che -commonnormalmente includerebbero. Sembra essere una buona idea, comunque.

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

Si noti inoltre che il mio codice contraddice la documentazione dell'applicazione exiftool , che include esempi che semplicemente non sono riuscito a svolgere con questa attività a portata di mano (e versione 10.79).


-3

Per cancellare tutti i dati usando lo strumento exif:

Rinomina exiftool(-k).exein

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

Questo risolve molti problemi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.