O exiftool é uma ferramenta de nível avançado, desenvolvida por Phil Harvester (em linguagem Perl), desde 2003.
O utilitário tem desenvolvimento ativo e versões para Linux, MacOS e Windows.
Links para download, ao final do artigo.
Este post não vai mostrar como desenvolver o banco de dados ou a planilha, em si… mas apenas como obter a base de dados, em texto, que você precisa para analisar suas imagens dentro de uma planilha completa ou dentro de um banco de dados de verdade.
O exiftool permite verificar imagens recursivamente em um diretório (pasta) e oferece suporte a aproximadamente 200 tipos de arquivos.
Dentre estes, a ferramenta é capaz de ler dados EXIF de arquivos JPEG e RAW de diversas marcas e modelos de câmeras.
Nos meus exemplos, vou mostrar predominantemente o uso do utilitário em arquivos .CR2 (um dos formatos RAW da Canon).
Se você tiver dúvidas, leia outros artigos sobre o exiftool, neste mesmo site.
Como usar o exiftool recursivamente
Abra um terminal e vamos à diversão! 😉
Em outros posts, mostrei como rodar o utilitário sobre um único arquivo.
exiftool nome-do-arquivo
Também mostrei como usar o find para executar o programa sobre uma grande quantidade de arquivos, recursivamente, espalhados por vários subdiretórios.
Desta vez, vamos dispensar o find — mas o comando grep ainda será usado para refinar nossos resultados.
Para rodar o exiftool recursivamente, a partir do diretório atual, use a opção -r seguida do nome do diretório ou (no Linux e no MacOS) use um ‘./’:
exiftool -r ./
A depender da quantidade de arquivos presentes, a execução pode ser um pouco demorada.
Como refinar as buscas para obter resultados mais enxutos
Como você deve ter notado, o aplicativo possui vários campos, dentro dos quais escreve as informações obtidas dos arquivos.
Você pode fazer uma filtragem dos resultados por strings (usando o grep ou não) ou pelas tags (etiqueta) para ser encontrada e exibida.
Os meus exemplos estão aí para serem editados, alterados para atender às suas necessidades.
Como restringir a busca a um tipo de arquivo (cr2, no meu caso) dentro de um diretório (Imagens/junho) recursivamente (-r):
exiftool -ext cr2 -r Imagens/junho/
Veja como restringir a sua busca a apenas um tipo de lente:
exiftool -ext cr2 -T -r ./ | grep "18.0 - 55.0"
Se você usa câmeras Canon, pode obter listagens com o formato padrão da marca, acrescentando ‘-l -canon’ à linha de comando:
exiftool -ext cr2 -l -canon -r 05/
No exemplo, acima, ’05/’ é o nome da pasta em que a busca está sendo feita.
exiftool -T -aperture -ext cr2 -r 05/
Você pode ignorar os outros campos de dados EXIF e listar apenas os nomes dos arquivos que satisfaçam alguma condição:
exiftool '-*EF75-300mm*' -r 05/
Como passar os resultados para uma planilha
Os resultados podem ser formatados, de maneira bem básica, com as opções -T ou -t e serem gravadas em um arquivo. Para gravar o resultado da sua consulta em um arquivo, basta acrescentar ‘> nome-do-arquivo.txt’ ao final da linha de comando.
Este arquivo poderá ser aberto por qualquer aplicativo de planilhas, posteriormente.
exiftool -ext cr2 -t -l -canon -r 05/ > maio2018.txt
Se preferir, use ‘-common’ para restringir o resultado às meta informações mais comuns:
exiftool -ext cr2 -t -common -r 05/ > maio2018.txt
… ou use ‘-T’ (em maiúscula) no lugar de ‘-t’, para obter uma separação dos dados em tabela. Acho esta formatação melhor para trabalhar em planilhas — para determinar a média de abertura que uso, quantas vezes usei uma determinada lente etc.
Com um script (na sua linguagem preferida) também é possível iniciar e continuar alimentando um banco de dados com os dados EXIF das suas fotos.
referências
Usuários Linux já têm o exiftool instalado, na maioria das grandes distribuições.
Quem usa MacOS e Windows, pode baixar do site oficial: https://www.sno.phy.queensu.ca/~phil/exiftool/.