Como extrair informações EXIF ​​de arquivos no OSX com lote ou linha de comando

18

Eu sei que existem vários programas do Windows para fazer isso, e o Photoshop tem uma opção "Salvar para a Web" que faz isso, mas eu quero uma linha de comando ou opção de processamento em lote para isso. Alguma ideia?

cwd
fonte
Você já experimentou o Automator, talvez com ações de terceiros (por exemplo, Pixelmator?)?
Daniel Beck

Respostas:

30

Dê uma olhada no Imagemagick . Sua -stripopção limpa uma imagem de qualquer perfil e comentário.

convert orig.jpg -strip result.jpg

ou

mogrify -strip orig.jpg

Aqui estão mais informações sobre como lidar com fotos com o Imagemagick.

Ellesa
fonte
1
Eu não queria gastar muito tempo e, embora estivesse interessado em trabalhar com o Imagemagick, gaste mais de 10 minutos para configurá-lo. Tentei o SmallImage e consegui o que queria em 2 minutos.
1
@ user200507 Para citar o OP, "desejo uma opção de linha de comando ou uma opção de processamento em lote para isso". Eu mantenho a Imagemagick como a melhor nisso.
26613 Ellesa
O Imagemagick striptambém retirou os canais verde e azul do meu círculo vermelho semi-transparente, deixando um círculo vermelho opaco sem metadados.
psoft 23/03
6

Eu uso o Mac OS X - atualmente 10.9 (Mavericks) - e gosto de usar o ExifTool para operações de metadados em lote como esta. Usaram-no a partir do Mac OS X 10.6 e até em diferentes tipos de Linux, como o Ubuntu, e ele funciona muito bem.

No que diz respeito aos scripts em massa, eu uso esse script Bash de maneira muito simples que usa findpara limpar todos os metadados das imagens; neste caso, imagens JPEG ( .jpg):

find 'Path/To/The/Images' -type f -name '*.jpg' |\
  while read FILENAME
  do
    exiftool -all= -overwrite_original_in_place "${FILENAME}"
  done

Para usar o script, basta alterar 'Path/To/The/Images'para corresponder ao caminho do diretório do arquivo de imagem real; pode ser um caminho completo ou relativo e, nesse caso, é relativo. E você pode alterar '*.jpg'para corresponder a qualquer extensão de arquivo na qual deseja atuar ou até configurá-la para '*'processar cegamente todos os arquivos. Eu costumo lidar com JPEGs, portanto, a .jpgextensão neste pequeno script de exemplo.

E a mágica principal desse script é o exiftoolcomando real que pode ser ainda mais simplificado para isso:

exiftool -all= -overwrite_original_in_place image_filename.jpg

O -all=é o que limpa os metadados, definindo todos os campos de metadados para o valor que é igual a nada. O -overwrite_original_in_placesubstituirá a imagem real. Ele não reprocessa a imagem após a leitura do arquivo, agindo nos metadados e gravando-o de volta no sistema. Sem esse sinalizador exiftool, o arquivo original será copiado com uma extensão _originalanexada; então, neste caso, seria image_filename.jpg_original. E o parâmetro final é simplesmente o nome do arquivo no qual você deseja atuar.

JakeGould
fonte
0

A ferramenta exiv2 (instalável usando o homebrew) fornece uma maneira rápida e simples de remover as informações EXIF ​​de um ou mais arquivos, por exemplo:

exiv2 rm myfile1.jpg myfile1.jpg  
Pierz
fonte