Files
SnapOtter/apps/docs/es/tools/image/optimize-for-web.md
T
SnapOtterandGitHub 4963ab3bbd feat(docs-i18n): translate all documentation into 20 languages
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
2026-07-11 13:52:47 +08:00

3.6 KiB

description, i18n_source_hash, i18n_provenance, i18n_output_hash
description i18n_source_hash i18n_provenance i18n_output_hash
Optimiza imágenes para la web con conversión de formato, control de calidad, redimensionamiento y eliminación de metadatos. c327bbbce768 human 4b8b70e5a50d

Optimizar para la web

Optimiza imágenes para la entrega web en un solo paso. Combina conversión de formato, ajuste de calidad, redimensionamiento opcional, codificación progresiva y eliminación de metadatos.

Endpoint de la API

POST /api/v1/tools/image/optimize-for-web

Acepta datos de formulario multipart con un archivo de imagen y un campo JSON settings.

También hay disponible un endpoint de vista previa en vivo en POST /api/v1/tools/image/optimize-for-web/preview, que devuelve la imagen procesada directamente como binario (sin crear un espacio de trabajo) para el ajuste de parámetros en tiempo real.

Parámetros

Parámetro Tipo Obligatorio Predeterminado Descripción
format string No "webp" Formato de salida: webp, jpeg, avif, png, jxl
quality number No 80 Calidad de salida (1-100)
maxWidth number No - Ancho máximo en píxeles. La imagen se reduce si es más ancha.
maxHeight number No - Alto máximo en píxeles. La imagen se reduce si es más alta.
progressive boolean No true Habilitar la codificación progresiva/entrelazada
stripMetadata boolean No true Eliminar los metadatos EXIF, GPS, ICC y XMP

Ejemplo de solicitud

curl -X POST http://localhost:1349/api/v1/tools/image/optimize-for-web \
  -H "Authorization: Bearer si_your-api-key" \
  -F "file=@photo.jpg" \
  -F 'settings={"format": "webp", "quality": 75, "maxWidth": 1920}'

Optimizar para AVIF con compresión agresiva:

curl -X POST http://localhost:1349/api/v1/tools/image/optimize-for-web \
  -H "Authorization: Bearer si_your-api-key" \
  -F "file=@photo.jpg" \
  -F 'settings={"format": "avif", "quality": 50, "maxWidth": 1200, "maxHeight": 800}'

Ejemplo de respuesta

{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.webp",
  "originalSize": 4500000,
  "processedSize": 320000
}

Respuesta del endpoint de vista previa

El endpoint de vista previa (/api/v1/tools/image/optimize-for-web/preview) devuelve la imagen binaria directamente con cabeceras informativas:

  • X-Original-Size - Tamaño del archivo original en bytes
  • X-Processed-Size - Tamaño del archivo procesado en bytes
  • X-Output-Filename - Nombre del archivo de salida codificado como URL

Notas

  • Esta herramienta está diseñada como una canalización de optimización todo en uno para recursos web. Se encarga de la conversión de formato, el ajuste de calidad, la limitación de dimensiones máximas y la eliminación de metadatos en una sola pasada.
  • La extensión del nombre del archivo de salida se actualiza para coincidir con el formato elegido.
  • La codificación JXL (JPEG XL) usa un codificador de CLI especializado. La imagen se procesa primero como PNG y luego se codifica a JXL.
  • La codificación progresiva mejora el tiempo de carga percibido en JPEG y PNG al permitir que los navegadores muestren una vista previa de baja calidad antes de que se cargue la imagen completa.
  • El endpoint de vista previa es más ligero (sin creación de espacio de trabajo ni de trabajo) y está pensado para la interfaz de ajuste de parámetros en vivo del frontend.