Portada de UrsaKit con el tamaño de un PNG medido frente a JPEG y WebP

¿Por qué pesa tanto mi PNG y cómo comprimir PNG sin arruinar la imagen? Un PNG de varios megabytes no está corrupto ni tiene un ajuste roto. El PNG es un formato sin pérdida, y la ausencia de pérdida sale cara en cuanto el contenido deja de ser plano.

La forma de saber qué motivo se aplica a tu archivo es mirar qué contiene realmente la imagen. Una fotografía, una captura y un logotipo chocan con límites distintos, y cada uno tiene una solución diferente.

01Qué guarda el PNG por cada píxel

El PNG guarda color de 24 bits más un canal alfa de 8 bits por píxel, y después comprime el resultado con DEFLATE tras aplicar filtros que convierten las filas suaves en secuencias largas de ceros (especificación PNG del W3C). Antes de ese paso no descarta nada, así que el codificador depende por completo de las repeticiones.

Ese diseño compensa en gráficos planos. Nuestro logotipo de 1161x389 con transparencia ocupa 98.032 bytes, porque las grandes zonas de color idéntico se colapsan casi por completo. Para el ruido fotográfico no existe ningún truco equivalente.

Los filtros son la parte que más se malinterpreta. El PNG no está «sin comprimir»: usa un algoritmo de propósito general que no tiene idea de qué es una imagen. No puede suavizar un degradado ni descartar un detalle imperceptible; solo detecta que los mismos bytes vuelven a aparecer.

02Medición: la misma foto con cuatro codificadores

Tomamos una fotografía de 1408x768 (public/design/image-compressor-sample.jpg, 272.551 bytes en disco) y la recodificamos con Pillow 11.3.0 sobre Python 3.9.6 / macOS 26.5.1. Todas las cifras de abajo se reproducen con este fragmento, reejecutado el 2026-10-09:

from PIL import Image
import io

im = Image.open("public/design/image-compressor-sample.jpg").convert("RGB")

def size(fmt, **kw):
    buf = io.BytesIO()
    im.save(buf, fmt, **kw)
    return buf.tell()

size("PNG", optimize=True)               # 1.733.498
size("JPEG", quality=80, optimize=True)  # 236.333
size("WEBP", quality=80, method=4)       # 186.492
size("AVIF", quality=50)                 # 117.794

La misma ejecución, escrita:

input  image-compressor-sample.jpg   1408x768   272,551 B

PNG   lossless, optimize           1,733,498 B   6,4x el archivo de entrada
JPEG  quality 80, optimize           236,333 B   referencia
WebP  quality 80, method 4           186,492 B   -21% vs JPEG
AVIF  quality 50                     117,794 B   -50% vs JPEG

El PNG salió 7,3 veces mayor que el JPEG y 9,3 veces mayor que el WebP. Nada cambió salvo el contenedor, y ese es el diagnóstico completo.

Si tu PNG es enorme, el archivo te está diciendo qué contiene.

El almacenamiento sin pérdida es la elección correcta para gráficos y la incorrecta para fotografías. Cambiar el codificador resuelve el síntoma sin tocar la calidad visible.

03Causa 1: el PNG es sin pérdida por diseño

Cada JPEG, WebP o AVIF que has visto ya descartó información. Volver a guardarlo como PNG conserva ese daño tal cual, así que no puede recuperar detalle: solo garantiza que no se pierda nada más.

Esa garantía es justo lo que quieres en un logotipo que se redimensionará, recoloreará y reexportará durante años. En una fotografía es una carga, porque el detalle descartado era precisamente lo que hacía pequeño el archivo.

Convertir JPG a PNG no mejora la calidad.

Recodificamos nuestro JPG de prueba como PNG y comparamos los píxeles: no cambió ninguno. El archivo pasó de 272.551 bytes a 1.733.498 sin ninguna diferencia visual.

04Causa 2: 8 bits de color por canal

El PNG asigna 8 bits completos a cada canal rojo, verde y azul, más otros 8 si la imagen tiene transparencia. Una imagen de 1408x768 reserva por tanto más de 3,2 millones de bytes antes de empezar a comprimir.

Ese coste fijo explica por qué las imágenes diminutas siguen siendo diminutas: un cuadrado blanco de 512x512 se codifica en unos 1.878 bytes porque la entrada es casi toda repetición. La misma región de 512x512 en una fotografía es ruido prácticamente incompresible.

El modo de paleta es la salida de emergencia. Reducir la imagen a 256 colores bajó nuestra fotografía a 633.866 bytes, el 37% del PNG original, pero reescribió el color de cada píxel e introdujo bandas visibles en el cielo y en los tonos de piel.

05Causa 3: DEFLATE solo comprime repeticiones

DEFLATE (RFC 1951) es el mismo algoritmo que se usa dentro de los archivos ZIP. Busca secuencias de bytes repetidas y las sustituye por referencias, y por eso destaca en color plano, fondos uniformes y elementos de interfaz repetidos.

