Compresor de PNG
No se sube nada: cada archivo se procesa en este navegador
PNG guarda cada píxel exacto, así que no hay calidad que bajar ni detalle que descartar. Un PNG solo se hace más pequeño de tres formas: menos píxeles, menos colores o un formato al que se le permita tirar algo. Esta página hace la primera y la tercera.
Cómo comprimir un PNG
En PNG no se tira nada, y saber cómo comprime explica por qué algunos archivos apenas se mueven. Cada fila de píxeles pasa primero por uno de cinco filtros (None, Sub, Up, Average, Paeth), que reescriben cada byte como diferencia con su vecino de la izquierda o de arriba, y las filas filtradas pasan después por el mismo algoritmo DEFLATE que usa ZIP. Eso hace que el tamaño del archivo dependa de lo repetitiva que sea la imagen, no de cómo se vea. Una captura de colores planos de una interfaz comprime muchísimo porque filas enteras se convierten en rachas de ceros. Una fotografía es ruidosa a nivel de píxel, así que casi nada predice nada y el archivo se queda cerca de su tamaño en bruto.
Lo que hace un optimizador de PNG y un navegador no puede
Herramientas como pngquant no comprimen más fuerte: cuantifican. El color verdadero de 24 bits pasa a una paleta de 256 entradas y la imagen pasa de tres o cuatro bytes por píxel a uno, lo que suele quitar un 60–70 % a una captura sin diferencia visible. Es un paso con pérdida aplicado a un formato sin pérdida, y es la razón de que un optimizador de línea de comandos gane a cualquier cosa que pueda hacer una página web. Un navegador no llega ahí: un lienzo devuelve RGBA de 8 bits y su codificador PNG escribe color verdadero con canal alfa, sin forma de pedir una paleta ni de elegir los filtros.
Eso tiene una consecuencia que conviene saber antes de usar cualquier herramienta PNG en el navegador. Un PNG-8 ya optimizado que se recodifica a través de un lienzo vuelve como RGBA de 32 bits, y a menudo más grande de lo que entró. Si un archivo ha pasado por pngquant o por un ajuste de exportación que lo cuantificó, déjalo como está: redimensionarlo sigue siendo seguro, recodificarlo al mismo tamaño no.
Cuando la respuesta es que no debería ser un PNG
Una fotografía guardada como PNG suele ocupar de cinco a diez veces lo que la misma imagen como buen JPEG, sin ganar nada. El canal alfa es el otro coste silencioso: una imagen totalmente opaca guardada como PNG-32 lleva un cuarto byte por píxel que vale 255 en todas partes, y DEFLATE comprime esa racha casi a nada, así que cuesta menos de lo que parece, pero sigue siendo un canal guardado sin motivo. Si la imagen es fotográfica y no tiene transparencia, la conversión es la compresión.
Para qué la usa la gente
- Reducir a la mitad una captura hecha en una pantalla 2× antes de meterla en un documento
- Convertir una fotografía que se exportó como PNG por error
- Dejar un logotipo transparente en un tamaño que admita una firma de correo
- Recortar una carpeta de recursos de interfaz exportados antes de subirlos
- Decidir si un archivo tiene motivos para ser PNG
Preguntas
Porque PNG no tiene pérdida: filtrado más DEFLATE, sin descartar nada. La calidad solo se aplica cuando cambias la salida a WebP o JPEG.
Probablemente era un PNG-8 con paleta. El lienzo del navegador recodifica en RGBA de 32 bits, que son más bytes por píxel que una paleta. Redimensiona ese archivo en lugar de recodificarlo.
Cuantifica la imagen a 256 colores, un paso con pérdida, y la deja en un byte por píxel. Ninguna API del navegador permite codificar con paleta, así que una página web no puede hacerlo.
Limita sus dimensiones o conviértelo a WebP, que admite transparencia y suele ser mucho más pequeño con el mismo tamaño.
Sí. Es el sustituto natural de PNG cuando importan la transparencia y también el tamaño del archivo.
Por la captura Retina. Una pantalla 2× registra el doble de píxeles en cada dirección, cuatro veces los datos, para una imagen que se verá a su tamaño CSS.
No. Todo ocurre en tu navegador, así que no hay subida ni cola.