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

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.