mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
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.
3.6 KiB
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 bytesX-Processed-Size- Tamaño del archivo procesado en bytesX-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.