[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
>
>
- Re: [shell-script] script para datar fotos,
china <=