mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
Renames 18 ambiguous or hard-to-search tool names so image tools self-qualify like the other modalities ("Compress" becomes "Compress Image"), and cleans up a few awkward names. Propagated across search (constants.ts), display (en.ts + 20 locales), the OpenAPI base spec + 20 locale specs, and the docs tool-page headings in 21 languages. Removes the duplicate "Normalize Audio" summary shared by the video and audio endpoints. Tool ids and routes are unchanged, so no API paths or bookmarks break.
2.9 KiB
2.9 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| Redimensione imagens por pixels, porcentagem ou com modos de ajuste. | 53866e8266b8 | human | c6cbb0a923c7 |
Redimensionar Imagem
Redimensione imagens especificando dimensões exatas em pixels, um fator de escala em porcentagem ou um modo de ajuste que controla como a imagem se adapta às dimensões de destino.
Endpoint da API
POST /api/v1/tools/image/resize
Aceita dados de formulário multipart com um arquivo de imagem e um campo JSON settings.
Parâmetros
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
| width | integer | Não | - | Largura de destino em pixels (máximo 16383) |
| height | integer | Não | - | Altura de destino em pixels (máximo 16383) |
| fit | string | Não | "contain" |
Como a imagem se ajusta às dimensões: contain, cover, fill, inside, outside |
| withoutEnlargement | boolean | Não | false |
Impedir o aumento de escala se a imagem for menor que o destino |
| percentage | number | Não | - | Escalonar por porcentagem (por exemplo, 50 para metade do tamanho) |
Pelo menos um de width, height ou percentage deve ser fornecido.
Modos de Ajuste
- contain - Redimensiona para caber dentro das dimensões, preservando a proporção (pode deixar espaço vazio)
- cover - Redimensiona para cobrir as dimensões, preservando a proporção (pode recortar)
- fill - Estica para corresponder exatamente às dimensões (ignora a proporção)
- inside - Como
contain, mas apenas reduz a escala, nunca a aumenta - outside - Como
cover, mas apenas reduz a escala, nunca a aumenta
Exemplo de Requisição
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"width": 800, "height": 600, "fit": "contain"}'
Redimensionar por porcentagem:
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"percentage": 50}'
Exemplo de Resposta
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
"originalSize": 2450000,
"processedSize": 980000
}
Notas
- A dimensão máxima é de 16383 pixels em qualquer eixo (limite do Sharp/libvips).
- O formato de saída corresponde ao formato de entrada. Entradas HEIC, RAW, PSD e SVG são decodificadas automaticamente antes do processamento.
- A orientação EXIF é aplicada automaticamente antes do redimensionamento.
- O sinalizador
withoutEnlargementé útil para processamento em lote, onde algumas imagens já podem ser menores que o destino.