Cómo Comprimir Imágenes por Lotes Sin Subir a un Servidor

La mayoría de compresores de imágenes suben tus archivos a servidores remotos. Aquí te explicamos cómo las herramientas del lado del cliente procesan imágenes localmente en tu navegador usando WebAssembly.

Cristian Peña6 min read
PrivacyBatch CompressionWebAssemblyClient-Side

El problema con subir tus imágenes

Cuando usas TinyPNG, ShortPixel, o la mayoría de compresores de imágenes en línea, tus imágenes se suben a sus servidores para procesamiento. Eso significa:

  • Una copia de tu imagen existe en el servidor de alguien más
  • Estás confiando en sus políticas de retención de datos
  • Imágenes sensibles (trabajo de cliente, mockups, fotos personales) están expuestas
  • Dependes de su tiempo de actividad y velocidad
  • Archivos grandes tardan tiempo en subir y descargar

Para una captura de pantalla rápida, esto podría no importar. Pero para un lote de 10 mockups de cliente o fotos de productos propietarios, es una preocupación real.

Compresión del lado del cliente: cómo funciona

La compresión de imágenes del lado del cliente corre enteramente en tu navegador. Tus imágenes nunca abandonan tu dispositivo. Aquí está lo que sucede bajo el capó:

  1. Seleccionas archivos de tu computadora
  2. El navegador los lee en memoria usando la API de Archivos
  3. Los codecs WebAssembly (WASM) decodifican, procesan y recodifican imágenes
  4. Los resultados comprimidos se crean como blobs descargables
  5. Descargas los resultados

Para más información sobre la API de Archivos, consulta la documentación de MDN.

Sin solicitudes de red. Sin subidas. Sin servidores involucrados en el procesamiento de imágenes.

¿Qué es WebAssembly?

WebAssembly es un formato binario que permite a los navegadores ejecutar código a velocidad casi nativa. Los codecs de compresión de imágenes (como MozJPEG, libpng y libwebp) están escritos en C/C++ y compilados a WASM, así que corren en el navegador con el mismo rendimiento que las aplicaciones de escritorio.

Para más información sobre WebAssembly y capacidades de navegador, consulta la documentación de WebAssembly de MDN.

Así es como funciona Pikkx — usa jSquash, un conjunto de codecs de imagen compilados a WASM, para comprimir, redimensionar y convertir imágenes completamente en tu pestaña de navegador.

Puedes verificar que una herramienta es verdaderamente del lado del cliente: desconéctate de internet después de que la página cargue y trata de comprimir una imagen. Si todavía funciona, ningún dato está abandonando tu dispositivo.

Comparación del lado del cliente vs del lado del servidor

Herramientas que procesan imágenes localmente

Pikkx (web, gratis)

Comprimir por lotes hasta 10 imágenes a la vez. Soporta JPEG, PNG y WebP con conversión de formato y redimensionamiento. Construido con codecs WebAssembly de jSquash.

Fortalezas: Procesamiento por lotes verdadero, conversión de formato, redimensionamiento en un paso, UI limpia. Limitación: 10 imágenes por lote (nivel gratuito).

Squoosh (web, gratis)

El compresor de código abierto de Google. Ofrece control granular sobre la configuración de codec con una vista de comparación lado a lado.

Fortalezas: Control máximo sobre parámetros de compresión, soporte AVIF. Limitación: Una imagen a la vez — sin procesamiento por lotes en la versión web.

ImageOptim (macOS, gratis)

Aplicación de escritorio que corre localmente. Usa múltiples motores de compresión (MozJPEG, pngquant, Gifsicle) y elige el mejor resultado.

Fortalezas: Lotes ilimitados, sin pérdida por defecto, corre completamente sin conexión. Limitación: Solo macOS, sin conversión de formato, sin soporte WebP.

Línea de comandos (gratis)

Para desarrolladores cómodos con la terminal:

# Comprimir por lotes a WebP con cwebp
for f in *.jpg *.png; do
  cwebp "$f" -o "${f%.*}.webp" -q 80
done

# Redimensionar por lotes y comprimir con sharp-cli
npx sharp-cli resize 1200 --withoutEnlargement -i *.jpg -o output/ -f webp

Fortalezas: Ilimitado, scripteable, se integra en pipelines de construcción. Limitación: Requiere instalación y comodidad con la línea de comandos.

Mejores prácticas para compresión por lotes

1. Redimensiona antes de comprimir

Siempre redimensiona a tus dimensiones objetivo primero. Comprimir una imagen de 4000px y luego mostrarla a 800px desperdicia ancho de banda. Redimensiona a 800px, luego comprime — el archivo será dramáticamente más pequeño.

2. Usa configuraciones consistentes

Para un lote de imágenes yendo al mismo lugar (fotos de productos, miniaturas de blog), usa la misma configuración de formato y calidad. Esto asegura consistencia visual a través de tu sitio.

3. Mantén tus originales

Nunca sobrescribas tus archivos fuente. Siempre comprime en una carpeta de salida separada. Podrías necesitar recomprimir más tarde en diferentes configuraciones, y no puedes descomprimir una imagen con pérdida.

4. Prueba con una imagen primero

Antes del procesamiento por lotes de 50 imágenes, comprime una y verifica el resultado. Verifica que la calidad sea aceptable, las dimensiones sean correctas, y el tamaño de archivo cumpla tu objetivo.

Cuándo tiene sentido el procesamiento del lado del servidor

Las herramientas del lado del cliente no siempre son la mejor elección:

Lotes muy grandes (100+ imágenes): La memoria del navegador puede volverse una restricción. Un servidor o herramienta CLI maneja esto mejor.

Pipelines automatizados: Si las imágenes se suben por usuarios o se generan programáticamente, necesitas procesamiento del lado del servidor integrado en tu pipeline.

Máximo ratio de compresión: Las herramientas del lado del servidor a veces exprimen unos pocos porcentajes extra porque pueden ejecutar algoritmos más lentos e intensivos sin preocuparse por la capacidad de respuesta del navegador.

Para todo lo demás — especialmente cuando importa la privacidad, o estás procesando un lote razonable de imágenes para un sitio web — las herramientas del lado del cliente son la elección pragmática.

Comprime imágenes por lotes privadamente

Procesa hasta 10 imágenes a la vez — comprime, redimensiona y convierte en tu navegador. Nada se sube.

Get Started