Las fotografías casi no contienen repeticiones exactas. El ruido del sensor hace que cada píxel difiera ligeramente de sus vecinos, así que la fase de filtrado produce un flujo de bytes casi aleatorio y DEFLATE no tiene de dónde agarrarse. Es la causa principal de que un PNG fotográfico se infle.

Las capturas Retina chocan con el mismo muro de otra manera. Capturar un área de 2880x1800 a 2x produce cuatro veces los píxeles de una captura de 1440x900, y el PNG los guarda todos con fidelidad, incluido cada subpíxel del texto suavizado.

06Comprueba si realmente necesitas PNG

Responde tres preguntas antes de buscar un codificador más pequeño, porque la solución correcta depende de las respuestas.

PreguntaSi síSi no
¿Es una fotografía?Usa WebP o JPEGEl PNG es razonable
¿Necesita transparencia?PNG o WebPEl JPEG pasa a ser una opción
¿La vas a editar otra vez?Conserva un maestro sin pérdidaComprime la exportación

Solo los gráficos planos que deben seguir sin pérdida —iconos, recursos de interfaz, diagramas, logotipos— pertenecen de verdad al PNG. Todo lo demás tiene un hogar más barato.

07Cuatro soluciones que sí reducen un PNG

Solución 1: recodificar como WebP sin pérdida. Es la victoria gratuita cuando necesitas una salida idéntica píxel a píxel. Nuestro logotipo pasó de 98.032 bytes en PNG a 36.116 en WebP sin pérdida, un 63% menos sin cambiar un píxel y con el canal alfa intacto.

Solución 2: reducir dimensiones en lugar de recodificar. El número de píxeles domina todo lo demás. Bajar a la mitad ambas dimensiones dejó el PNG de nuestra fotografía en 502.066 bytes: el 29% de los bytes para el 25% de los píxeles, porque el escalado también suaviza el ruido que estaba derrotando a DEFLATE.

Solución 3: convertir las fotografías a WebP o JPEG. Si la imagen es una foto y no necesita transparencia, el PNG es simplemente el contenedor equivocado, y convertirla reduce el archivo a una fracción en un solo paso.

Solución 4: usa la reducción de paleta solo en gráficos planos. Es una optimización real para iconos con unos pocos colores y una apuesta en cualquier cosa con degradados. Revisa el resultado en lugar de fiarte del recuento de bytes.

Para la mayoría, la respuesta es una sola conversión.

El WebP sin pérdida conserva los píxeles y recorta los bytes, y por eso PNG a WebP resuelve en un paso tanto los PNG gráficos como los fotográficos.

08Reduce tu PNG en el navegador

El Compresor de imágenes recodifica un PNG en local con la API Canvas, así que el archivo nunca sale de tu dispositivo y no hay subida que esperar. La página dedicada PNG a WebP conserva el canal alfa mientras cambia el contenedor.

  1. Arrastra el PNG al área de carga, o haz clic para buscarlo y seleccionarlo.
  2. La cola muestra el tamaño y las dimensiones originales de cada archivo.
  3. Pulsa Convert en una página dedicada, o Compress en la principal.
  4. Lee el informe: indica el porcentaje ahorrado y el tamaño de exportación estimado por archivo.
  5. Pulsa Download all para guardar el lote, o descarga los archivos de uno en uno.

Si un destino rechaza WebP, WebP a PNG vuelve a un contenedor sin pérdida y PNG a JPG aplana la transparencia sobre blanco para obtener una fotografía más ligera.

09Fuentes

Preguntas frecuentes

¿Por qué mi PNG pesa más que el archivo original?

El PNG guarda cada píxel exacto y solo comprime lo que se repite, así que el contenido fotográfico puede multiplicar su tamaño. Nuestra foto pasó de 272.551 bytes como JPEG de cámara a 1.733.498 bytes como PNG.

¿Cómo reduzco el tamaño de un PNG sin perder calidad?

Recodifícalo como WebP sin pérdida, que dejó nuestro logotipo idéntico píxel a píxel en 36.116 bytes en vez de 98.032, o reduce la imagen: bajar a la mitad cada dimensión dejó la foto en el 29% de sus bytes originales.

¿La reducción de paleta es sin pérdida?

No. Reducir a una paleta de 256 colores reescribe el color de cada píxel, y por eso dejó nuestra foto en 633.866 bytes pero añadió bandas visibles. Sirve para gráficos planos, no para fotografías.

¿Entonces convierto el PNG a JPG y listo?

Solo si la imagen es una fotografía y no necesita transparencia. El JPG no tiene canal alfa, así que un logotipo transparente acaba sobre un rectángulo blanco sólido.

¿Un PNG más pequeño significa peor calidad?

No necesariamente. Las herramientas sin pérdida y el WebP sin pérdida cambian la codificación sin tocar los píxeles. Lo que sí cambia el contenido almacenado es reducir dimensiones o la paleta de color.

¿Se suben mis archivos PNG al usar esta herramienta?

No. La codificación ocurre en tu navegador, así que el archivo se queda en tu dispositivo y no hay espera de subida.

Volver a los artículos

Artículos relacionados

Herramientas relacionadas