Files
SnapOtter/apps/docs/ru/tools/image/collage.md
T
SnapOtterandGitHub f858c4cea0 feat: clearer, disambiguated tool names across all surfaces (#520)
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.
2026-07-15 21:55:51 +08:00

93 lines
6.4 KiB
Markdown

---
description: "Объединение нескольких изображений в коллажи-сетки с более чем 25 шаблонами, регулируемыми зазорами и углами, а также панорамированием и масштабированием каждой ячейки."
i18n_source_hash: cd50a782239d
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`.