Files
SnapOtter/apps/docs/ru/tools/image/collage.md
T
SnapOtterandGitHub 4963ab3bbd feat(docs-i18n): translate all documentation into 20 languages
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.
2026-07-11 13:52:47 +08:00

93 lines
6.4 KiB
Markdown

---
description: "Объединение нескольких изображений в коллажи-сетки с более чем 25 шаблонами, регулируемыми зазорами и углами, а также панорамированием и масштабированием каждой ячейки."
i18n_source_hash: 96f2055717df
i18n_provenance: human
i18n_output_hash: ae86b19e1663
---
# Коллаж / Сетка {#collage-grid}
Объединяйте несколько изображений в красивые коллажи-сетки с более чем 25 шаблонами. Поддерживаются макеты от 2 до 9 изображений с настраиваемым зазором, радиусом скругления углов, цветом фона и панорамированием/масштабированием каждой ячейки.
## Конечная точка API {#api-endpoint}
`POST /api/v1/tools/image/collage`
## Параметры {#parameters}
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|-----------|------|----------|---------|-------------|
| 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) |
## Доступные шаблоны {#available-templates}
| 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 |
## Пример запроса {#example-request}
```bash
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}'
```
## Пример ответа {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/collage.png",
"originalSize": 2456789,
"processedSize": 1823456
}
```
## Примечания {#notes}
- Загрузите несколько файлов изображений в multipart-запросе. Изображения назначаются ячейкам шаблона в порядке загрузки.
- Если загружено больше изображений, чем поддерживает шаблон, лишние изображения игнорируются.
- Поддерживаются входные форматы HEIC, RAW, PSD и SVG (декодируются автоматически).
- Базовый размер холста составляет 2400px по самой длинной стороне, масштабируемый в соответствии с выбранным соотношением сторон.
- Когда `aspectRatio` имеет значение `"free"`, холст по умолчанию использует 4:3 (2400x1800).
- Значения `panX`/`panY` каждой ячейки сдвигают окно обрезки внутри ячейки. Значение 100 полностью смещает к одному краю, -100 к другому.
- Цвет фона `"transparent"` сохраняется только при выходных форматах `png`, `webp` или `avif`.