pngcrush es una utilidad de línea de comandos gratuita y de código abierto para optimizar archivos de imagen PNG . Reduce el tamaño del archivo sin pérdidas , es decir, la imagen "triturada" resultante tendrá la misma calidad que la imagen de origen.
Desarrollador (es) | Glenn Randers-Pehrson |
---|---|
Lanzamiento estable | |
Repositorio | |
Escrito en | C |
Sistema operativo | Multiplataforma |
Tipo | Optimizador de imagen |
Licencia | Similar a la licencia libpng |
Sitio web | pmt |
El propósito principal de pngcrush es reducir el tamaño del flujo de datos IDAT PNG probando varias combinaciones de métodos de compresión y filtros delta. También se puede utilizar para diversas manipulaciones de imágenes PNG, como cambiar la profundidad de bits , eliminar fragmentos auxiliares no deseados o agregar ciertos fragmentos, incluidos gAMA, tRNS, iCCP y fragmentos textuales.
Operación principal
El uso principal de pngcrush es para reducir el tamaño de los datos de imagen contenidos en la sección IDAT.
Los datos de píxeles en un archivo PNG se comprimen mediante el algoritmo LZ77 (que intenta encontrar secuencias de bytes repetidas en los datos de origen) y luego se comprimen aún más con el algoritmo de Huffman . Esta combinación se conoce como compresión desinflada . Antes de comprimir, se aplican filtros delta no destructivos en los datos de píxeles.
Hay cinco tipos de filtros posibles que se pueden especificar por separado en cada línea de exploración y varias estrategias posibles para buscar coincidencias de LZ77. Por lo tanto, existe una gran cantidad de combinaciones diferentes sobre cómo se puede comprimir la imagen. La combinación que proporcione la mejor compresión dependerá de las propiedades de la imagen individual. [3]
pngcrush comprime la imagen con múltiples combinaciones diferentes y luego almacena el más pequeño de los archivos resultantes. [4] Dado que no es posible pasar por todas las combinaciones, pngcrush usa heurísticas para elegir los métodos a probar.
De forma predeterminada, pngcrush usa solo algunos métodos comunes para triturar el archivo. El argumento opcional "-brute" se puede utilizar para el aplastamiento por fuerza bruta , que probará 176 métodos de aplastamiento diferentes en la versión 1.8.12 y posteriores o 148 métodos de aplastamiento en las versiones 1.7.45 a 1.8.11.
Reducir el tamaño del archivo eliminando los datos de corrección 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 de color RGB estándar ) de los archivos PNG. [5]
Dado que la mayoría de los programas de gráficos incorporan datos de corrección de color adicionales, ¿cuál normalmente no es necesario [ según quién? ] , eliminarlo puede producir tamaños de archivo hasta un 40% más pequeños que el original. pngcrush, cuando se le indique, también reducirá sin pérdidas la profundidad de bits de las imágenes o aplicará una paleta de colores cuando sea posible si hacerlo da como resultado un tamaño de archivo más pequeño. Se pueden eliminar todos los fragmentos auxiliares y fragmentos de texto.
Manipulación de imagen
pngcrush se puede utilizar para cambiar la codificación de color de una imagen. Por ejemplo, si una imagen contiene 10 colores pero tiene una paleta de colores de 256 entradas (8 bits), pngcrush puede usarse para reducir la paleta de colores a una de 4 bits y truncar la paleta a 10 entradas.
pngcrush también puede cambiar el tipo de color de la imagen. Para una imagen de color verdadero, cambiar el tipo de color de 2 a 0 la convierte a escala de grises. Las imágenes en escala de grises son generalmente más pequeñas que las imágenes en color verdadero porque, además del canal alfa opcional , solo se usa un canal de 8 bits por píxel en lugar de tres. Las imágenes en escala de grises también son generalmente más pequeñas que las imágenes con paleta porque no necesitan definir una paleta de colores . Para una imagen de truecolor-alpha, cambiar el tipo de color de 6 a 2 elimina el canal alfa.
Manipulación de fragmentos y metadatos
Las imágenes PNG contienen fragmentos con información sobre la imagen, como su resolución (el fragmento físico), la hora en que se modificó por última vez (el fragmento tIME) y metadatos textuales (el fragmento de texto y sus variantes). Con pngcrush, un usuario puede editar o eliminar esos fragmentos auxiliares.
Ver también
Referencias
- ^ "registro de cambios pngcrush" . Consultado el 27 de julio de 2018 , a través de SourceForge .
- ^ "Herramientas PNG y MNG: busque /pngcrush/1.8.13 en SourceForge.net" . 29 de agosto de 2017 . Consultado el 27 de julio de 2018 , a través de SourceForge .
- ^ Cosmin Truta (10 de mayo de 2008). "Una guía para la optimización de PNG" . Consultado el 31 de julio de 2010 .
- ^ Whedon, David. "hombre pngcrush" . Consultado el 31 de julio de 2010 .
- ^ Sivonen, Henri (21 de abril de 2003). "La triste historia de PNG Gamma" Corrección " " . Consultado el 8 de septiembre de 2017 .
Otras lecturas
enlaces externos
- Página web oficial
- pngutils para la consola Win32
- pngcrush fork con zlib optimizado usando instrucciones SSE2 +, desarrollado por CloudFlare