--- description: "Наложение изображений слоями с позицией, непрозрачностью и режимами смешивания для композитинга." i18n_source_hash: c5d09eb13fde i18n_provenance: human i18n_output_hash: b64231985371 --- # Композиция изображений {#image-composition} Наложите изображение поверх базового изображения с настраиваемой позицией, непрозрачностью и режимом смешивания. Полезно для композитинга логотипов, графики или объединения нескольких изображений. ## Конечная точка API {#api-endpoint} `POST /api/v1/tools/image/compose` Принимает multipart-данные формы с **двумя** файлами изображений и JSON-полем `settings`. ## Параметры {#parameters} | Параметр | Тип | Обязательный | По умолчанию | Описание | |-----------|------|----------|---------|-------------| | x | number | Нет | `0` | Горизонтальное смещение наложения от верхнего левого угла в пикселях (мин. 0) | | y | number | Нет | `0` | Вертикальное смещение наложения от верхнего левого угла в пикселях (мин. 0) | | opacity | number | Нет | `100` | Процент непрозрачности наложения (от 0 до 100) | | blendMode | string | Нет | `"over"` | Режим смешивания при композитинге | ### Режимы смешивания {#blend-modes} | Значение | Описание | |-------|-------------| | `over` | Обычное наложение (по умолчанию) | | `multiply` | Затемнение путём умножения значений пикселей | | `screen` | Осветление путём инвертирования, умножения и повторного инвертирования | | `overlay` | Комбинирует умножение и осветление на основе яркости базы | | `darken` | Сохраняет более тёмный пиксель из каждого слоя | | `lighten` | Сохраняет более светлый пиксель из каждого слоя | | `hard-light` | Наложение с сильным контрастом | | `soft-light` | Наложение с мягким контрастом | | `difference` | Абсолютная разница между слоями | | `exclusion` | Похоже на разницу, но с меньшим контрастом | ### Поля файлов {#file-fields} | Имя поля | Обязательный | Описание | |------------|----------|-------------| | file | Да | Базовое/фоновое изображение | | overlay | Да | Накладываемое/переднее изображение | ## Пример запроса {#example-request} ```bash curl -X POST http://localhost:1349/api/v1/tools/image/compose \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@background.jpg" \ -F "overlay=@graphic.png" \ -F 'settings={"x": 100, "y": 50, "opacity": 80, "blendMode": "over"}' ``` Использование режима смешивания multiply: ```bash curl -X POST http://localhost:1349/api/v1/tools/image/compose \ -H "Authorization: Bearer si_your-api-key" \ -F "file=@photo.jpg" \ -F "overlay=@texture.jpg" \ -F 'settings={"x": 0, "y": 0, "opacity": 50, "blendMode": "multiply"}' ``` ## Пример ответа {#example-response} ```json { "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/background.jpg", "originalSize": 3200000, "processedSize": 3450000 } ``` ## Примечания {#notes} - Оба изображения проверяются и декодируются (поддерживаются HEIC, RAW, PSD, SVG) перед композитингом. - Наложение размещается по точным пиксельным координатам, заданным `x` и `y`. Оно не масштабируется для подгонки. - Если непрозрачность меньше 100, к наложению применяется альфа-маска перед смешиванием. - Наложение может выходить за границы базового изображения (оно будет обрезано). - Ориентация EXIF автоматически применяется к обоим изображениям перед обработкой. - Размеры вывода соответствуют размерам базового изображения.