Extrair a data de uma fotografia

Publicado por Elgio Schlemer em 23/10/2007

[ Hits: 16.349 ]

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

Inserir comentários em regras do iptables

Cálculo da potência modular de forma eficiente

Em C, escrever em arquivo fácil

Melhore o desempenho do HISTORY

Firewall SIMPLES e eficiente para DESKTOP em 5 linhas

Leitura recomendada

Manipulando arquivos PDF pela linha de comando

Alterar a cor da fonte (e a cor de fundo) no console

Copiar CD sem ter o CD virgem

LSOF: Quem está ouvindo aí no seu Linux?

Exibindo linhas anteriores e posteriores à string pesquisada no Linux

  

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