Como otimizar e compactar imagens JPEG ou PNG na linha de comando do Linux
Você tem muitas imagens e deseja otimizá-las e compactá-las sem perder sua qualidade original antes de enviá-las para qualquer nuvem ou armazenamento local? Existem muitos aplicativos GUI disponíveis que o ajudarão a otimizar as imagens. No entanto, aqui estão dois utilitários de linha de comando simples para otimizar imagens:
- jpegoptim – é um utilitário para otimizar/compactar arquivos JPEG sem perder qualidade.
- OptiPNG – é um pequeno programa que otimiza imagens PNG para tamanhos menores sem perder nenhuma informação.
Usando essas duas ferramentas, você pode otimizar uma ou várias imagens por vez.
Compactar ou otimizar imagens JPEG da linha de comando
jpegoptim é uma ferramenta de linha de comando que pode ser usada para otimizar e compactar arquivos JPEG, JPG e JFIF sem perder sua qualidade real. Esta ferramenta oferece suporte à otimização sem perdas, que se baseia na otimização das tabelas Huffman.
Instale jpegoptim no Linux
Para instalar jpegoptim em seus sistemas Linux, execute o seguinte comando em seu terminal.
No Debian e seus derivados
apt-get install jpegoptim
or
sudo apt-get install jpegoptim
Em sistemas baseados em RedHat
Em sistemas baseados em RPM como RHEL, CentOS, Fedora etc., você precisa instalar e ativar o repositório EPEL ou, alternativamente, você pode instalar o epel repositório diretamente da linha de comando, conforme mostrado:
yum install epel-release
dnf install epel-release [On Fedora 22+ versions]
Em seguida, instale o programa jpegoptim do repositório conforme mostrado:
yum install jpegoptim
dnf install jpegoptim [On Fedora 22+ versions]
Como usar o otimizador de imagem Jpegoptim
A sintaxe do jpegoptm é:
jpegoptim filename.jpeg
jpegoptim [options] filename.jpeg
Vamos agora compactar a seguinte imagem tecmint.jpeg
, mas antes de otimizar a imagem, primeiro descubra o tamanho real da imagem usando o comando du conforme mostrado.
du -sh tecmint.jpeg
6.2M tecmint.jpeg
Aqui o tamanho real do arquivo é 6,2 MB, agora compacte este arquivo executando:
jpegoptim tecmint.jpeg
Abra a imagem compactada em qualquer aplicativo visualizador de imagens, você não encontrará grandes diferenças. As imagens de origem e compactadas terão a mesma qualidade.
O comando acima otimiza as imagens para o tamanho máximo possível. No entanto, você pode compactar a imagem fornecida em um tamanho específico, mas isso desativa a otimização sem perdas.
Por exemplo, vamos compactar a imagem acima de 5,6MB para cerca de 250k.
jpegoptim --size=250k tecmint.jpeg
Compressão e otimização de imagens JPEG em lote
Você pode perguntar como compactar as imagens em todo o diretório, isso também não é difícil. Vá para o diretório onde você tem as imagens.
tecmint@tecmint ~ $ cd img/
tecmint@tecmint ~/img $ ls -l
total 65184
-rwxr----- 1 tecmint tecmint 6680532 Jan 19 12:21 DSC_0310.JPG
-rwxr----- 1 tecmint tecmint 6846248 Jan 19 12:21 DSC_0311.JPG
-rwxr----- 1 tecmint tecmint 7174430 Jan 19 12:21 DSC_0312.JPG
-rwxr----- 1 tecmint tecmint 6514309 Jan 19 12:21 DSC_0313.JPG
-rwxr----- 1 tecmint tecmint 6755589 Jan 19 12:21 DSC_0314.JPG
-rwxr----- 1 tecmint tecmint 6789763 Jan 19 12:21 DSC_0315.JPG
-rwxr----- 1 tecmint tecmint 6958387 Jan 19 12:21 DSC_0316.JPG
-rwxr----- 1 tecmint tecmint 6463855 Jan 19 12:21 DSC_0317.JPG
-rwxr----- 1 tecmint tecmint 6614855 Jan 19 12:21 DSC_0318.JPG
-rwxr----- 1 tecmint tecmint 5931738 Jan 19 12:21 DSC_0319.JPG
E então execute o seguinte comando para compactar todas as imagens de uma vez.
tecmint@tecmint ~/img $ jpegoptim *.JPG
DSC_0310.JPG 6000x4000 24bit N Exif [OK] 6680532 --> 5987094 bytes (10.38%), optimized.
DSC_0311.JPG 6000x4000 24bit N Exif [OK] 6846248 --> 6167842 bytes (9.91%), optimized.
DSC_0312.JPG 6000x4000 24bit N Exif [OK] 7174430 --> 6536500 bytes (8.89%), optimized.
DSC_0313.JPG 6000x4000 24bit N Exif [OK] 6514309 --> 5909840 bytes (9.28%), optimized.
DSC_0314.JPG 6000x4000 24bit N Exif [OK] 6755589 --> 6144165 bytes (9.05%), optimized.
DSC_0315.JPG 6000x4000 24bit N Exif [OK] 6789763 --> 6090645 bytes (10.30%), optimized.
DSC_0316.JPG 6000x4000 24bit N Exif [OK] 6958387 --> 6354320 bytes (8.68%), optimized.
DSC_0317.JPG 6000x4000 24bit N Exif [OK] 6463855 --> 5909298 bytes (8.58%), optimized.
DSC_0318.JPG 6000x4000 24bit N Exif [OK] 6614855 --> 6016006 bytes (9.05%), optimized.
DSC_0319.JPG 6000x4000 24bit N Exif [OK] 5931738 --> 5337023 bytes (10.03%), optimized.
Você também pode compactar várias imagens selecionadas de uma só vez:
$ jpegoptim DSC_0310.JPG DSC_0311.JPG DSC_0312.JPG
DSC_0310.JPG 6000x4000 24bit N Exif [OK] 6680532 --> 5987094 bytes (10.38%), optimized.
DSC_0311.JPG 6000x4000 24bit N Exif [OK] 6846248 --> 6167842 bytes (9.91%), optimized.
DSC_0312.JPG 6000x4000 24bit N Exif [OK] 7174430 --> 6536500 bytes (8.89%), optimized.
Para mais detalhes sobre a ferramenta jpegoptim, confira as páginas de manual.
man jpegoptim
Compactar ou otimizar imagens PNG da linha de comando
OptiPNG é uma ferramenta de linha de comando usada para otimizar e compactar arquivos PNG (gráficos de rede portáteis) sem perder sua qualidade original.
A instalação e uso do OptiPNG é muito semelhante ao jpegoptim.
Instale OptiPNG no Linux
Para instalar OptiPNG em seus sistemas Linux, execute o seguinte comando em seu terminal.
No Debian e seus derivados
apt-get install optipng
or
sudo apt-get install optipng
Em sistemas baseados em RedHat
yum install optipng
dnf install optipng [On Fedora 22+ versions]
Nota: Você deve ter o repositório epel ativado em seus sistemas baseados em RHEL/CentOS para instalar o optipng programa.
Como usar o otimizador de imagem OptiPNG
A sintaxe geral de optipng é:
optipng filename.png
optipng [options] filename.png
Vamos compactar a imagem tecmint.png
, mas antes de otimizar, primeiro verifique o tamanho real da imagem conforme mostrado:
tecmint@tecmint ~/img $ ls -lh tecmint.png
-rw------- 1 tecmint tecmint 350K Jan 19 12:54 tecmint.png
Aqui o tamanho real do arquivo da imagem acima é 350K, agora compacte este arquivo executando:
tecmint@tecmint ~/img $ optipng tecmint.png
OptiPNG 0.6.4: Advanced PNG optimizer.
Copyright (C) 2001-2010 Cosmin Truta.
** Processing: tecmint.png
1493x914 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 357525 bytes
Input file size = 358098 bytes
Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 249211
Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 249211
Output IDAT size = 249211 bytes (108314 bytes decrease)
Output file size = 249268 bytes (108830 bytes = 30.39% decrease)
Como você pode ver na saída acima, o tamanho do arquivo tecmint.png foi reduzido para 30,39%. Agora verifique o tamanho do arquivo novamente usando:
tecmint@tecmint ~/img $ ls -lh tecmint.png
-rw-r--r-- 1 tecmint tecmint 244K Jan 19 12:56 tecmint.png
Abra a imagem compactada em qualquer aplicativo visualizador de imagens, você não encontrará grandes diferenças entre os arquivos originais e compactados. As imagens de origem e compactadas terão a mesma qualidade.
Compressão e otimização de imagens PNG em lote
Para compactar em lote ou várias imagens PNG de uma vez, basta ir ao diretório onde todas as imagens residem e executar o seguinte comando para compactar.
tecmint@tecmint ~ $ cd img/
tecmint@tecmint ~/img $ optipng *.png
OptiPNG 0.6.4: Advanced PNG optimizer.
Copyright (C) 2001-2010 Cosmin Truta.
** Processing: Debian-8.png
720x345 pixels, 3x8 bits/pixel, RGB
Input IDAT size = 95151 bytes
Input file size = 95429 bytes
Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 81388
Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 81388
Output IDAT size = 81388 bytes (13763 bytes decrease)
Output file size = 81642 bytes (13787 bytes = 14.45% decrease)
** Processing: Fedora-22.png
720x345 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 259678 bytes
Input file size = 260053 bytes
Trying:
zc = 9 zm = 8 zs = 0 f = 5 IDAT size = 222479
zc = 9 zm = 8 zs = 1 f = 5 IDAT size = 220311
zc = 1 zm = 8 zs = 2 f = 5 IDAT size = 216744
Selecting parameters:
zc = 1 zm = 8 zs = 2 f = 5 IDAT size = 216744
Output IDAT size = 216744 bytes (42934 bytes decrease)
Output file size = 217035 bytes (43018 bytes = 16.54% decrease)
....
Para mais detalhes sobre optipng verifique as páginas de manual.
man optipng
Conclusão
Se você é um webmaster e deseja veicular imagens otimizadas em seu site ou blog, essas ferramentas podem ser muito úteis. Essas ferramentas não apenas economizam espaço em disco, mas também reduzem a largura de banda durante o upload das imagens.
Se você conhece alguma outra maneira melhor de conseguir o mesmo, informe-nos através dos comentários e não se esqueça de compartilhar este artigo em suas redes sociais e nos apoiar.