sexta-feira, 6 de julho de 2012

Como redimensionar imagens inteligentemente



Ontem precisei redimensionar algumas fotos, umas 100, para não precisar fazer cada uma delas separadamente busquei uma solução que automatizasse o processo.

Aí vai...

Requisito: ImageMagick (instalado)

A ideia era redimensionar imagens grandes para:
- que coubessem num determinado tamanho (5MB);
- manter a proporcionalidade (aspect ratio);
- manter qualidade.

Posicionado no diretório que continha as imagens criei uma pasta com o nome "re" (redimensionadas).
Usei os comandos abaixo:

$ for i in *.jpg; do echo "$i"; convert "$i" -resize 2800x\> re/"$i"; done

$ for i in *.jpg; do echo "$i"; convert "$i" -resize x2800\> re/"$i"; done

OBS1: perceba o "2800x\>" no comando. Seguindo as orientações de "Jack", vamos por partes:
- 2800 é o tamanho desejado como largura (width);
- x sem uma indicação de tamanho a seguir significa que vai manter a proporcionalidade;
- \ é um mero caracter de escape;
- o sinal de maior (>) indica que somente as imagens maiores serão redimensionadas até este tamanho, ou seja, não vai aumentar as imagens menores para este tamanho.

OBS2: o segundo comando é basicamente o mesmo exceto que se aplica a imagens em formato retrato, ou seja aplica o tamanho na altura (heigh).

OBS3: altere o 2800 para o tamanho desejado.

OBS4: durante as pesquisas encontrei outras formas de fazer a mesma coisa, mas não testei, mesmo assim seguem os comandos.

- Redimensionar para um porcentagem específica:
$ mogrify -resize 90% -format jpg *

- Redimensionar para um tamanho específico:
$ mogrify -resize 1024x800 -format jpg *

- Especificar nível de compressão:
$ convert howtogeek.png -quality 95 howtogeek.jpg
O númeero deve estar entre 1 e 100. O default é 92.

PRONTO!

Nenhum comentário:

Postar um comentário