Extrair a data de uma fotografia

Publicado por Elgio Schlemer em 23/10/2007

[ Hits: 16.063 ]

Blog: https://profelgio.duckdns.org/~elgio

 


Extrair a data de uma fotografia



Praticamente todas as câmeras digitais que conheço inserem como comentário DENTRO do arquivo JPEG a DATA e HORA em que ela foi tirada (eu acho HORRÍVEL e de muito mal gosto por a data na foto, impressa).

Esta informação vai como um comentário no arquivo e pode ser útil para catalogá-las. Ferramentas de gerenciamento de fotos usam esta informação.

Para extrair, por linha de comando, esta informação:

$ ARQ=teste.jpg
$ head -10 $ARQ | strings | grep 200[456789] | tail -1


O head é apenas por questões de desempenho, para ele não fazer um strings em 4 ou 5 MB de uma foto de boa qualidade.

Veja o efeito em uma foto gerada por máquina CANON:

2007:06:17 12:55:34

Outras dicas deste autor

Enviar aspas em PHP de maneira menos suja

Uso das chaves na linha de comando

Em C, escrever em arquivo fácil

DROP ou REJECT no iptables?

Melhore o desempenho do HISTORY

Leitura recomendada

Alias definitivo

Convertendo arquivo UTF-8 com BOM para UTF-8 sem BOM

Use o Vim no Slackware

Usando o mailx

O comando sleep - dormir minutos, horas ou até dias, não apenas segundos

  

Comentários
[1] Comentário enviado por removido em 24/10/2007 - 07:43h

Bacana sua dica meu amigo.......

A maioria não sabe que isto existe!!!
Como eu não cheguei a testar, fica aqui a pergunta:

Funciona com fotos tiradas de um celular???

[2] Comentário enviado por hugoeustaquio em 24/10/2007 - 09:37h

Acho que vai depender do celular, se ele gravar esta informação entre as 10 primeiras linhas do arquivo..... Só lembrando, se você tiver fotos antigas (antes do ano 2004) substitua o comando grep que foi utilizado, por uma faixa de datas que abranja suas fotos. Pode usar o comando egrep '(200|199)[0-9]' teste.txt, e o comando completo ficaria assim: head arquivo.jpg | strings | egrep '(200|199)[0-9]' | tail -1. O comando 'egrep' se difere do 'grep' por usar expressões regulares, e é o mesmo que usar 'grep -E'. Ah, este comando busca as datas de 1990 até 2009. Em 2010 o comando vai ter que mudar, ficando egrep '(20[0-20]|199[0-10])'.

[3] Comentário enviado por removido em 24/10/2007 - 10:04h

ahh mto bom!!!
então, testei fotos tiradas do meu celular (Motorola E398) e consegui extrair as informações de data e hora que foi tirada a foto. Baseada na data e hora do celular claro.

Muito obrigado pela dica. Para mim foi de muita utilidade.

Abraços



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts