Comprimir imagen al tamaño objetivo

Fija un objetivo en kilobytes y la herramienta busca la calidad JPEG que quepa —y, si lo permites, reduce dimensiones— hasta que la imagen entre.

La compresión ocurre localmente en tu navegador. Tu imagen nunca sale del dispositivo.

Elige un objetivo y descarga

Suelta aquí una imagen

Entrada PNG, JPEG, WebP o GIF — salida JPEG. Haz clic para elegir.

La salida es JPEG: el codificador WebP del navegador suele quedar mejor en objetivos pequeños, pero su soporte varía entre navegadores, así que JPEG es la elección fiable.

Cómo funciona

El tamaño del JPEG depende de una sola perilla que expone el navegador: el parámetro toBlob(type, quality). La herramienta lo trata como un problema de búsqueda — hallar la calidad más alta cuyo resultado siga quedando por debajo de tu objetivo en bytes.

Búsqueda binaria de calidad
La calidad se enmarca entre 0,05 y 0,95 y se divide por la mitad durante unas siete rondas, codificando un blob desechable de canvas en cada prueba. El tamaño crece de forma monótona con la calidad, así que una simple búsqueda binaria da con el mejor valor en fracciones de segundo para fotos normales.
La escalera de reducción
Si incluso la calidad 0,05 se pasa del objetivo a resolución completa, tienen que irse píxeles — no solo precisión. La imagen se redibuja al 90 %, luego al 80 %… de sus dimensiones, repitiendo la búsqueda de calidad en cada peldaño, hasta que cabe o el lado corto llega a 64 px y la herramienta admite honestamente la derrota. La casilla mantiene esto opcional.
Por qué JPEG y no WebP
WebP a la misma calidad visual suele ser 25–35 % más pequeño, y lograría objetivos agresivos con menos daño. Pero canvas.toBlob("image/webp") cae en silencio a PNG en navegadores sin codificador WebP, lo que rompería la promesa de tamaño — JPEG está en todas partes, así que es el contrato fiable aquí.

Preguntas frecuentes

¿Es compresión con o sin pérdidas?

Con pérdidas — y a propósito. Alcanzar un objetivo de kilobytes como 200 KB desde un JPEG típico de cámara (3–8 MB) es imposible sin pérdidas, así que la herramienta ajusta las tablas de cuantización JPEG vía el parámetro de calidad y, si hace falta, descarta píxeles reduciendo el tamaño. Tu archivo original nunca se toca; cada intento es una codificación nueva desde el canvas.

¿Puedo comprimir una carpeta entera?

No — una imagen por vez, deliberadamente. Un objetivo de tamaño se juzga archivo por archivo, y la calidad se comporta distinto en un gráfico plano que en un paisaje recargado, así que el proceso en serie te mantiene honesto sobre cada resultado. Para trabajo en lote sin objetivo de tamaño, el compresor de imágenes normal de este sitio sí admite lotes.

¿Por qué 200 KB? Ese número se repite.

Los portales de pasaportes y visas y los formularios de postulación suelen limitar la subida a unos 100–300 KB, y 200 KB es el punto medio frecuente que mantiene caras nítidas a 600–900 px de ancho. El valor por defecto responde a ese caso, pero sirve cualquier objetivo positivo: 20 KB para avatares, 500 KB para pruebas de imprenta. Esos portales cambian sus reglas a menudo, así que revisa los requisitos de cada sitio.

¿El resultado tendrá exactamente el tamaño pedido?

Estará en él o por debajo, nunca arriba. La búsqueda halla la mayor calidad que cabe — y como el tamaño del JPEG salta por escalones, el resultado suele quedar algo por debajo. Si queda muy por debajo de lo pedido, tenías una imagen muy plana que comprimía sin esfuerzo.

¿Se sube algo a un servidor?

No. Decodificar, el bucle de codificación y las comprobaciones de tamaño son trabajo puro de la API Canvas en tu pestaña — ninguna petición de red lleva tu imagen. La herramienta sigue funcionando con la red apagada.