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.
6.4 KiB
6.4 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| Объединение нескольких изображений в коллажи-сетки с более чем 25 шаблонами, регулируемыми зазорами и углами, а также панорамированием и масштабированием каждой ячейки. | 96f2055717df | human | ae86b19e1663 |
Коллаж / Сетка
Объединяйте несколько изображений в красивые коллажи-сетки с более чем 25 шаблонами. Поддерживаются макеты от 2 до 9 изображений с настраиваемым зазором, радиусом скругления углов, цветом фона и панорамированием/масштабированием каждой ячейки.
Конечная точка API
POST /api/v1/tools/image/collage
Параметры
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
| templateId | string | Да | - | ID макета шаблона (например 2-h-equal, 3-left-large, 4-grid, 9-grid) |
| cells | array | Нет | - | Массив настроек каждой ячейки с imageIndex, panX, panY, zoom, objectFit |
| cells[].imageIndex | integer | Да | - | Индекс изображения для размещения в этой ячейке (начиная с 0) |
| cells[].panX | number | Нет | 0 | Горизонтальное смещение панорамирования (от -100 до 100) |
| cells[].panY | number | Нет | 0 | Вертикальное смещение панорамирования (от -100 до 100) |
| cells[].zoom | number | Нет | 1 | Уровень масштабирования (от 1 до 10) |
| cells[].objectFit | string | Нет | "cover" |
Как изображение заполняет ячейку: cover или contain |
| gap | number | Нет | 8 | Зазор между ячейками в пикселях (от 0 до 500) |
| cornerRadius | number | Нет | 0 | Радиус скругления углов каждой ячейки в пикселях (от 0 до 500) |
| backgroundColor | string | Нет | "#FFFFFF" |
Цвет фона в виде hex или "transparent" |
| aspectRatio | string | Нет | "free" |
Соотношение сторон холста: free, 1:1, 4:3, 3:2, 16:9, 9:16, 4:5 |
| outputFormat | string | Нет | "png" |
Формат вывода: png, jpeg, webp, avif, jxl |
| quality | number | Нет | 90 | Качество вывода (от 1 до 100) |
Доступные шаблоны
| ID шаблона | Изображения | Макет |
|---|---|---|
2-h-equal |
2 | Два равных столбца |
2-v-equal |
2 | Две равные строки |
2-h-left-large |
2 | Слева 2/3, справа 1/3 |
2-h-right-large |
2 | Слева 1/3, справа 2/3 |
3-left-large |
3 | Большое слева, два в стопке справа |
3-right-large |
3 | Два в стопке слева, большое справа |
3-top-large |
3 | Большое сверху, два столбца снизу |
3-h-equal |
3 | Три равных столбца |
3-v-equal |
3 | Три равные строки |
4-grid |
4 | Сетка 2x2 |
4-left-large |
4 | Большое слева, три в стопке справа |
4-top-large |
4 | Большое сверху, три столбца снизу |
4-bottom-large |
4 | Три столбца сверху, большое снизу |
5-top2-bottom3 |
5 | Два сверху, три снизу |
5-top3-bottom2 |
5 | Три сверху, два снизу |
5-left-large |
5 | Большое слева, четыре в стопке справа |
5-center-large |
5 | Большое в центре, четыре по углам |
6-grid-2x3 |
6 | 2 столбца x 3 строки |
6-grid-3x2 |
6 | 3 столбца x 2 строки |
6-top-large |
6 | Большое сверху, пять столбцов снизу |
7-mosaic |
7 | Мозаичный макет |
8-mosaic |
8 | Мозаичный макет |
9-grid |
9 | Сетка 3x3 |
Пример запроса
curl -X POST http://localhost:1349/api/v1/tools/image/collage \
-F "file=@photo1.jpg" \
-F "file=@photo2.jpg" \
-F "file=@photo3.jpg" \
-F "file=@photo4.jpg" \
-F 'settings={"templateId":"4-grid","gap":12,"cornerRadius":8,"backgroundColor":"#F5F5F5","outputFormat":"png","quality":90}'
Пример ответа
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/collage.png",
"originalSize": 2456789,
"processedSize": 1823456
}
Примечания
- Загрузите несколько файлов изображений в multipart-запросе. Изображения назначаются ячейкам шаблона в порядке загрузки.
- Если загружено больше изображений, чем поддерживает шаблон, лишние изображения игнорируются.
- Поддерживаются входные форматы HEIC, RAW, PSD и SVG (декодируются автоматически).
- Базовый размер холста составляет 2400px по самой длинной стороне, масштабируемый в соответствии с выбранным соотношением сторон.
- Когда
aspectRatioимеет значение"free", холст по умолчанию использует 4:3 (2400x1800). - Значения
panX/panYкаждой ячейки сдвигают окно обрезки внутри ячейки. Значение 100 полностью смещает к одному краю, -100 к другому. - Цвет фона
"transparent"сохраняется только при выходных форматахpng,webpилиavif.