¿Cómo reduzco un JPG a menos de 100 KB?
La escalera de calidad medida para una foto de 538.6 KB, por qué el control deslizante se detiene en 131 KB y por qué recortar píxeles es la palanca que realmente afecta un presupuesto de bytes.
· Updated
Un formulario de carga dice 100 KB como máximo. Tu foto es de 538.6 KB. El reflejo es agarrar el control deslizante de calidad y arrastrarlo a la izquierda, y para una foto grande ese reflejo no te llevará allí. Tomamos un archivo y ejecutamos toda la escalera: texture.jpg a 3840x2160, 538.6 KB en disco. Incluso con calidad 30 llega a 131 KB, y la imagen está visiblemente dañada para entonces.
El número que realmente controla el tamaño de JPEG es el conteo de píxeles. Baseline JPEG codifica la imagen en bloques de 8x8, así que al reducir ambas dimensiones a la mitad queda un cuarto de los bloques para almacenar. Si solo tienes el control deslizante, te quedarás estancado alrededor de 131 KB en un archivo de este tamaño. Cada cifra a continuación provino de nuestro propio compresor y redimensionador, funcionando en una pestaña del navegador. No hay un paso de carga que esperar.
¿Por qué el control deslizante de calidad no me lleva a 100 KB?
Aquí está la escalera, el mismo archivo fuente cada vez, ejecutado en el compresor de imágenes en modo manual. El modo inteligente elige el valor predeterminado de cada codificador, que es 80 para JPEG y WebP, 63 para AVIF y sin pérdida para PNG.
| Configuración | Salida | Cambio |
|---|---|---|
| Control deslizante 90 | 347.8 KB | -35% |
| Inteligente (control deslizante 80) | 286.1 KB | -47% |
| Control deslizante 60 | 212.4 KB | -61% |
| Control deslizante 30 | 131 KB | -76% |
Sesenta puntos del control deslizante compraron 216.8 KB. El último tramo, de 60 a 30, sacrificó mucho detalle visible por 81.4 KB. Una foto de 3840x2160 tiene 8.3 millones de píxeles para describir, y hay un límite bajo de cuántos bytes describirán eso a ese tamaño. El límite es real.

