2013-10-30

Como redimensionar todas as imagens numa pasta ao mesmo tempo

Ainda tenho alguns clientes que me enviam pilhas de imagens para redimensionar e colocar nos seus sites.

O meu CMS aceita drag'n'drop e também a hipótese de enviar um zip com as imagens todas ao mesmo tempo, mas torna-se chato usar o Gimp para redimensionar as imagens uma a uma.

Nesta arena, a velha linha de comandos faz maravilhas.

Para redimensionar automaticamente todas as imagens, crie um novo arquivo de texto, no leafpad por exemplo, ou até no nano, e cole isto:

mkdir -p resized
for image in *.{jpg,jpeg,png} ; 
do
  [[ -f $image ]] && convert $image -colorspace RGB +sigmoidal-contrast 11.6933 -define filter:filter=Sinc -define filter:window=Jinc -define filter:lobes=3 -resize 850x650 -sigmoidal-contrast 11.6933 -colorspace sRGB ./resized/$image.jpg
done

Este script vai buscar todas as imagens do diretório onde se encontra, redimensiona-as para um máximo de 850 píxeis de largura e guarda-as em formato jpg num diretório local chamado "resized".

Grave com um nome sugestivo, como websize, e mude as permissões para executável. Pode também alterar a resolução de saída que o script mantém obviamente a proporção da imagem. Se quiser gravar noutro formato, basta alterar a extensão de saída.

Falta um último passo: mova o ficheiro para algum diretório onde tenha path, como /usr/bin:

sudo mv ./websize /usr/bin/
OK. Agora qualquer diretório onde esteja na linha de comandos (o meu file manager é o PCManFm e basta pressionar a tecla F4 para abrir terminal) se executar websize vai redimensionar todas as suas imagens nesse diretório.

Que tal? ;)

Mais informações no site do ImageMagick.

Sem comentários:

Enviar um comentário