mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
65 lines
4.4 KiB
Markdown
65 lines
4.4 KiB
Markdown
---
|
|||
|
|
description: "Изменение размера методом вырезания швов, добавляющее или удаляющее пиксели вдоль путей с низкой значимостью для сохранения ключевого содержимого и лиц."
|
||
|
|
i18n_source_hash: f383b28ab62a
|
||
|
|
i18n_provenance: human
|
||
|
|
i18n_output_hash: 1d1b27052ac0
|
||
|
|
---
|
||
|
|
|
||
|
|
# Изменение размера с учётом содержимого {#content-aware-resize}
|
||
|
|
|
||
|
|
Изменение размера методом вырезания швов, которое интеллектуально удаляет или добавляет пиксели вдоль путей наименьшей визуальной значимости, сохраняя важное содержимое и опционально защищая лица.
|
||
|
|
|
||
|
|
## Конечная точка API {#api-endpoint}
|
||
|
|
|
||
|
|
`POST /api/v1/tools/image/content-aware-resize`
|
||
|
|
|
||
|
|
**Обработка:** Синхронная (возвращает результат напрямую)
|
||
|
|
|
||
|
|
**Пакет модели:** Не требуется для базовой работы. Защита лиц использует пакет `face-detection` (200-300 МБ), если включена.
|
||
|
|
|
||
|
|
## Параметры {#parameters}
|
||
|
|
|
||
|
|
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||
|
|
|-----------|------|----------|---------|-------------|
|
||
|
|
| file | file | Да | - | Файл изображения (multipart) |
|
||
|
|
| width | number | Нет | - | Целевая ширина в пикселях |
|
||
|
|
| height | number | Нет | - | Целевая высота в пикселях |
|
||
|
|
| protectFaces | boolean | Нет | `false` | Обнаруживать и защищать лица от удаления швов |
|
||
|
|
| blurRadius | number | Нет | `4` | Радиус предварительного размытия для расчёта энергии (0-20) |
|
||
|
|
| sobelThreshold | number | Нет | `2` | Порог обнаружения границ Собеля (1-20). Более высокие значения делают алгоритм более агрессивным |
|
||
|
|
| square | boolean | Нет | `false` | Изменить размер до квадрата (использует меньший размер) |
|
||
|
|
|
||
|
|
Должен быть указан хотя бы один из `width`, `height` или `square`.
|
||
|
|
|
||
|
|
## Пример запроса {#example-request}
|
||
|
|
|
||
|
|
```bash
|
||
|
|
curl -X POST http://localhost:1349/api/v1/tools/image/content-aware-resize \
|
||
|
|
-F "file=@landscape.jpg" \
|
||
|
|
-F 'settings={"width":800,"protectFaces":true}'
|
||
|
|
```
|
||
|
|
|
||
|
|
## Ответ (200 OK) {#response-200-ok}
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||
|
|
"downloadUrl": "/api/v1/download/{jobId}/landscape_seam.png",
|
||
|
|
"originalSize": 450000,
|
||
|
|
"processedSize": 380000,
|
||
|
|
"width": 800,
|
||
|
|
"height": 600
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Примечания {#notes}
|
||
|
|
|
||
|
|
- Этот пользовательский маршрут в настоящее время возвращает синхронный ответ 200.
|
||
|
|
- Использует библиотеку вырезания швов `caire` для изменения размера с учётом содержимого.
|
||
|
|
- Только уменьшает размеры (удаляет швы). Не может увеличить изображение сверх его исходного размера.
|
||
|
|
- Опция `protectFaces` использует ИИ-обнаружение лиц, чтобы отметить области лиц как высокоэнергетические, предотвращая прохождение швов через лица.
|
||
|
|
- `blurRadius` управляет сглаживанием перед расчётом карты энергии. Более высокие значения делают карту энергии более однородной, что может помочь с зашумлёнными изображениями.
|
||
|
|
- `sobelThreshold` влияет на то, насколько агрессивно обнаруживаются границы. Меньшие значения сохраняют больше слабых границ.
|
||
|
|
- Вывод всегда в формате PNG.
|
||
|
|
- Поддерживает входные форматы HEIC/HEIF, RAW, TGA, PSD, EXR и HDR через автоматическое декодирование.
|