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: Flavio Junior
Subject: Re: [shell-script] script para datar fotos
Date: Fri, 30 Jan 2009 18:02:03 -0200

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Não entendi bem teu for, mas me PARECE errado...

Se os dados estão na mesma linha, como parecem estar, eu faria:

for img in *.jpg; do
  DT=awk -F: '{print $3$4$5$6$7}' < <(exiftime -td $img)
  convert -font helvetica -fill white -stroke black -pointsize 12
- -draw 'text 2200,1900 "$img" ${DT}datada.jpg
done

Na real eu pensei em renomear o arquivo com a data.. já nao sei bem se
é isso que tu quer..
nao entendi esse convert.

- --

Flávio do Carmo Júnior aka waKKu

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: http://getfiregpg.org

iEYEARECAAYFAkmDXMAACgkQgyuXjr6dyku7UgCeLsnR2BkqTNx6W4DAIjG84smi
KioAniNF2CFZRkdYdK1+LTJVP2kMWuUb
=L8/F
-----END PGP SIGNATURE-----

2009/1/30 china <address@hidden>:
> 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]