Herramienta del navegador

Compresor de imágenes Base64

Decodifica una imagen Base64 localmente, ajusta dimensiones, calidad o formato y conserva una salida estándar para img src, CSS, JSON y API.

Procesamiento local · Sin subida · Sin cuenta

Pega Base64 sin formato con espacios opcionales o una data:image/...;base64,... completa. No se admiten URL remotas.

Ajustes de compresión

Resultado

Vista original

Elige o pega una imagen.

Vista del resultado

Elige o pega una imagen.

Información original

Información del resultado

Base64 codifica; no comprime imágenes

Base64 estándar representa tres bytes con cuatro caracteres: longitud exacta 4 × ceil(n / 3) y un aumento sostenido cercano al 33,3%. Una Data URL añade además el prefijo MIME.

La herramienta reduce primero los bytes de imagen: decodifica, cambia dimensiones, calidad o formato cuando conviene y vuelve a crear Base64 estándar sin descompresor especial.

Gzip produce otra clase de salida

Aplicar Gzip al Base64 crea datos binarios que deben descomprimirse antes de mostrarlos. Volver a codificarlos no los convierte en una Data URL de imagen normal.

JPEG, PNG y WebP ya están comprimidos. Menos píxeles, calidad con pérdida, metadatos eliminados u otro formato pueden ayudar, pero no garantizan una compresión sin pérdida ni un archivo menor.

Tamaño objetivo sin agrandar el resultado

Para JPEG y WebP se busca la calidad con un límite fijo. Si no basta, se reducen dimensiones en rondas acotadas manteniendo la proporción.

Si el Base64 estándar no tiene menos caracteres, se conservan los bytes originales. Si no se alcanza el objetivo en KB, se entrega el mejor resultado menor y se indica claramente.

Proceso local y límites claros

Todo queda en esta pestaña: sin subida, URL remota, telemetría ni bibliotecas externas. Los límites son 20 MiB decodificados y 16 megapíxeles.

SVG, GIF, ICO y WebP animado se rechazan para no ejecutar contenido ni perder fotogramas. Auto conserva transparencia; JPEG exige confirmar un fondo. Canvas no es un análisis antimalware.

Cuándo evitar Base64

Sirve para recursos pequeños y autocontenidos. Para imágenes grandes convienen Blob URLs, archivos separados o subidas binarias, con caché y transferencia independientes.

Se comparan por separado bytes y caracteres Base64. Quitar el prefijo data: nunca cuenta como compresión.

Errores habituales que explica

  • Caracteres, padding o longitud Base64 no válidos.
  • El MIME declarado no coincide con los magic bytes.
  • La imagen supera 20 MiB, 16 megapíxeles o no se puede decodificar.
  • La entrada es animada, multiframe, SVG o ya no admite una reducción útil.

Comandos equivalentes

Usa el entorno o shell de tu flujo de trabajo. Valida entradas no fiables y evita imprimir binarios directamente en la terminal.

Python

from PIL import Image
from io import BytesIO
import base64
image = Image.open(BytesIO(base64.b64decode(value)))
out = BytesIO(); image.save(out, 'WEBP', quality=82)
result = base64.b64encode(out.getvalue()).decode('ascii')

JavaScript

const blob = new Blob([bytes], { type: mime });
const bitmap = await createImageBitmap(blob);
ctx.drawImage(bitmap, 0, 0, width, height);
const output = await new Promise(r => canvas.toBlob(r, 'image/webp', 0.82));
bitmap.close();

Shell

printf '%s' "$VALUE" | base64 --decode > input.png
magick input.png -resize '1920x1920>' -quality 82 output.webp
base64 --wrap=0 output.webp

Estándares y referencias oficiales

Preguntas sobre compresión de imágenes Base64

¿Se puede comprimir Base64?

Un compresor general puede hacerlo, pero crea otro formato binario. Para mantener Base64 de imagen estándar hay que optimizar los bytes y recodificar.

¿Funciona directamente en img src?

Sí. Raw es Base64 estándar y la Data URL usa data:image/...;base64.

¿Cómo reducirla a 100 KB?

Elige Custom y 100 KB. Se exploran calidad y dimensiones con límites; no todas las imágenes pueden alcanzar el objetivo.

¿Se pierde calidad?

Puede ocurrir. Redimensionar y cambiar calidad JPEG/WebP es con pérdida; PNG puede no hacerse menor.

¿Por qué Base64 aumenta un 33%?

Tres bytes se representan con cuatro caracteres. La fórmula exacta es 4 × ceil(n / 3).

¿Se sube la imagen?

No. Análisis, Canvas, vistas previas, copia y descarga son locales.

¿Gzip antes o después de Base64?

Para transporte, comprime la respuesta HTTP externa cuando corresponda. Gzip no sirve directamente como Data URL sin descomprimir.