Fala China, se vc já voltou de férias já posso te dar trabalho ;) Cara, foto no banheiro? Quero ver essas... ;)
Amigão estou escrevendo um super artigo (é provával que vire livro sobre o ImageMagick. O sw é muito completo e complexo. Já escrevi umas 40 páginas e não estou nem no meio do convert. Me cobra pelo e-mail corporativo que e passo o que escrevi até pere vc me ajudar a depurar. Legal? Por enquanto vamos resolver o seu problema. Muito melhor que o convert para isso é o montage, pois ele faz uma borda em 3D com a imagem e rotula a boda, sem poluir a imagem. Teste a linha abaixo e caso não goste, me fale que te explico o convert. Mas de cara já te digo: evite o draw e prefira o -label com -gravity. $ montage -frame 5 -geometry +0+0 -label "Foto no banheiro em $Data" -font Impact-Normal -pointsize 25 -fill Blue -stroke orange -background none -mattecolor DodgerBlue FotoNoBanheiro.jpg montage.png Para testar cores de letras, de molduras, profundidade da moldura, ... É mais fácil usar o cmd display da suíte ImageMagick ao invés de ficar gravando imagens e depois apagando-as. E aí essa linha ficaria assim: $ montage -frame 5 -geometry +0+0 -label "Foto no banheiro em $Data" -font Impact-Normal -pointsize 25 -fill Blue -stroke orange -background none -mattecolor DodgerBlue FotoNoBanheiro.jpg miff:- | display - Forte abraço para vc e para a turma de BH. Julio PS: Já marcou as próximas férias? ;) 2009/1/30 china <china.lis...@gmail.com> > 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 <china.lis...@gmail.com <china.listas%40gmail.com>>: > > 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 > > > > > > -- Abração, Julio Cursos de Shell e Zenity nos finais de semana: - Em SP ligue (11) 2125-4747; - Em DF ligue (61) 3223-3000; - Turmas fechadas em outras cidades ligue (21) 8112-9988 [As partes desta mensagem que não continham texto foram removidas]