12 Nov 2020 | 2 minutos • Dicas e recomendações
Editando imagens com o ImageMagick
Usando um script bash
Ingrid Machado
Engenheira de computação, especialista em engenharia de software. Autora deste querido blog.
Sempre que eu vou publicar algum post eu busco por imagens de capa. O problema é que eu não posso ir no Unsplash e simplesmente baixar as imagens para usar no blog, senão a cada visita existiriam dois problemas:
- As páginas teriam um alto tempo de carregamento
- A cada visita feita na rede móvel o pacote de dados seria drenado
Para evitar estas situações, eu sempre edito a imagem: converto para uma escala de cinza, redimensiono e reduzo a qualidade. Assim, o tamanho da imagem reduz consideravelmente, mas sigo mantendo um bom nível de qualidade. Eu estava usando 3 sites para essas tarefas: BeFunky, convertimage e compressjpeg. Todos me atendem perfeitamente, mas quando é necessário editar mais de 3 imagens por vez, confesso que perco a paciência.
Para evoluir esse meu MVP, fiz um script (edit-img.sh) utilizando o ImageMagick:
ImageMagick: software gratuito para edição de imagens. Permite converter o formato da imagem, além de redimensionar, cortar, girar e diversas outras opções.
#!/bin/bash
FILES=C:/user/blog/imagens/*
if [ -z $1 ]
then
for file in $FILES*.jpg
do
echo "Processing $file file..."
magick $file -resize "1400" -grayscale Rec709Luma ${file%.*}-edited.jpg
done
else
echo "Processing $1 file..."
magick $1 -resize "1400" -grayscale Rec709Luma ${1%.*}-edited.jpg
fi
Esse script faz o seguinte:
- Se o script for executado sem nenhum parâmetro de entrada, então roda o comando magick para todos os arquivos com a extensão JPG da pasta
- Senão, roda o comando magick para a imagem inserida como parâmetro
Assim, posso executar o script com os seguintes comandos no Windows:
- .\edit-img.sh
- .\edit-img.sh NOME_DA_IMAGEM.jpg
magick $1 -resize "1400" -grayscale Rec709Luma ${1%.*}-edited.jpg
O comando magick é bem simples e montei ele baseado na documentação:
- magick: comando para executar o ImageMagick
- $1: parâmetro de entrada com a imagem a ser manipulada
- -resize “1400”: redimensiona a imagem de acordo com as dimensões informadas. Como redimensiono a imagem com base na largura, a documentação informa que ao passar somente um valor, ele é considerado como largura
- -grayscale Rec709Luma: converte a imagem para uma escala de cinza. O parâmetro Rec709Luma indica que é uma conversão não linear. Escolhi essa por ser indicada pela própria documentação como a escolha em caso de dúvida
- ${1%.*}-edited.jpg: parâmetro com o nome da imagem convertida. O formato que utilizei apenas adiciona o sufixo “-edited” ao final do nome da imagem
Resumindo, o ImageMagick vai redimensionar a imagem para uma largura de 1400px, de forma proporcional, e converter para uma escala de cinza, gerando um novo arquivo de imagem com o sufixo “-edited”.
Pretendo seguir olhando a documentação para ver quais opções de compressão de imagens me atendem e facilitar a organização das postagens no blog. Mas só esse script inicial já facilitou muito a minha vida.
O link do post foi copiado com sucesso!O ImageMagick está disponível para Windows e Linux e possui uma opção de uso com interface gráfica, além da linha de comando.
Mais conteúdos de Ingrid Machado
03 Nov 2025 • Dicas e recomendações
Ferramenta para organizar contas compartilhadas
Já compartilhei várias vezes sobre o documento “Acompanhamento financeiro para contas compartilhadas” aqui e na newsletter. Mas entendo que um documento no Coda nem sempre é o formato mais simples ...
1 minutos
06 Out 2025 • Dicas e recomendações
Como tirar print da tela inteira no Chrome
Recentemente, precisei tirar alguns prints de tela inteira para gerar evidências de testes. Procurando online como poderia fazer isso sem instalar nenhum programa extra, encontrei como fazer com o ...
1 minutos
14 Abr 2025 • Dicas e recomendações
Aplicativos do Wellhub
Atualmente, tenho uma assinatura do Wellhub (antigo Gympass) para usar a academia. E, por mais que exista um plano mais barato na academia, acabo seguindo com o Wellhub por causa dos aplicativos. C...
5 minutos