mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
59 lines
3.9 KiB
Markdown
59 lines
3.9 KiB
Markdown
---
|
|||
|
|
description: "Добавление рамок, отступов, скруглённых углов и падающих теней к изображениям в предсказуемом, управляемом порядке."
|
||
|
|
i18n_source_hash: 8845150736a9
|
||
|
|
i18n_provenance: human
|
||
|
|
i18n_output_hash: ddccf55b02e0
|
||
|
|
---
|
||
|
|
|
||
|
|
# Рамка и обрамление {#border-frame}
|
||
|
|
|
||
|
|
Добавляйте рамки, отступы, скруглённые углы и падающие тени к изображениям. Инструмент применяет эффекты в порядке: отступ, рамка, радиус углов, затем тень.
|
||
|
|
|
||
|
|
## Конечная точка API {#api-endpoint}
|
||
|
|
|
||
|
|
`POST /api/v1/tools/image/border`
|
||
|
|
|
||
|
|
## Параметры {#parameters}
|
||
|
|
|
||
|
|
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||
|
|
|-----------|------|----------|---------|-------------|
|
||
|
|
| borderWidth | number | Нет | 10 | Толщина рамки в пикселях (от 0 до 2000) |
|
||
|
|
| borderColor | string | Нет | `"#000000"` | Цвет рамки в hex (например, `#FF0000`) |
|
||
|
|
| padding | number | Нет | 0 | Внутренний отступ между изображением и рамкой в пикселях (от 0 до 200) |
|
||
|
|
| paddingColor | string | Нет | `"#FFFFFF"` | Цвет заливки отступа в hex |
|
||
|
|
| cornerRadius | number | Нет | 0 | Радиус углов в пикселях (от 0 до 2000) |
|
||
|
|
| shadow | boolean | Нет | `false` | Добавлять ли падающую тень |
|
||
|
|
| shadowBlur | number | Нет | 15 | Радиус размытия тени (от 1 до 200) |
|
||
|
|
| shadowOffsetX | number | Нет | 0 | Горизонтальное смещение тени (от -50 до 50) |
|
||
|
|
| shadowOffsetY | number | Нет | 5 | Вертикальное смещение тени (от -50 до 50) |
|
||
|
|
| shadowColor | string | Нет | `"#000000"` | Цвет тени в hex |
|
||
|
|
| shadowOpacity | number | Нет | 40 | Процент непрозрачности тени (от 0 до 100) |
|
||
|
|
|
||
|
|
## Пример запроса {#example-request}
|
||
|
|
|
||
|
|
```bash
|
||
|
|
curl -X POST http://localhost:1349/api/v1/tools/image/border \
|
||
|
|
-F "file=@photo.jpg" \
|
||
|
|
-F 'settings={"borderWidth":20,"borderColor":"#333333","cornerRadius":16,"shadow":true,"shadowBlur":25,"shadowOpacity":50}'
|
||
|
|
```
|
||
|
|
|
||
|
|
## Пример ответа {#example-response}
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||
|
|
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.png",
|
||
|
|
"originalSize": 456789,
|
||
|
|
"processedSize": 523456
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Примечания {#notes}
|
||
|
|
|
||
|
|
- Использует стандартную фабрику `createToolRoute`. Принимает один файл изображения через multipart-загрузку.
|
||
|
|
- Поддерживает входные форматы HEIC, RAW, PSD и SVG (автоматически декодируются).
|
||
|
|
- Порядок обработки: сначала добавляется отступ, затем оборачивается рамка, затем применяется радиус углов, затем накладывается тень.
|
||
|
|
- Когда включён `cornerRadius` или `shadow`, вывод принудительно устанавливается в PNG (независимо от формата ввода) для сохранения прозрачности. Форматы с поддержкой альфа-канала (PNG, WebP, AVIF) сохраняют свой исходный формат.
|
||
|
|
- Тень учитывает форму: она следует за скруглёнными углами, а не создаёт прямоугольную тень.
|
||
|
|
- Установка `borderWidth` в 0 и использование только `cornerRadius` + `shadow` создаёт эффект скруглённой тени без рамки.
|