Como manipular metadados de fotos no Linux com o exiv2

Atualização 21/06/2011: o Xavi comentou abaixo que o Shotwell tem uma opção para editar os metadados em lote. Fica a dica para quem prefere a interface gráfica. Para mais informações http://yorba.org/shotwell/help/edit-time-date.html

Algumas vezes quando viajo mais de uma pessoa leva câmera fotográfica. Quando volto, gosto de juntar todas essas fotos em um único diretório e renomear elas de acordo com a data de criação para poder vem as fotos em ordem independente da câmera. Para fazer isso uso a ferramenta para renomear em lote do software digiKam. Para fazer isso, usava o digiKam mas não encontrei essa opção na nova versão que vem com o Ubuntu 9.10. Utilizei então o Krename.

Porém, algumas vezes a data e o horário de uma das câmeras não está certo e, por tanto, o metadado referente a data de criação das fotos está errado. Para poder renomear as fotos levando em conta a data de criação é necessário então primeiro corrigir o metadado. Para isso utilizo o exiv2, uma ferramenta de linha de comando para linux para editar metadados de fotos.

Para instalar o exiv2 no Ubuntu basta rodar o seguinte comando:

sudo aptitude install exiv2

Para ver os metadados de uma foto basta passar o nome do arquivo como primeiro parâmetro para o software (onde foto.jpg deve ser trocado pelo nome do arquivo):

exiv2 foto.jpg

Também é possível inserir, deletar, modificar ou renomear metadados. Informações sobre como utilizar esses recursos podem ser obtidas na man page do programa:

man exiv2

Existe ainda o recurso de ajustar a data e horário de criação de uma ou mais fotos passando um número de horas, ou dias, ou meses (etc). Com isso basta descobrir em quanto a data da câmera que tirou as fotos estava errada (comparando por exemplo os metadados de duas fotos tiradas com câmeras diferentes mais ou menos no mesmo horário) e utilizar o recurso de ajustar data e horário do exiv2.

A opção para ajustar é a ad e ela depende de pelo menos mais um parâmetro que pode ser (tradução livre da man page):

  • -a tempo – Ajustar tempo no formato [-]HH[:MM[:SS]]. Essa opção só pode ser usada com a ação de ajustar (ad). Exemplos: 1 adiciona uma hora, 1:01 adiciona uma hora e um minuto, -0:00:30 subtrai trinta segundos.
  • -Y anos – Ajuste de tempo com base num número positivo ou negativo de anos.
  • -O meses – Ajuste de tempo com base num número positivo ou negativo de meses.
  • -D dias – Ajuste de tempo com base num número positivo ou negativo de dias.

Por exemplo, para arrumar em uma hora e meia o horário de todas as fotos da extensão JPG que estão em um determinado diretório:

exiv2 ad -a 1:30 *.jpg

Ou então para subtrair duas horas, quarenta minutos, quinze dias e dois meses:

exiv2 ad -a -2:40 -D 15 -O 2 *.jpg

Ps: alguém conhece alguma interface gráfica para Linux que permite fazer esse tipo de manipulação de fotos?

4 thoughts on “Como manipular metadados de fotos no Linux com o exiv2”

  1. Oi Xavi,

    Me parece que a resposta da sua pergunta está no seu comentário mesmo 🙂

    Pelo que vi no link que você enviou e num teste rápido pelo Shotwell, é possível sim utilizá-lo para editar os metadados das fotos. Atualizei o post, obrigado pela informação.

  2. Oi,
    Ei vi alguns complementos para FireFox que ao clicar com o ‘direito’ na foto dentro de algum site, mostra o meta dados.

    Mas eu preciso de algo em linha de comando que me forneça os meta dados, para que eu possa capturar os dados em um aplicativo que estou fazendo.

    Com o exiv2 não funcionou.

    exiv2 http://www.linkdafoto.com/foto.jpg

    ‘Falha ao abrir o arquivo’

    t+
    Cleber

  3. Olá Cleber,

    O exiv2 é o programa que você precisa, o problema é que ele não aceita URL como parâmetro. O arquivo precisa estar no mesmo computador. Você terá que baixar o arquivo primeiro antes de usar o programa.

    Rodrigo

Deixe um comentário

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