Métodos de pago Abuse

Optimización de imágenes en Linux

16.06.2021, 19:33

Si tienes suficientes imágenes en tu ordenador y están ocupando demasiado espacio, sin duda es posible reducir su tamaño incluso sin perder calidad. Esto también puede ser muy útil a la hora de subir imágenes al almacenamiento en la nube.

En este artículo, vamos a ver cómo se realiza la optimización de imágenes en Linux. Existe una gran variedad de herramientas gráficas para resolver esta tarea, pero en realidad, todo es más sencillo. A continuación veremos cómo comprimir imágenes utilizando dos utilidades de línea de comandos de consola sencillas pero muy eficaces: jpegoptim es una utilidad para optimizar y comprimir imágenes JPEG sin pérdida de calidad; optipng es un pequeño programa que permite reducir el tamaño de las imágenes PNG sin pérdida de calidad.

JPEG y PNG son los formatos de imagen más comunes en Internet, por lo que podrá optimizar casi todas las imágenes.

Optimizar imágenes JPEG

Existe una utilidad llamada jpegoptim, una herramienta de línea de comandos que puede utilizarse para comprimir imágenes JPEG, JPG y JFIF sin pérdida de calidad. La utilidad optimiza las imágenes basándose en tablas Huffman. El algoritmo JPEG utiliza la compresión tal cual, pero esta compresión se consigue con pérdida de calidad, y aquí podemos optimizar el tamaño sin cambiar la imagen.

INSTALACIÓN DE JPEGOPTIM

Para instalar la utilidad en Ubuntu, Debian y distribuciones basadas, ejecute:

$ sudo apt install jpegoptim

En Fedora, Red Hat, CentOS y otras distribuciones basadas en ellas las cosas son un poco más complicadas, tendrás que añadir primero el repositorio epel-release. Puedes hacerlo con un comando como este:

$ sudo yum install epel-release

O:

$ sudo dnf install epel-release

Luego puedes instalar jpegoptim desde el repositorio que acabas de añadir:

$ sudo yum install jpegoptim

O:

$ sudo dnf install jpegoptim

CÓMO UTILIZAR JPEGOPTIM

Veamos cómo utilizar jpegoptim. Usar la utilidad de compresión de imágenes de linux es muy fácil. Todo lo que necesitas hacer es ejecutar el programa y pasarle un nombre de archivo. Esta es la sintaxis:

$ jpegoptim optiona file_name.jpeg

Veamos las opciones de la utilidad:

  • -d - especificar la carpeta en la que guardar las imágenes terminadas;
  • -f - optimización forzada;
  • -m - indicador de calidad, cancela la compresión sin pérdidas y establece el nivel de calidad de 0 a 100, cuanto más mejor;
  • -n - no realiza la optimización real, sólo muestra el resultado;
  • -S - establece el tamaño de la imagen terminada, puede especificarse en porcentaje o kilobytes;
  • -o - reemplazar el archivo fuente;
  • -p - guardar marcas de tiempo;
  • -P - guardar los derechos del archivo.

Veamos cómo optimizar imágenes en linux con jpegoptim. Primero, veamos el tamaño original:

$ du image.jpg

Optimización de imágenes en Linux

A continuación hacemos la optimización más sencilla:

$ jpegoptim image.jpg

Optimización de imágenes en Linux

Luego miramos de nuevo el tamaño:

$ du image.jpg

Optimización de imágenes en Linux

Como puedes ver, la compresión jpg ha funcionado, y abriendo la imagen en cualquier programa gráfico no habrá ninguna diferencia o degradación en la calidad, la imagen original y la terminada serán idénticas. A la izquierda la optimizada, a la derecha la original:

Optimización de imágenes en Linux

Si lo desea, puede comprimir la imagen hasta un cierto tamaño, pero entonces no será sin pérdidas:

$ jpegoptim --size=250k image.jpeg

La imagen se comprimirá, pero la calidad se deteriorará notablemente. Si hay muchas imágenes, puede utilizar muy fácilmente la compresión por lotes, sólo tiene que ir a la carpeta con las imágenes y luego ejecutar el comando de compresión especificando una máscara en lugar de un archivo, por ejemplo:

$ cd images/

jpegoptim *.jpg

Optimización de imágenes en Linux

También puedes listar más de una imagen a la vez:

$ jpegoptim image1.jpg image2.jpg

Para optimizar todas las imágenes de una carpeta determinada, puede utilizar el comando xargs junto con find. Por ejemplo, comprimir todas las imágenes de la carpeta actual con mover a la carpeta ~/comprimido:

$ find . -name "*.jpg" | xargs jpegoptim -d ~/compressed -p

Eso es todo, ahora ya sabes cómo comprimir imágenes jpg en Linux. A continuación, hablaremos de cómo comprimir png. Esto también es muy sencillo.

OPTIMIZANDO IMÁGENES PNG EN LINUX

PNG o Portable Network Graphics es un formato de imagen de mapa de bits diseñado para sustituir al imperfecto formato GIF en términos de compresión y reproducción del color. El tamaño de las imágenes PNG puede variar mucho en función de varios factores como la profundidad de color, el entrelazado, el filtro de compresión anterior, el algoritmo de compresión utilizado, etc.

OptiPNG es una utilidad de consola que permite optimizar las imágenes PNG. A saber, comprimir el tamaño, recuperar metadatos, comprobar la integridad, etc. Con OptiPNG puede comprimir archivos sin pérdida de calidad, al igual que hicimos con el formato Jpeg.

INSTALAR OPTIPNG

Si usas Ubuntu, el programa está en los repositorios oficiales y puedes instalarlo muy fácilmente. Para instalar optipng en Debian, Ubuntu y derivados escribe:

$ sudo apt install optipng

En Red Hat, CentOS o Fedora se hace exactamente igual, sólo que con un gestor de paquetes diferente:

$ sudo yum install optipng

O:

$ sudo dnf install optipng

COMPRESIÓN DE IMÁGENES CON OPTIPNG

La sintaxis de la utilidad es muy sencilla. Se puede utilizar exactamente de la misma manera que jpegoptim:

$ optipng ioptions file_name.png

Veamos las opciones de la utilidad:

  • -backup - guardar copias de los archivos modificados;
  • -dir - carpeta donde escribir los archivos;
  • -force - forzar la escritura del archivo saliente;
  • -out - escribir archivo saliente en el archivo especificado;
  • -simulate - no realizar ninguna acción, sólo mostrar el resultado;
  • -o - establecer el nivel de compresión de 0 a 7.

Ahora vamos a intentar optimizar png en linux. Primero veamos el tamaño del archivo:

$ df -h image.png

Optimización de imágenes en Linux

Para realizar la compresión de imágenes utilice el siguiente comando:

$ optipng image.png

Luego de nuevo miremos el tamaño, en este ejemplo las diferencias no son visibles porque la imagen es muy pequeña, pero a mayor tamaño serán significativas:

Aquí también la compresión de imágenes png linux sin pérdidas, lo que significa que obtendrá exactamente la misma imagen sólo que más pequeña. También puede especificar el nivel de compresión, no afecta a la calidad de la imagen, pero afecta directamente el tiempo de ejecución del programa. El valor puede ser de 0 a 7 y cuanto más, más fuerte será la compresión y más largo será el procesamiento:

$ optipng -o 7 impge.png

Para el procesamiento por lotes de imágenes se puede utilizar el mismo principio que en el trabajo con jpeg:

$ cd images/

$ optipng *.png

Ahora ya sabes cómo se hace la optimización de imágenes en linux.