mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
97 lines
5.7 KiB
Markdown
97 lines
5.7 KiB
Markdown
---
|
||||
|
|
description: "Конвертация изображений в base64 data URI для встраивания в HTML, CSS и другое."
|
|||
|
|
i18n_source_hash: ba4b8f3b4ece
|
|||
|
|
i18n_provenance: human
|
|||
|
|
i18n_output_hash: c2f8ffaf080a
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Изображение в Base64 {#image-to-base64}
|
|||
|
|
|
|||
|
|
Конвертирует одно или несколько изображений в строки, закодированные в base64, и data URI. Поддерживает необязательную конвертацию формата, управление качеством и изменение размера. Полезно для встраивания изображений напрямую в HTML, CSS, JSON или шаблоны писем.
|
|||
|
|
|
|||
|
|
## Конечная точка API {#api-endpoint}
|
|||
|
|
|
|||
|
|
`POST /api/v1/tools/image/image-to-base64`
|
|||
|
|
|
|||
|
|
Принимает данные формы multipart с одним или несколькими файлами изображений и необязательным полем JSON `settings`.
|
|||
|
|
|
|||
|
|
## Параметры {#parameters}
|
|||
|
|
|
|||
|
|
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
|||
|
|
|-----------|------|----------|---------|-------------|
|
|||
|
|
| outputFormat | string | Нет | `"original"` | Конвертировать перед кодированием: `original`, `jpeg`, `png`, `webp`, `avif`, `jxl` |
|
|||
|
|
| quality | number | Нет | `80` | Качество вывода для форматов с потерями (от 1 до 100) |
|
|||
|
|
| maxWidth | number | Нет | `0` | Максимальная ширина в пикселях (0 = без изменения размера, не увеличивает) |
|
|||
|
|
| maxHeight | number | Нет | `0` | Максимальная высота в пикселях (0 = без изменения размера, не увеличивает) |
|
|||
|
|
|
|||
|
|
## Пример запроса {#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}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Несколько файлов:
|
|||
|
|
|
|||
|
|
```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"}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Пример ответа {#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": []
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Поля ответа {#response-fields}
|
|||
|
|
|
|||
|
|
| Поле | Тип | Описание |
|
|||
|
|
|-------|------|-------------|
|
|||
|
|
| results | array | Успешно сконвертированные изображения |
|
|||
|
|
| errors | array | Изображения, которые не удалось обработать (с именем файла и сообщением об ошибке) |
|
|||
|
|
|
|||
|
|
### Объект result {#result-object}
|
|||
|
|
|
|||
|
|
| Поле | Тип | Описание |
|
|||
|
|
|-------|------|-------------|
|
|||
|
|
| filename | string | Исходное имя файла |
|
|||
|
|
| mimeType | string | MIME-тип закодированного вывода |
|
|||
|
|
| width | number | Итоговая ширина в пикселях (после любого изменения размера) |
|
|||
|
|
| height | number | Итоговая высота в пикселях (после любого изменения размера) |
|
|||
|
|
| originalSize | number | Исходный размер файла в байтах |
|
|||
|
|
| encodedSize | number | Размер строки base64 в байтах |
|
|||
|
|
| overheadPercent | number | Процентная разница размера относительно оригинала (положительная = больше, отрицательная = меньше) |
|
|||
|
|
| base64 | string | Необработанные данные изображения, закодированные в base64 |
|
|||
|
|
| dataUri | string | Полный data URI, готовый к использованию в атрибутах `src` |
|
|||
|
|
|
|||
|
|
## Примечания {#notes}
|
|||
|
|
|
|||
|
|
- Кодирование base64 обычно увеличивает размер примерно на 33% по сравнению с двоичным файлом. Поле `overheadPercent` показывает фактическую разницу.
|
|||
|
|
- Когда `outputFormat` равен `"original"`, файлы HEIC/HEIF конвертируются в JPEG (поскольку браузеры не могут отображать HEIC в data URI).
|
|||
|
|
- Параметры `maxWidth` и `maxHeight` изменяют размер с помощью `fit: inside` с `withoutEnlargement`, поэтому изображения меньше указанных размеров не увеличиваются.
|
|||
|
|
- В одном запросе можно обработать несколько файлов. Каждый файл обрабатывается независимо, и сбои не мешают успешной обработке остальных файлов.
|
|||
|
|
- Файлы SVG передаются как `image/svg+xml` без перекодирования (если не запрошена конвертация формата).
|
|||
|
|
- Это конечная точка только для чтения. Она не создаёт загружаемый файл или `jobId`. Данные base64 возвращаются напрямую в теле ответа.
|