shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] script para datar fotos


From: china
Subject: Re: [shell-script] script para datar fotos
Date: Fri, 30 Jan 2009 17:18:46 -0200

Caros;

Retomando a tarefa depois das férias, e agora mais motivado ainda
pelas zilhares de fotos tiradas :-)

Matutando sobre a questão, vi que não estava pegando a data da foto,
mas sim do arquivo, que refletia o timestam de gravação no filesystem.
Ainda bem que o comando 'cp' preservou as datas de criação no cartão
de memória, mas não dá para confiar nisso ...

Então descobri o programa 'exiftime', que lê o metadado da foto e
revela a data em que ela foi tirada, assim fica mais fidedigno :-D

usando o comando 'exiftime -td pessoal/Fotos/*.jpg' ele retorna o seguinte:
[...]
pessoal/Fotos/banheiro_012.jpg:
Image Digitized: 2008:08:10 21:33:55

pessoal/Fotos/banheiro_013.jpg:
Image Digitized: 2008:08:10 21:34:04

pessoal/Fotos/galo.jpg:
Image Digitized: 2007:09:07 10:44:17
[...]

Ou seja, lista todas as fotos e mostra a data e hora de criação.

O que tentei fazer:

for img in $(exiftime -td *.jpg); do
       convert -font helvetica -fill white -stroke black -pointsize 12
-draw 'text 2200,1900 "$img"' ${img}datada.jpg
done

Então retorna o erro como no exemplo:

'convert: missing an image filename `10:44:17datada.jpg'.'

e não processa nada, apenas criando os arquivos em vazios. Creio que o
problema está na passagem do nome do arquivo para o convert.

O que acham? Alguém tem uma luz para destara esse nó?

PS: Numa de minhas buscas encontrei diversos softwares que fazem
gravação de data nas fotos, mas todos proprietários e feitos apenas
para windowz. O f-spot que vem no Ubuntu lê estes metadados e organiza
as fotos em pastas justamente pela data de criação, mas não tem a
opção de gravar a data na foto.


2008/12/19 chinabhz <address@hidden>:
> Caros;
> Tenho uma câmera digital que não tem a função de gravar a data nas
> fotos (sic)!
> Daí me surgiu a idéia de criar um script que pega a data do arquivo da
> foto e a escreve no arquivo. Não tenho conhecimento suficiente para
> concluir a tarefa, por isso peço ajuda de vocês.
>
> O que já consegui:
> 1) Usando o ls+awk consegui ler a pasta onde estão as fotos e retornar
> apenas a data e hora de cada um
> ls -lh * | awk {'print $6" "$7'}
>
> 2) usando o convert, do imagemagik, consegui gravar a data na foto em
> UMA foto:
>
> convert -font helvetica -fill white -stroke black -pointsize 12 -draw
> 'text 2200,1900 "datadafoto"' -stroke none -draw 'text 2200,1900
> "datadafoto"' foto.jpg fotodatada.jpg
>
> O que preciso: que o scritp leia o diretório de fotos e corte apenas a
> data e hora e passe como variavel para o convert fazer a datagem de
> todas de uma vez, sendo que na linha de comando onde está foto.jpg
> ficaria a variável que seria cada data de cada foto.
>
> Como minha câmera é muito comum, acredito que esse script seja de
> interesse geral ... Tem como fazer??
>
> O que já fiz e não deu certo foi:
>
> #!/bin/bash
> $fotos="ls -lh * | awk {'print $6" "$7'}"
> for img in $fotos; do
> convert -font helvetica -fill white -stroke black -pointsize 12 -draw
> 'text 2200,1900 "datadafoto"' -stroke none -draw 'text 2200,1900
> "datadafoto"' $img $imgdatada
>
> 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]