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.
4.2 KiB
4.2 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| Соединение изображений бок о бок, стопкой или в сетку с управлением выравниванием, промежутками, границами и режимом масштабирования. | 670c5cc944b1 | human | cd641f80bd64 |
Склейка изображений
Соедините несколько изображений бок о бок, вертикально стопкой или в виде сетки. Поддерживает выравнивание, промежуток, границу, радиус скругления углов и несколько режимов масштабирования.
Конечная точка API
POST /api/v1/tools/image/stitch
Параметры
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
| direction | string | Нет | "horizontal" |
Направление компоновки: horizontal, vertical, grid |
| gridColumns | integer | Нет | 2 | Количество столбцов, когда direction равно grid (от 2 до 100) |
| resizeMode | string | Нет | "fit" |
Как масштабируются изображения: fit, original, stretch, crop |
| alignment | string | Нет | "center" |
Выравнивание по поперечной оси: start, center, end |
| gap | number | Нет | 0 | Промежуток между изображениями в пикселях (от 0 до 1000) |
| border | number | Нет | 0 | Ширина внешней границы в пикселях (от 0 до 500) |
| cornerRadius | number | Нет | 0 | Радиус скругления углов, применяемый к итоговому выводу (от 0 до 500) |
| backgroundColor | string | Нет | "#FFFFFF" |
Цвет фона/границы в шестнадцатеричном формате (например, #FF0000) |
| format | string | Нет | "png" |
Формат вывода: png, jpeg, webp, avif, jxl |
| quality | number | Нет | 90 | Качество вывода (от 1 до 100) |
Пример запроса
curl -X POST http://localhost:1349/api/v1/tools/image/stitch \
-F "file=@image1.png" \
-F "file=@image2.png" \
-F "file=@image3.png" \
-F 'settings={"direction":"horizontal","resizeMode":"fit","gap":10,"backgroundColor":"#FFFFFF","format":"png"}'
Пример ответа
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/stitch.png",
"originalSize": 1234567,
"processedSize": 987654
}
Примечания
- Требуется не менее 2 изображений. Загрузите несколько файлов изображений в multipart-запросе.
- Поддерживает входные форматы HEIC, RAW, PSD и SVG (автоматически декодируются).
- Режимы масштабирования:
fit- Масштабирует изображения под наименьший размер вдоль оси соединения.original- Сохраняет исходные размеры (может дать неровные края).stretch- Принудительно приводит изображения к наименьшему размеру без сохранения соотношения сторон.crop- Обрезает изображения по методу cover под наименьший размер.
- В режиме
gridячейки задаются по медианным размерам всех изображений. cornerRadiusприменяется ко всему итоговому выводу, а не к отдельным изображениям.- Размер холста ограничен конфигурацией сервера
MAX_CANVAS_PIXELSдля предотвращения исчерпания памяти.