Pngcrush

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 11 de julio de 2020; las comprobaciones requieren 2 ediciones .
aplastar png
Tipo de Optimizador de imagen
Autor Glenn Randers Pehrson
Escrito en C
Sistema operativo Software multiplataforma
ultima versión 1.7.12 ( 6.08.2010 ) _
Licencia Licencia libpng [d]
Sitio web pmt.sourceforge.net/pngc…

pngcrush  es una utilidad gratuita y de código abierto. Se utiliza para optimizar los filtros de imagen PNG . Brinda la capacidad de reducir el tamaño del archivo sin pérdida; esto significa que las imágenes "trituradas" tendrán la calidad de la imagen original.

El objetivo principal de pngcrush es reducir el tamaño de un PNG utilizando un flujo de datos IDAT, a través de una combinación de métodos de compresión y filtros delta. Sin embargo, pngcrush también se puede usar para otras acciones en imágenes PNG, como cambiar la profundidad de una imagen o eliminar bloques auxiliares no deseados, agregar ciertos bloques, incluidos gAMA , tRNS , iCCP y un bloque de texto.

Operaciones Básicas

El uso principal de pngcrush es reducir el tamaño de los datos de la sección IDAT incluidos en la imagen.

Los datos de píxeles en un archivo PNG se comprimen con el algoritmo LZ77 (que encuentra secuencias repetidas de bytes en el archivo de origen), después de lo cual se comprime con el algoritmo Huffman . Esta combinación nos recuerda al algoritmo DEFLATE . Antes de la compresión, se aplica un filtro delta seguro a los datos de píxeles

Hay 5 tipos de filtros posibles que se pueden usar por separado para cada paso de escaneo. En principio, hay varias formas posibles de buscar coincidencias LZ77. Por lo tanto, hay una gran cantidad de combinaciones diferentes de cómo se puede comprimir una imagen. Cuál se comprimirá mejor depende de las propiedades de la propia imagen [1]

pngcrush comprime la imagen con varias combinaciones diferentes y luego guarda el más pequeño de los archivos resultantes [2] Dado que no es posible implementar todas las combinaciones posibles, pngcrush usa algunas heurísticas para elegir una ruta.

En su forma más simple, se puede llamar a pngcrush para crear un archivo "triturado" a partir de uno no optimizado usando el siguiente formato, con el comando:

pngcrush imagenEntrada.png imagenFuera.png

De forma predeterminada, pngcrush usa solo algunos métodos comunes de compresión de archivos. El método de compresión opcional "-bruto" se puede usar para la compresión de fuerza bruta , que puede usar más de 100 métodos de compresión diferentes.

Reducción del tamaño del archivo mediante la eliminación de datos de color

Una de las características de pngcrush es la capacidad de eliminar todos los datos de corrección de color (gamma, balance de blancos, perfil de color ICC, perfil RGB estándar) de un archivo PNG usando los siguientes comandos:

pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB InputFile.png OutputFile.png

Dado que la mayoría del software de gráficos inserta datos de corrección de color adicionales que normalmente no se necesitan. Eliminar resultará en una reducción del 40% en el tamaño del archivo original. Pngcrush puede reducir sin pérdidas la profundidad de bits de una imagen o aplicar una paleta de colores , en caso de que esto resulte en una compresión de tamaño.

Todos los bloques auxiliares y el texto se pueden eliminar con el comando:

pngcrush -rem gAMA -rem alla -rem text Archivo de entrada.png Archivo de salida.png

Cambiando la imagen

Pngcrush se puede usar para codificar por color una imagen. Si se usan 10 colores, pero la paleta de colores es de 256 (8 bits), pngcrush podrá convertir la paleta a 4 bits y truncarla a 10 colores:

pngcrush -bit_ depth 4 -plte_len 10 imagen1.png imagen2.png

También se puede usar pngcrush para cambiar el color. Para una imagen de color verdadero, cambiar el croma de 2 a 0 ( -c 0) la cambiará a blanco y negro (escala de grises). Tal imagen es significativamente más pequeña que la original porque, además del canal alfa , solo se usa un canal de 8 bits por píxel, no tres. Una imagen en blanco y negro también es mucho más pequeña porque no requiere una paleta de colores . Para imágenes a todo color, cambiar el tipo de color de 6 a 2 eliminará el canal alfa.

Manipulaciones con metadatos y bloques

Las imágenes PNG contienen bloques con información sobre la imagen, como la resolución (bloque físico), la última fecha de modificación (bloque tIME) y metadatos de texto (bloque de texto y sus variantes). Usando pngcrush, el usuario puede editar o eliminar estos bloques auxiliares:

pngcrush -res 96 -rem tiempo -texto b "Software" "pngcrush" imagen1.png imagen2.png

Este comando cambia la resolución a 96 ppp , eliminando las marcas de tiempo y la propiedad "creador de imagen" a "pngcrush".

Véase también

Compresores PNG similares:

Programas similares para JPG:

Notas

  1. Cosmín Truta. Una guía para la optimización de PNG (enlace no disponible) (10 de mayo de 2008). Consultado el 31 de julio de 2010. Archivado desde el original el 1 de julio de 2012. 
  2. Whedon, David man pngcrush (enlace descendente) . Consultado el 31 de julio de 2010. Archivado desde el original el 1 de julio de 2012. 

Enlaces