Reducir el tamaño de imágenes PNG

Noviembre 2016


Es posible reducir el tamaño de los archivos PNG, lo que es conveniente para las publicaciones en páginas web. El método descrito a continuación permite reducir el tamaño de archivos PNG en aproximadamente el 40 % del tamaño original.


¿Cómo reducir el tamaño de archivos PNG?

  • Reduciendo el número de colores en la imagen.
  • Recomprimiendo la imagen.
  • Eliminando las informaciones inútiles del archivo PNG (comentarios, miniaturas...)

¿Por qué reducir el tamaño de archivos PNG?

  • Mientras menos colores tenga una imagen, mejor se comprime en PNG. Muy a menudo, los PNG que tienen millones de colores pueden reducirse a 256 sin gran pérdida de calidad.
  • Podemos utilizar diferentes niveles de compresión cuando se guarda en PNG. Podemos comprimir el PNG con parámetros óptimos para obtener un archivo más pequeño sin la menor modificación visual.
  • Un archivo PNG puede contener numerosas informaciones además de la imagen misma: comentarios, perfiles de color, etc. Estas informaciones son inútiles para un navegador. Eliminarlos permite obtener archivos PNG más pequeños.

Programas para reducir el tamaño de archivos PNG


Existen dos programas muy eficaces, gratuitos y de código abierto:
  • Pngnq permite reducir el número de colores de un archivo PNG. La mayoría de archivos PNG que tienen millones de colores puede reducirse a 256 colores sin una pérdida de calidad evidente. De esta manera nos ahorramos espacio. Pngnq es el mejor programa en este dominio.
  • OptiPNG efectúa un recompression del png probando diferentes parámetros de compresión con el fin de obtener el archivo PNG más pequeño posible.
  • OptiPNG también elimina las informaciones inútiles de un PNG.


Pngnq es recomendado pero opcional, porque en ciertos casos específicos, puede reducir demasiado la calidad de imagen. Pero en la mayoría de casos, el algoritmo utilizado es tan eficaz como la diferencia entre millones de colores y 256 colores es casi imperceptible.

De hecho, pngnq es tan eficaz como raros son los casos en que guardar 16 millones de colores se justifica.

Desde la línea de comando


Si tienes un archivo image.png, escribe el comando:

pngnq -vf -s1 image.png
optipng -o7 image-nq8.png

Como resultado, tienes la imagen optimizada image-nq8.png

Haz la prueba y te sorprenderás del ahorro de espacio.

Explicación de las opciones:
  • -vf ordena a pngnq mostrar lo que se está ejecutando y borrar el archivo si ya existe.
  • -s1 ordena a pngnq hacer la optimización máxima (por defecto, es -s3).
  • -o7 ordena a optiPNG hacer un máximo de pruebas con combinaciones diferentes.

Tratamiento de varios archivos PNG


Si tienes varios archivos PNG, puedes hacer:

pngnq -vf -s1 *.png
optipng -o7 *-nq8.png

Los archivos optimizados llevarán el nombre xxxx-nq8.png

Ganancia media


En la mayoría de los casos, podemos esperar reducir un PNG al 40 % de su tamaño original.
(Un PNG de 100 KB se reduce a 40 KB).

Ejemplos

Logo CCM


Tamaño de la imagen original: 9,2KB



Tamaño optimizado: 4,4 KB


Monedas


Tamaño de la imagen original: 21,8 KB



Tamaño optimizado: 8,4 KB


¿Dónde encontrar estos programas?

  • En Linux (Debian):
    sudo apt-get install pngnq optipng 
  • En Windows:

Transparencia y compatibilidad


Pngnq et optiPNG preservan la transparencia de los archivos PNG. Puedes comprimir todos tus archivos PNG sin que pierdan la transparencia.

Estos dos programas son muy cuidadosos en generar el formato PNG perfectamente válido. Los archivos PNG producidos son perfectamente estándar y pueden ser leídos sin problema en todos los programas que soportan el formato PNG.

Nota de sebsauvage


Actualmente, pngnq+optipng parece dar los mejores resultados que se puedan obtener.

No he encontrado otro programa que vuelva los archivos tan compactos. Si encuentras alguno, no dudes en publicarlo.

Nota: en ciertos casos pngout (freeware para Windows) puede dar los mejores resultados que optiPNG. Las probabilidades son de 50/50: a veces optiPNG es mejor, a veces pngout es mejor. Esto depende de las imágenes. Si tienes tiempo, puedes probar con los dos para obtener el más pequeño PNG posible.

La versión línea de comando de pngout es gratuita. La versión con interfaz gráfica (PNGOUTWin) es de pago.

Scripts


Los scripts siguientes optimizan automáticamente todos los archivos PNG (sin que tener que renombrar los xxx-nq8.png en xxx.png al final).

No se recomienda pasar muchas veces este script sobre el mismo PNG, porque pngnq degrada cada vez la calidad de imagen.

.bat (Windows)


pngnq -vf -s1 *.png    
@FOR %%G IN (*.png) DO ( @IF EXIST "%%~nG-nq8.png" (move /Y "%%~nG-nq8.png" "%%G") )    
optipng -o7 *.png

Bash (Linux)


#!/bin/bash    
pngnq -vf -s1 *.png    
rename -f 's/-nq8.png$/.png/' *.png    
optipng -o7 *.png



Consulta también :
El documento «Reducir el tamaño de imágenes PNG» de CCM (es.ccm.net) se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo siempre y cuando respetes las condiciones de dicha licencia y des crédito a CCM.