¿Por qué la calidad 30 no es realmente 30?
Esto confunde a la gente, y es nuestro trabajo explicarlo. Cuando la fuente es un JPEG, nuestro compresor lee las tablas de cuantización de los primeros 64 KB del archivo y estima la calidad a la que se guardó. Tu control deslizante luego escala esa estimación. Una foto guardada a calidad 60, con el control deslizante en 80, codifica a 48. La reescalación detiene que un segundo pase reclame una calidad que los píxeles no pueden entregar, porque re-codificar un archivo de calidad 60 a 90 solo gasta bytes describiendo daños que ya están incorporados. El codificador subyacente es MozJPEG. Una cosa más que vale la pena saber: la compresión elimina cada fragmento de metadatos, EXIF, GPS, perfil ICC y miniatura incrustada. La orientación se conserva.
¿Por qué la estimación junto al control deslizante no coincide con el resultado?
Porque es una curva, no una codificación. El panel imprime ese número antes de que se ejecute cualquier cosa, solo de dos cosas: el tamaño de tu archivo y la posición del control deslizante. Es los bytes originales multiplicados por el control deslizante sobre 100, elevado a la potencia de 1.8. Nunca ve un píxel de tu imagen, y tampoco sabe sobre la reescalación anterior, así que en el ejemplo de calidad 60 imprime una cifra para 80 mientras que el codificador está a punto de usar 48.
En el mismo archivo de prueba de 538.6 KB la brecha es amplia, y cambia de dirección a lo largo del rango. Con el control deslizante en 90, el panel predijo 445.5 KB contra un real de 347.8 KB, 28% alto. Con el control deslizante en 30, predijo 61.7 KB contra un real de 131 KB, 53% bajo. Lee esa segunda nuevamente si apuntas a un límite de 100 KB: la estimación dice que lo superaste por 38 KB en el momento en que el codificador está a punto de fallar por 31. Los KB en la tarjeta de resultado son el único número que vale la pena considerar. En el modo PNG de la paleta no hay estimación en absoluto, y el panel imprime una advertencia en su lugar.
¿Cómo consigo realmente un JPG por debajo de 100 KB?
Recorta píxeles primero, luego comprime. Abre el redimensionador y utiliza los preajustes de porcentaje, que son 25, 50 y 75. El cincuenta por ciento reduce 3840x2160 a 1920x1080, un cuarto de los píxeles. El veinticinco por ciento lo lleva a 960x540, un dieciseisavo. También hay 15 preajustes sociales a dimensiones fijas, desde un cuadrado de Instagram de 1080x1080 hasta un banner de YouTube de 2560x1440, además de un modo de píxeles exactos con modos de ajuste de cubierta, contener y estirar. Ese modo de píxeles exactos es cómo un cuadrado de pasaporte de 600 x 600 se introduce sin aplastar una cara. Si apuntas a 100 KB desde una foto 4K, comienza en 25% y trabaja hacia arriba.
Dos cosas sobre el redimensionador que vale la pena saber primero. La salida PNG se mantiene sin pérdida, y todos los demás formatos se vuelven a codificar a calidad 90 por defecto, así que un JPEG que pasa por ambas herramientas se codifica dos veces. Las fuentes animadas salen como un fotograma fijo. Y cuando la salida del compresor sería mayor que el archivo que le diste, te devuelve tu original sin tocar.
¿WebP o AVIF me llevarían allí más rápido?
| Codificador | Control deslizante 80 | Control deslizante 63 |
|---|---|---|
| JPEG | 286.1 KB | no medido |
| WebP | 290.3 KB | 200.6 KB |
| AVIF | 312.7 KB | 186.9 KB |
Lee esa tabla dos veces. En la misma posición del control deslizante de 80, JPEG produjo el archivo más pequeño y AVIF el más grande, lo que parece al revés hasta que recuerdas la reescalación anterior. El 80 de JPEG se escaló contra la calidad estimada de la fuente, así que no era realmente 80, mientras que WebP y AVIF toman el número literalmente. Redúcelos al valor predeterminado inteligente de AVIF de 63 y los códecs modernos avanzan: 200.6 KB para WebP, 186.9 KB para AVIF. Ambos aún están lejos de 100 KB a 3840x2160, que es el objetivo. AVIF también costó alrededor de 10 a 11 segundos por codificación en esta máquina, mientras que JPEG y WebP regresaron instantáneamente, y el soporte del navegador es más reciente. Nuestro camino de JPG a WebP está bloqueado a 4:2:0 chroma, así que los bordes rojos duros se suavizan un poco.
¿Qué pasa si mi archivo es un PNG con transparencia?
Palanca completamente diferente. Ejecutamos alpha.png, 900x606 y 942.4 KB con un canal alfa real, a través de ambos modos PNG. La opción "Sin compresión" es oxipng en nivel 3, completamente sin pérdida, y devolvió 383.9 KB, una reducción del 59% con cada píxel intacto. La opción "Tamaño de archivo más pequeño" ejecuta libimagequant, que reduce la imagen a una paleta, y devolvió 98.3 KB. Eso es un 90% menos, y supera un presupuesto de 100 KB sin tocar las dimensiones. Las paletas pueden generar gradientes suaves, así que revisa un cielo o una sombra suave antes de enviarlo. La transparencia se conserva en ambos modos. Pide salida JPEG y el canal alfa se pierde, enmascarado en blanco.
¿Puedo recortar para llegar a 100 KB?
En parte. Recortar elimina píxeles, así que elimina bytes. Nuestro recortador toma un archivo a la vez hasta 10 MB y ofrece ocho preajustes de aspecto más una relación W:H personalizada. No hay un campo para escribir un ancho objetivo en píxeles, así que no puedes apuntar a un tamaño de salida exacto, y cada recorte de un formato con pérdida se vuelve a codificar a una calidad codificada de 92. Un GIF regresa como un PNG de un solo fotograma. Para alcanzar un presupuesto de bytes, los preajustes de porcentaje del redimensionador te dan un manejo más directo.
¿Alguna de estas acciones sube mi foto?
No. Esta aplicación no tiene rutas de API ni acciones de servidor, y las únicas solicitudes de red que realiza son búsquedas de mismo origen para sus propios activos y códecs WASM. Tu archivo se decodifica en un lienzo y se codifica nuevamente por WASM en la misma pestaña. La mayoría de las otras herramientas en esta categoría funcionan al revés: tu imagen viaja a su servidor y permanece en su almacenamiento hasta que se activa un temporizador de retención. Esa es la diferencia que nuestra página de privacidad explica. También es por eso que un lote aquí está limitado a 10 archivos y 50 MB, ya que tu propio CPU está haciendo el trabajo. Ese mismo límite es por lo que una carpeta con 300 archivos no es un trabajo del navegador.