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

6.4 KiB

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