planilha eletronica

Como extrair dados exif de arquivos de imagens para montar uma base de dados ou planilha.

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.
planiha libreoffice calc

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

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia. Fã de séries, como "Rick and Morty" e "BoJack Horseman". Me siga no Twitter e vamos trocar ideias!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.