Shell: Redimensionar imagens na linha de comando

Palavras-chave: shell, convert, ImageMagick, redimensionar, resize, thumbnail, imagem, foto

O ImageMagick é um conjunto de softwares para manipular vários formatos de imagens. Esta dica aborda como redimensionar imagens.

Dentre os programas do ImageMagick está o comando convert, que possui várias opções para manipular imagens. Para redimensionar utilizamos a seguinte sintaxe:

convert -resize <largura>x<altura> arquivo_original arquivo_novo

Exemplo prático: Criar um thumbnail do arquivo imagem.jpg.

convert -resize 120x120 imagem.jpg thumbnail_imagem.jpg

Pode-se ainda redimensionar a imagem e, ao mesmo tempo, converter para outro formato. Por exemplo, criar o thumbnail como PNG:

convert -resize 120x120 imagem.jpg thumbnail_imagem.png

Como último exemplo, um script que cria thumbnails para todos os arquivos JPG do diretório corrente e cria uma página HTML para visualizar as imagens:

#!/bin/bash

for i in *.jpg; do
  echo "Gerando thumbnail da imagem $i..."
  convert -resize 120x120 $i thumbnail_$i
  echo "<a href=\"$i\"> <img src=\"thumbnail_$i\"> </a>" >> index.html
done

Agora é só abrir o arquivo index.html no seu navegador favorito.

Mais detalhes: man convert

This entry was posted in Shell. Bookmark the permalink.

5 Responses to Shell: Redimensionar imagens na linha de comando

  1. Otávio says:

    Gosto muito do convert do IM. Uso dele no meu script ConverTeX (http://otavio.canetatinteiro.org/Files/ConverTeX) que pega uma equação em TeX e salva como uma imagem png com transparência

    $ ConverTeX -e ‘E = mc^2’
    e ele cria a equação .png para mim, já com o -trim -transparent.

    :-)

  2. Ademar Reis says:

    Aproveito pra compartilhar a minha dica: uso o imagemagick pra adicionar um label às fotos que disponibilizo em minha página. Segue o comando:

    LABEL=”bla bla bla”
    convert -font DejaVu-Sans-Book -background ‘#000000A0’ -fill white \
    label:”$LABEL” miff:- | composite \
    -gravity southeast -geometry +2+2 – orig.jpg new.jpg

    Segue o link pra um site com muitos exemplos de uso do imagemagick (de onde eu me baseei pra criar o comando acima):

    http://www.cit.gu.edu.au/~anthony/graphics/imagick6/annotating/

  3. henrique says:

    Eu prefiro usar o convert -geometry para dar a nova dimensao da imagem, assim nao perde a proporcao.

  4. Ademar Reis says:

    henrique: o convert mantem a proporção por default, mesmo você passando algo como “120×120”. Pra redimensionar pra um valor exato, é necessário usar um ! no final do tamanho (como “120×120!”)

  5. muito legal mesmo o imagemagick. Assim como o Ademar, eu também uso o convert pra adicionar label nas minha fotos. ;-)
    []’s

Comments are closed.