Búsqueda de sitios web

Cómo optimizar y comprimir imágenes JPEG o PNG en la línea de comandos de Linux


¿Tiene muchas imágenes y desea optimizarlas y comprimirlas sin perder su calidad original antes de cargarlas en la nube o en el almacenamiento local? Hay muchas aplicaciones GUI disponibles que le ayudarán a optimizar las imágenes. Sin embargo, aquí hay dos utilidades de línea de comandos simples para optimizar imágenes y son:

  1. jpegoptim: es una utilidad para optimizar/comprimir archivos JPEG sin perder calidad.
  2. OptiPNG: es un pequeño programa que optimiza imágenes PNG a un tamaño más pequeño sin perder información.

Con estas dos herramientas, puede optimizar una o varias imágenes a la vez.

Comprima u optimice imágenes JPEG desde la línea de comandos

jpegoptim es una herramienta de línea de comandos que se puede utilizar para optimizar y comprimir archivos JPEG, JPG y JFIF sin perder su calidad real. Esta herramienta admite la optimización sin pérdidas, que se basa en la optimización de las tablas de Huffman.

Instalar jpegoptim en Linux

Para instalar jpegoptim en sus sistemas Linux, ejecute el siguiente comando desde su terminal.

Sobre Debian y sus derivados
apt-get install jpegoptim
or
sudo apt-get install jpegoptim
En sistemas basados en RedHat

En sistemas basados en RPM como RHEL, CentOS, Fedora, etc., necesita instalar y habilitar el repositorio EPEL o, alternativamente, puede instalar epel repositorio directamente desde la línea de comandos como se muestra:

yum install epel-release
dnf install epel-release    [On Fedora 22+ versions]

Luego instale el programa jpegoptim desde el repositorio como se muestra:

yum install jpegoptim
dnf install jpegoptim    [On Fedora 22+ versions]

Cómo utilizar el optimizador de imágenes Jpegoptim

La sintaxis de jpegoptm es:

jpegoptim filename.jpeg
jpegoptim [options] filename.jpeg

Ahora comprimamos la siguiente imagen tecmint.jpeg, pero antes de optimizar la imagen, primero averigüe el tamaño real de la imagen usando el comando du como se muestra.

du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

Aquí el tamaño real del archivo es 6,2 MB, ahora comprima este archivo ejecutando:

jpegoptim tecmint.jpeg 

Abra la imagen comprimida en cualquier aplicación de visualización de imágenes, no encontrará grandes diferencias. Las imágenes originales y comprimidas tendrán la misma calidad.

El comando anterior optimiza las imágenes al tamaño máximo posible. Sin embargo, puede comprimir la imagen dada a un tamaño específico, pero deshabilita la optimización sin pérdidas.

Por ejemplo, comprimamos encima de la imagen desde 5,6 MB hasta alrededor de 250k.

jpegoptim --size=250k tecmint.jpeg

Compresión y optimización de imágenes JPEG por lotes

Quizás te preguntes cómo comprimir las imágenes en todo el directorio, eso tampoco es difícil. Ve al directorio donde tienes las imágenes.

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

Y luego ejecute el siguiente comando para comprimir todas las imágenes a la 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.

También puedes comprimir varias imágenes seleccionadas a la 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 obtener más detalles sobre la herramienta jpegoptim, consulte las páginas de manual.

man jpegoptim 

Comprimir u optimizar imágenes PNG desde la línea de comandos

OptiPNG es una herramienta de línea de comandos que se utiliza para optimizar y comprimir archivos PNG (gráficos de red portátiles) sin perder su calidad original.

La instalación y uso de OptiPNG es muy similar a jpegoptim.

Instalar OptiPNG en Linux

Para instalar OptiPNG en sus sistemas Linux, ejecute el siguiente comando desde su terminal.

Sobre Debian y sus derivados
apt-get install optipng
or
sudo apt-get install optipng
En sistemas basados en RedHat
yum install optipng
dnf install optipng    [On Fedora 22+ versions]

Nota: Debe tener el repositorio epel habilitado en sus sistemas basados en RHEL/CentOS para instalar optipng programa.

Cómo utilizar el optimizador de imágenes OptiPNG

La sintaxis general de optipng es:

optipng filename.png
optipng [options] filename.png

Comprimamos la imagen tecmint.png, pero antes de optimizar, primero verifique el tamaño real de la imagen como se muestra:

tecmint@tecmint ~/img $ ls -lh tecmint.png 
-rw------- 1 tecmint tecmint 350K Jan 19 12:54 tecmint.png

Aquí el tamaño real del archivo de la imagen de arriba es 350K, ahora comprima este archivo ejecutando:

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 puede ver en el resultado anterior, el tamaño del archivo tecmint.png se ha reducido hasta el 30,39 %. Ahora verifique el tamaño del archivo nuevamente usando:

tecmint@tecmint ~/img $ ls -lh tecmint.png 
-rw-r--r-- 1 tecmint tecmint 244K Jan 19 12:56 tecmint.png

Abra la imagen comprimida en cualquier aplicación de visualización de imágenes; no encontrará diferencias importantes entre los archivos originales y comprimidos. Las imágenes originales y comprimidas tendrán la misma calidad.

Compresión y optimización de imágenes PNG por lotes

Para comprimir imágenes PNG por lotes o múltiples a la vez, simplemente vaya al directorio donde residen todas las imágenes y ejecute el siguiente comando para comprimir.

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 obtener más detalles sobre optipng, consulte las páginas de manual.

man optipng

Conclusión

Si es un webmaster y desea publicar imágenes optimizadas en su sitio web o blog, estas herramientas pueden resultar muy útiles. Estas herramientas no solo ahorran espacio en el disco, sino que también reducen el ancho de banda al cargar las imágenes.

Si conoce alguna otra forma mejor de lograr lo mismo, háganoslo saber a través de comentarios y no olvide compartir este artículo en sus redes sociales y apoyarnos.