Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais] ·  Efetividade ·  Linux in Brazil ·  Floripa  

Redefinindo tamanho de um diretório de fotos com imagemagick

Dias atrás estava passando por uma necessidade onde me deparei com a seguinte situação, efetuar o resize de mais de 100 fotos que eu havia tirado durante uma viagem a trabalho. Pensei: o imagemagick faz isso, por que nao usá-lo?

O script que desenvolvi faz uma tarefa muito simples usando o convert, veja o shell script abaixo:

#!/bin/sh
ls *.jpg|while read a do
convert -resize 640x480 "$a" "$1/$a"
done


No código acima é necessário passar o diretório como parãmetro para que as novas imagens sejam geradas. E o tamanho, é aquele para se colocar na web, 640x480. É possível colocarmos textos nas fotos, e isso economiza um tempão para fazer, ou seja, se nao fosse o imagemagick na situação acima, eu perderia mais de uma tarde fazer resize de imagem, ou se eu quisesse, editando um textinho para colocar nas fotos.
” A nota foi enviada por Alexander Benatti (arbenattiΘgmail·com), que acrescentou este link da fonte para maiores detalhes.

Comentários dos leitores

Os comentários abaixo são responsabilidade de seus autores e não são revisados ou aprovados pelo BR-Linux. Consulte os Termos de uso para informações adicionais. Esta notícia foi arquivada, não será possível incluir novos comentários.
Comentário de olarva
Exemplos com Texto....: O exemplo abaixo ilustra como colocar texto..

#!/bin/sh

read destino

for i in $(ls -1 *.jpg)
do
convert -font helvetica \
-fill blue \
-draw "text 15,15 'Aqui vai um texto'" \
-resize 640x480 $i $destino/$i
done

Comentário de sachetto
Redmensionar Imagens: Pra quem prefere um programa com interface gráfica tem esse ae que eu mesmo desenvolvi: http://kde-apps.org/content/show.php?content=35325
Comentário de lordello
The Gimp: O The Gimp em conjunto com o DPB faz isso. Claro que o ImageMagick é bem mais leve, efetuando o trabalho bem mais rápido e simples.
Parabéns pela ótima dica ;-)

Gentoo AthlonXP GNU/Linux
GNU/Linux User #239576 Lincoln Lordello

Comentário de emersonMello
eu sempre usei o imagemagick: eu sempre usei o imagemagick juntamente com o album (um script em perl que nao eh SL mas um tipo de freeware - http://marginalhacks.com/Hacks/album)
o meu shell script eh:

#!/bin/bash
for arquivo in *.jpg; do
# atencao -- isso vai sobreescrever o arquivo original
convert "$arquivo" -resize 640x480 -quality 80 "$arquivo
done

Agora o problema que tenho e quando o diretorio tem fotos em paisagem e em retrato. Ou seja, fotos em paisagem a conversao para 640x480 eh perfeita mas para fotos em modo retrato o correto seria 480x640. Nao sei se tem como o imagemagick identificar a orientacao da foto e ai aplicar o redimensionamento correto.

Enquanto isso descobri o Jalbum (jalbum.net, tbm nao eh SL --freeware tambem :(). Mas tambem nao trata o problema das diferentes orientacoes das fotos.

Ah claro, tem um plugin para o Digikam que faz processamento em lote como o DBP do Gimp citado acima.
t+
Comentário de olarva
Sugestão...: Dá para usar o identify para identificar a orientação da imagem, porém, nem todas possuem a informação.


Então, posso sugerir o seguinte código:

(Abusando um pouco dos pipes..)

#!/bin/sh
for i in $(ls -1 *.png)
do
export geo="$(identify $i | awk '{print $3}' | sed -e 's/x/ /')"
export largura="$(echo $geo| awk '{print $1}')"
export altura="$(echo $geo| awk '{print $2}')"

if [ $altura -ge $largura ]; then
echo "$i está na Vertical..."
#Converta
convert $i -rotate 90 convertidos/$i
# ou chame o comando display
display $i
else
echo "$i está na Horizontal."
fi

done

Bom. existe alguns efeitos colaterais, pois nunca sabemos para qual lado fazer a rotação, no meu exemplo, presumo
que seja 90º sentido horário, ai, opcionalmente chamo o comando display, para que se decida qual lado girar.

Até.
BR-Linux.org
Linux® levado a sério desde 1996. Notícias, dicas e tutoriais em bom português sobre Linux e Código Aberto. "A página sobre software livre mais procurada no Brasil", segundo a Revista Isto É.
Expediente
Sobre o BR-Linux
Enviar notícia ou release
Contato, Termos de uso
FAQ, Newsletter, RSS
Banners e selos
Anunciar no BR-Linux
BR-Linux apóia
LinuxSecurity, Tempo Real
Suporte Livre, Drupal
Verdade Absoluta
Pandemonium
Efetividade, Floripa.net
sites da comunidade
Ajuda
Moderação
Flames: não responda!
Publicar seu texto
Computador para Todos
Notícias pré-2004
Tutoriais, HCL pré-2004