Redimensionamento de Imagens com Scripts no ImageMagick

Redimensionamento automático de imagens para sites estáticos

Conteúdo da página

O tema Mainroad para o Hugo não redimensiona imagens automaticamente, apenas copia da pasta estática. Portanto, precisamos preparar um script para redimensionar e recortar as imagens para o tamanho adequado.

678x495 wizard

Quando

Tenho várias fontes de imagens - smartphone e câmera são os mais frequentemente usados. Elas têm resoluções e proporções diferentes.

Portanto, precisamos de uma sequência de processamento:

  • recorte central para a proporção
  • redimensionar (reduzir) para duas resoluções. Qualidade Jpeg - 80% é suficiente.
    • 235x171
    • 678x495

Onde

Vamos supor que as imagens de origem estejam todas na pasta ~/tmp/img_src Precisamos:

  • mover as imagens resultantes para as pastas ~/tmp/img_235x171 e ~/tmp/img_678x495
  • nomear as imagens como _235x171.jpg e _678x495.jpg

Como

No Ubuntu Linux, usaremos o ImageMagick:

sudo apt-get install imagemagick

Etapa de recorte:

convert wizard.png -gravity center -extent 11:8 wizarc.jpg
# agora verifique a geometria
identify wizard.png wizarc.jpg

Etapa de redimensionamento:

convert wizarc.jpg -resize 678x495 -quality 80 -interlace plane wizarc_678x495.jpg
convert wizarc.jpg -resize 235x171 -quality 80 -interlace plane wizarc_235x171.jpg
# agora verifique a geometria
identify wizarc.jpg wizarc_678x495.jpg wizarc_235x171.jpg

80 é a qualidade JPEG e plane significa JPEG progressivo. Isso ajudará a carregar as imagens mais rapidamente em conexões lentas, não apenas porque primeiro será carregada a miniatura, mas porque o próprio arquivo é menor. Pelo menos no caso do mago.

Com bordas:

convert wizarc.jpg -resize 676x493 -quality 80 -interlace plane -border 1x1 wizarc_678x495.jpg
convert wizarc.jpg -resize 233x169 -quality 80 -interlace plane -border 1x1 wizarc_235x171.jpg
# agora verifique a geometria
identify wizarc.jpg wizarc_678x495.jpg wizarc_235x171.jpg

A imagem resultante que você vê no início desta postagem e as proporções da imagem de origem eram:

20% of the wizard

Isso é após um simples redimensionamento e adição de borda:

convert wizard.png -resize 20% -quality 85 -interlace plane -border 2x2 wizard20.jpg

Outras opções

nautilus-image-converter

nautilus-image-converter é uma extensão do Nautilus para redimensionar ou rotacionar imagens em massa. Para instalar o nautilus-image-converter em todas as versões atualmente suportadas do Ubuntu, abra o terminal e digite:

sudo apt-get install nautilus-image-converter

Ele adiciona dois itens de menu de contexto no Nautilus, para que você possa clicar com o botão direito e escolher “Redimensionar Imagem”. (O outro é “Rotacionar Imagem”).

Você pode processar todo um diretório de imagens de uma só vez, se desejar, e nem precisa abrir um aplicativo para fazer isso.

Você precisa reiniciar o Nautilus para ver os novos menus de contexto, execute:

nautilus -q

e depois clique no ícone da pasta Home para recarregar o Nautilus com o novo plug-in.

mogrify

O comando mogrify sobrescreve os arquivos originais com as imagens redimensionadas:

mogrify -resize 50% *.png # manter a proporção da imagem mogrify -resize 320x240 *.png # manter a proporção da imagem mogrify -resize 320x240! *.png # não manter a proporção da imagem mogrify -resize x240 *.png # não manter a proporção da imagem mogrify -resize 320x *.png # não manter a proporção da imagem

Outras ferramentas úteis

Obter metadados da imagem - como resolução, profundidade de bits, etc. - parte do pacote ImageMagick.

identify image.jpg 

produziria algo como:

image.jpg JPEG 720x482 720x482+0+0 8-bit DirectClass 100KB 0.000u 0:00.009

Converter imagens para PDF

convert $(ls -v *.jpg) foobar.pdf
convert $(ls -v *.png) foobar.pdf