12 Nov 2020 | 2 minutos • Dicas e recomendações
Editando imagens com o ImageMagick
Usando um script bash
![Ingrid Machado](/assets/images/authors/ingridmachado/avatar.jpg)
Ingrid Machado
Engenheira de computação, especialista em engenharia de software. Autora deste querido blog.
![Image de capa do post Editando imagens com o ImageMagick](/assets/images/posts/covers/editando-imagens-imagemagick.jpg)
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
![Imagem de capa do post Como escrevi o meu primeiro e-book](/assets/images/posts/covers/como-escrevi-meu-primeiro-ebook.jpg)
17 Jun 2024 • Dicas e recomendações
Como escrevi o meu primeiro e-book
Quando percebi que tinha muito conteúdo sobre os mesmos tópicos publicados aqui no blog e na newsletter, também me dei conta de que quem se interessa a respeito de algum tema específico pode estar ...
9 minutos
![Imagem de capa do post Microsoft 365 Family](/assets/images/posts/covers/microsoft-365-family.jpg)
10 Jun 2024 • Dicas e recomendações
Microsoft 365 Family
Eu uso muitos produtos da Microsoft e antes de falar sobre o Microsoft To Do fazia um bom tempo que eu não compartilhava sobre esse uso. Como tenho uma assinatura do Microsoft Family 365 que acho q...
3 minutos
![Imagem de capa do post FutureMe](/assets/images/posts/covers/futureme.jpg)
04 Mar 2024 • Dicas e recomendações
FutureMe
Já faz algum tempo que comecei a escrever cartas no FutureMe. Falo sobre elas na newsletter, mas reparei que nunca comentei a respeito no blog. Por ser uma ferramenta muito legal e que pode ser usa...
2 minutos