exiftool: exclua dados exif, mas preserve algumas tags específicas


10

Atualmente, uso o exiftool com a opção -all = e exclui todos os dados EXIF ​​das minhas fotos:

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

Agora, quero que o exiftool exclua todas as informações EXIF, mas NÃO o título, a legenda e as palavras-chave da foto.

Como eu posso conseguir isso?

Respostas:


7

Você deve sempre verificar as páginas de manual se estiver com problemas.

man exiftools

Que deve ler algo como isto:

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

Algo como:

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

Deveria trabalhar. Certifique-se de que as tags sejam realmente nomeadas dessa maneira exif /path/to/file.jpg.

O que o comando faz? -all=exclui todas as tags, -tagsFromFile @pega as bandeiras listadas no arquivo de origem, neste caso @representa o arquivo atual (é claro que você pode substituir por um arquivo fixo aqui -tagsFromFile pic.jpg) e as grava no destino.


PS minha legenda também é excluída (com o parâmetro -caption), existe alguma maneira de mantê-la?
Remus Rigo

1

Se você deseja excluir apenas determinadas tags do arquivo original (ou seja, nenhuma transferência de tags entre arquivos, mas de dentro do mesmo arquivo), você não precisa da -tagsFromFileopção, mas de um comando <para transferi-las ao longo do arquivo.

Nota: A partir de agora (versão 10.79) -common<commonnão é possível definir tags compostas e, portanto, o uso -commonpara transferir tags irá quebrar as coisas, por exemplo, transferir Flashpara Model. Portanto, meu código é explícito e inclui todas as tags que -commonnormalmente incluiriam. Parece ser uma boa ideia, pelo menos.

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

Observe também que meu código contradiz a documentação do aplicativo exiftool , que inclui exemplos que eu simplesmente não consegui trabalhar com esta tarefa em mãos (e versão 10.79).


-3

Para excluir todos os dados usando a ferramenta exif:

Renomeie exiftool(-k).exepara

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

Isso resolve muitos problemas

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.