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.
97 lines
4.1 KiB
Markdown
97 lines
4.1 KiB
Markdown
---
|
|
description: "Converta imagens em data URIs base64 para incorporar em HTML, CSS e outros."
|
|
i18n_source_hash: ba4b8f3b4ece
|
|
i18n_provenance: human
|
|
i18n_output_hash: 9a839ef94b10
|
|
---
|
|
|
|
# Imagem para Base64 {#image-to-base64}
|
|
|
|
Converta uma ou mais imagens em strings codificadas em base64 e data URIs. Suporta conversão de formato opcional, controle de qualidade e redimensionamento. Útil para incorporar imagens diretamente em HTML, CSS, JSON ou modelos de e-mail.
|
|
|
|
## Endpoint da API {#api-endpoint}
|
|
|
|
`POST /api/v1/tools/image/image-to-base64`
|
|
|
|
Aceita dados de formulário multipart com um ou mais arquivos de imagem e um campo JSON `settings` opcional.
|
|
|
|
## Parâmetros {#parameters}
|
|
|
|
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|
|
|-----------|------|----------|---------|-------------|
|
|
| outputFormat | string | Não | `"original"` | Converter antes de codificar: `original`, `jpeg`, `png`, `webp`, `avif`, `jxl` |
|
|
| quality | number | Não | `80` | Qualidade de saída para formatos com perdas (1 a 100) |
|
|
| maxWidth | number | Não | `0` | Largura máxima em pixels (0 = sem redimensionamento, não aumentará) |
|
|
| maxHeight | number | Não | `0` | Altura máxima em pixels (0 = sem redimensionamento, não aumentará) |
|
|
|
|
## Exemplo de Requisição {#example-request}
|
|
|
|
```bash
|
|
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \
|
|
-H "Authorization: Bearer si_your-api-key" \
|
|
-F "file=@icon.png" \
|
|
-F 'settings={"outputFormat": "webp", "quality": 80, "maxWidth": 200}'
|
|
```
|
|
|
|
Vários arquivos:
|
|
|
|
```bash
|
|
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \
|
|
-H "Authorization: Bearer si_your-api-key" \
|
|
-F "file=@icon1.png" \
|
|
-F "file=@icon2.png" \
|
|
-F "file=@icon3.png" \
|
|
-F 'settings={"outputFormat": "original"}'
|
|
```
|
|
|
|
## Exemplo de Resposta {#example-response}
|
|
|
|
```json
|
|
{
|
|
"results": [
|
|
{
|
|
"filename": "icon.png",
|
|
"mimeType": "image/webp",
|
|
"width": 200,
|
|
"height": 200,
|
|
"originalSize": 45000,
|
|
"encodedSize": 28800,
|
|
"overheadPercent": -36.0,
|
|
"base64": "UklGRlYAAABXRUJQ...",
|
|
"dataUri": "data:image/webp;base64,UklGRlYAAABXRUJQ..."
|
|
}
|
|
],
|
|
"errors": []
|
|
}
|
|
```
|
|
|
|
## Campos da Resposta {#response-fields}
|
|
|
|
| Campo | Tipo | Descrição |
|
|
|-------|------|-------------|
|
|
| results | array | Imagens convertidas com sucesso |
|
|
| errors | array | Imagens que falharam ao processar (com nome do arquivo e mensagem de erro) |
|
|
|
|
### Objeto de Resultado {#result-object}
|
|
|
|
| Campo | Tipo | Descrição |
|
|
|-------|------|-------------|
|
|
| filename | string | Nome original do arquivo |
|
|
| mimeType | string | Tipo MIME da saída codificada |
|
|
| width | number | Largura final em pixels (após qualquer redimensionamento) |
|
|
| height | number | Altura final em pixels (após qualquer redimensionamento) |
|
|
| originalSize | number | Tamanho original do arquivo em bytes |
|
|
| encodedSize | number | Tamanho da string base64 em bytes |
|
|
| overheadPercent | number | Diferença percentual de tamanho em relação ao original (positivo = maior, negativo = menor) |
|
|
| base64 | string | Dados brutos da imagem codificados em base64 |
|
|
| dataUri | string | Data URI completo pronto para uso em atributos `src` |
|
|
|
|
## Observações {#notes}
|
|
|
|
- A codificação base64 normalmente aumenta o tamanho em aproximadamente 33% em relação ao arquivo binário. O campo `overheadPercent` mostra a diferença real.
|
|
- Quando `outputFormat` é `"original"`, arquivos HEIC/HEIF são convertidos para JPEG (já que os navegadores não conseguem exibir HEIC em data URIs).
|
|
- As opções `maxWidth` e `maxHeight` redimensionam usando `fit: inside` com `withoutEnlargement`, então imagens menores que as dimensões especificadas não são ampliadas.
|
|
- Vários arquivos podem ser processados em uma única requisição. Cada arquivo é processado de forma independente, e falhas não impedem que os outros arquivos tenham sucesso.
|
|
- Arquivos SVG são repassados como `image/svg+xml` sem recodificação (a menos que uma conversão de formato seja solicitada).
|
|
- Este é um endpoint somente leitura. Ele não produz um arquivo baixável nem um `jobId`. Os dados em base64 são retornados diretamente no corpo da resposta.
|