El formato PNG es bien conocido por ser uno de los más versátiles. Comprime sin pérdidas con hasta 3 canales de color (RGB) y un canal alpha (transparencia) de 8 bits.
Es muy utilizado últimamente a pesar de que programas comerciales pasan totalmente de él. Por ejemplo, versiones recientes de Photoshop no son capaces de generar PNG con un canal alpha de 8 bits, y el Internet Explorer 6 es incapaz de mostrarlos, a pesar de que se trata de un formato totalmente libre. Muchas aplicaciones aunque generen un PNG muchas veces no lo optimizan lo suficiente, como el mismo Photoshop o, aunque funcione mejor, el GiMP.
Pues vale, si no puedes generar un PNG realmente optimizado con tu aplicación, existe una especializada para optimizarlos,
pngcrush, que selecciona el mejor método de compresión para que tu imagen PNG ocupe menos.
Si la aplicación con la que generaste el PNG conoce el mejor método de compresión y es el que ha utilizado a la hora de guardar las imágenes, pngcrush no hará nada. Por ejemplo, el GIMP suele seleccionar el mejor método de compresión en las fotografías (y sino el mejor, uno de los mejores, que tampoco da tanta diferencia de tamaño), pero con las capturas de los juegos viejunos no, cosa que creo que nos interesa bastante.
Ejemplos de compresión
Gimp 2.2.7 -> 292K
Ksnapshot 2.4.1 -> 300K
PNGCRUSH -> 176K
Gimp 2.2.7 -> 31K
Ksnapshot 2.4.1 -> 32K
PNGCRUSH -> 23K
Gimp 2.2.7 -> 41.2K
PNGCRUSH -> 41.2K (sin cambio)
La utilidad pngcrush está disponible en los repositorios de Debian, e imagino que para algunas otras distribuciones de GNU/Linux. Los demás mortales pueden encontrar el código fuente y binarios en [1]esta dirección.
[1]
http://pmt.sourceforge.net/pngcrush/