GNU/Linux >> Tutoriales Linux >  >> Linux

Pngquant:una utilidad de línea de comandos para comprimir imágenes PNG en Linux

Pngquant es un compresor de PNG con pérdida de línea de comandos gratuito, de código abierto y multiplataforma. Se basa en un libimagequant portátil biblioteca y está escrito en C99 . Reduce significativamente el tamaño del archivo al convertir la imagen PNG a 8 bits más eficiente PNG y conserva la transparencia alfa completa . Como ya sabrá, los archivos PNG de 8 bits suelen ser un 60-80 % más pequeños que los archivos PNG de 24/32 bits. Las imágenes comprimidas con Pngquant son totalmente compatibles con todos los navegadores web y sistemas operativos. Pngquant puede comprimir una o varias imágenes a la vez. En esta guía, veamos cómo instalar Pngquant y cómo comprimir imágenes PNG en Linux usando Pngquant.

Características

Pngquant tiene las siguientes características.

  • Soporte para la conversión por lotes de múltiples archivos PNG.
  • Generación de paletas de alta calidad.
  • Utiliza el algoritmo de cuantificación Median Cut para optimizar las imágenes.
  • Se puede integrar fácilmente con scripts de shell, GUI y software del lado del servidor.
  • Convierte imágenes en la calidad deseada y omite las imágenes que no se pueden convertir con la calidad deseada.
  • Compatibilidad con varios núcleos y optimizaciones Intel SSE.

Instalar Pngquant en Linux

Pngquant se puede instalar de muchas maneras.

Instalar Pngquant desde los repositorios de distribución

Pngquant está disponible en los repositorios predeterminados de la mayoría de las distribuciones de Linux.

En Arch Linux y sus variantes, Pngquant está disponible en [Comunidad] repositorio. Habilite el repositorio de la comunidad e instálelo usando Pacman como a continuación.

$ sudo pacman -S pngquant

En Debian, Ubuntu, Linux Mint:

$ sudo apt install pngquant

En los sistemas Ubuntu, debe habilitar [Universo] repositorio para instalar Pngquant.

Para habilitar el repositorio Universe, haz lo siguiente:

$ sudo add-apt-repository universe

En Fedora:

$ sudo dnf install pngquant

En openSUSE:

$ sudo zypper install pngquant

En CentOS:

$ sudo yum install epel-release
$ sudo yum install pngquant

Compruebe la versión de Pngquant instalada:

$ pngquant -V
2.5.0 (June 2015)

La versión de Pngquant disponible en los repositorios predeterminados puede ser antigua. Si desea la versión más reciente, compílela e instálela manualmente desde la fuente como se muestra a continuación.

Instalar Pngquant desde la fuente

Primero, instala las dependencias necesarias.

En Debian, Ubuntu:

$ sudo apt install git gcc cmake libpng-dev pkg-config

En CentOS, Fedora:

$ sudo yum install git libpng-devel gcc cmake

A continuación, git clona la última versión de Pngquant:

$ git clone --recursive https://github.com/kornelski/pngquant.git

El comando anterior descargará el contenido del repositorio Pngquant GitHub y lo guardará en una carpeta llamada "pngquant" en su directorio de trabajo actual.

Cambia al "directorio pngquant:

$ cd pngquant

Finalmente, ejecute los siguientes comandos para compilar e instalar Pngquant:

$ make
$ sudo make install

Pngquant se instalará en /usr/local/bin ubicación por defecto. Si desea instalarlo en otro directorio, ejecute:

$ ./configure --prefix=dir && make

Reemplace "dir" con su ruta. Primero debe ejecutar este comando y luego ejecutar el comando "sudo make install".

Compruebe la versión de Pngquant:

$ pngquant -V
2.12.5 (July 2019)

¿Ver? Es la versión más reciente.

Instalar Pngquant usando Cargo

Pngquant también se puede instalar usando Cargo gerente de empaquetación. Primero, instala Rust como se describe en el siguiente enlace.

  • Instalar el lenguaje de programación Rust en Linux

git clone la última versión de Pngquant:

$ git clone --recursive https://github.com/kornelski/pngquant.git

Finalmente, construya e instale Pngquant usando Cargo como se muestra a continuación.

$ cd pngquant
$ sudo cargo build --release

Para conocer otros métodos de instalación, consulte la página de instalación oficial de Pngquant. .

Comprime imágenes PNG en Linux usando Pngquant

El uso de Pngquant es trivial y no requiere ninguna habilidad especial para usarlo.

Tengo un archivo de imagen PNG llamado "ostechnix.png" en mi directorio actual. Déjame mostrarte su tamaño.

$ du -sh ostechnix.png 
152K ostechnix.png

Como puede ver, el tamaño de la imagen es 152k .

Comprimir una imagen PNG

Para comprimir una imagen PNG con Pngquant, solo proporcione su ruta como se muestra a continuación:

$ pngquant ostechnix.png

El comando anterior comprimirá el archivo ostechnix.png y lo guardará como un archivo nuevo con el nombre "ostechnix-fs8.png" . De forma predeterminada, Pngquant usará el mismo nombre de archivo de salida que el nombre de archivo de entrada con el sufijo -or8.png o -fs8.png al final. Lo que significa que no sobrescribirá el archivo fuente. Si no está satisfecho con la tasa de compresión, simplemente elimine el archivo comprimido y conserve el original.

Verifiquemos nuevamente el tamaño del archivo de imagen comprimida:

