Redimensionar Imagens em Lote no Linux [ImageMagick Batch Resize]

Lente de Câmera

ImageMagick é um conjunto de ferramentas para manipulação e edição de imagens direto do shell.

Nesta dica vamos falar apenas do comando convert que faz parte do ImageMagick.

Muitas vezes é útil reduzir imagens tiradas da Câmera Digital antes de enviá-las para a internet. Imagens de câmeras digitais podem chegar facilmente a 20 Megabytes por isso diminui-las economiza tempo no upload.

Então vamos lá: A primeira coisa é instalar o imagemagick:

sudo apt-get update
sudo apt-get install imagemagick

Com o imagemagick instalado entre na pasta que contém mas imagens e crie uma pasta que chamaremos neste exemplo de “reduzidas” e execute o seguinte comando alterando os parâmetros de acordo com suas preferências.

mkdir reduzidas
find . -maxdepth 1 -iname "*.jpg" | xargs -l -i convert -resize 1920x1080 -quality 70% -density 72 {} ./reduzidas/{}
  • find . -maxdepth 1 -iname “*.jpg”: este comando lista as imagens com extensão jpg apenas no diretório atual, sem entrar nos subdiretórios (-maxdepth 1).
  • xargs -l -i executa o comando convert fornecendo os nomes de arquivo que o  comando find encontrou.
  • convert é o comando da imagemagick para conversão de formatos.
  • -resize 1920×1080: altere para as dimensões que o arquivo ficará após o redimensionamento.
  • -quality 70%: aplicável apenas para JPG. Altere para a qualidade do jpg final. 0% – 100%.
  • -density 72: DPI da imagem. No meu caso eu tenho várias imagens em 300 DPI e quero elas em 72. Você pode omitir a opção caso não precise alterar o dpi.
  • ./reduzidas/: diretório onde serão salvas as imagens reduzidas.

That’s all folks!

Sobre o autor

Um desenvolvedor web veterano que está sempre a procura de novas tecnologias que facilitem o desenvolvimento de aplicativos ricos para a internet. Louco por tecnologia, games e Linux.

4 Comentários

  1. pedro3 de fevereiro de 2015 at 15:26

    vlw, cara. mto bom

  2. Hudsonkem2 de março de 2015 at 19:57

    e se eu quise-se redimencionar e trocar de png para icon por exemplo?

    • Leonardo Lima de Vasconcellos4 de maio de 2015 at 11:24

      Este comando resolveria:

      find . -maxdepth 1 -iname "*.png" | xargs -l -i convert -resize 64x64 -define icon:auto-resize=64,48,32,16 {} ./reduzidas/{}.ico

Deixe uma resposta