$ du -sh ostechnix-fs8.png 
48K ostechnix-fs8.png

Comprimir imágenes PNG usando Pngquant

¿Ver? Pngquant ha reducido los 152k tamaño de la imagen a solo 48k . De hecho, es un buen trabajo. Abre la imagen usando cualquier visor de imágenes y compáralas. No encontrará mucha diferencia en la calidad entre las imágenes originales y comprimidas. ¡Ambas imágenes se verán casi iguales!

Mostrar mensaje de estado durante la compresión

De forma predeterminada, Pngquant no mostrará lo que sucede detrás de escena al comprimir imágenes. Si desea ver el mensaje de estado, use este comando:

$ pngquant ostechnix.png --verbose
ostechnix.png:
conserving memory
read 152KB file
corrected image from gamma 2.2 to sRGB gamma
made histogram...1854 colors found
selecting colors...4%
selecting colors...25%
selecting colors...28%
selecting colors...49%
selecting colors...69%
selecting colors...90%
selecting colors...100%
moving colormap towards local minimum
eliminated opaque tRNS-chunk entries...61 entries transparent
mapped image to new colors...MSE=0.055 (Q=99)
writing 256-color image as ostechnix-fs8.png
No errors detected while quantizing 1 image.

Ahora verá el progreso mientras se realiza la compresión.

Comprimir múltiples imágenes PNG

Pngquant también puede convertir múltiples imágenes. El siguiente comando comprimirá imagen1.png y imagen2.png en el directorio de trabajo actual.

$ pngquant picture1.png picture2.png

Además, podemos mover todos los archivos en un directorio y comprimirlos de una sola vez. Por ejemplo, para convertir todas las imágenes en una carpeta llamada "/home/sk/images", ejecute:

$ pngquant /home/sk/images/*.png

Cambiar el sufijo del nombre del archivo de salida

Como ya dije, el nombre del archivo de salida es el mismo que el nombre de entrada excepto que termina en "-fs8.png" , "-o8.png" . Sin embargo, puede cambiar el sufijo como desee, como se muestra a continuación.

$ pngquant ostechnix.png --ext linux.png

Este comando comprimirá el archivo ostechnix.png y lo guardará como ostechnixlinux.png .

Omita guardar archivos si el tamaño de los archivos comprimidos es más grande que los archivos originales

¿Cuál es el punto de compresión si los archivos convertidos son más grandes que los archivos de origen? Esa conversión no vale la pena, así que podemos omitirla como se muestra a continuación.

$ pngquant --skip-if-larger ostechnix.png

El comando anterior solo guardará el archivo convertido si es más pequeño que el original.

Guardar archivos convertidos en una ruta diferente

De forma predeterminada, Pngquant guardará los archivos de imagen de entrada y salida en el mismo directorio. Si desea guardar el archivo de salida en otro lugar, el comando sería:

$ pngquant ostechnix.png --output Documents/output.png

Este comando comprimirá ostechnix.png y lo guardará como output.png en Documentos directorio.

Comprimir imágenes PNG en calidad personalizada

Pngquant comprime las imágenes tanto como sea posible. También podemos configurar manualmente la calidad de las imágenes. Pngquant nos permite establecer la calidad de la imagen en el rango 0 (peor) a 100 (perfecto) usando min y máx parámetros.

El siguiente ejemplo establece la calidad de imagen mínima en 60 y la calidad máxima en 80.

$ pngquant --quality=60-80 image.png

Si la conversión da como resultado una calidad inferior a la calidad mínima, la imagen no se guardará.

Metadatos de la imagen de la tira

Los metadatos de imagen son un conjunto de datos sobre los magos. Incluye toda la información sobre una imagen, como formato de imagen, configuración de la cámara, DPI, fecha y hora de la imagen, título y comentarios, geolocalización y mucho más. Consulte el siguiente artículo para saber cómo ver los metadatos de la imagen.

  • Cómo ver metadatos de imágenes en Linux

Si no tiene los metadatos, simplemente puede eliminarlos usando pngquant como se muestra a continuación.

$ pngquant --strip image.png

Para obtener más detalles, consulte las páginas man.

$ man pngquant

Lectura sugerida:

  • Converseen:un sencillo convertidor gráfico de imágenes por lotes y redimensionador
  • 3 visores de imágenes CLI para mostrar imágenes en la terminal
  • Cómo mostrar imágenes en miniatura en la terminal
  • Cómo guardar la salida de comandos de Linux en una imagen o un archivo de texto
  • Gifski:un codificador de GIF multiplataforma de alta calidad
  • Flameshot:una herramienta de captura de pantalla rica en funciones simple pero potente

He estado usando Pngquant durante muchos años. Me ayuda mucho comprimir imágenes PNG hasta un 70% o más. Si está buscando un optimizador y compresor de imágenes PNG, Pngquant podría ser una buena opción.


Linux
  1. Instalar Java manualmente en Linux

  2. Instalar MariaDB o MySQL en Linux

  3. Cómo instalar Python en Linux

  4. Cómo instalar Java en Linux

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

Pngquant:una utilidad de línea de comandos para comprimir imágenes PNG en Linux

Cómo convertir por lotes imágenes PNG a formato JPG en Linux

Cómo instalar Pigz para comprimir archivos más rápido en Linux

Cómo comprimir archivos de imagen PNG en Linux

Cómo convertir PDF a imágenes PNG y viceversa en Linux

Cómo instalar y usar Pigz para comprimir archivos más rápido en Linux