mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
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.
3.0 KiB
3.0 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| Обрезка изображений путём указания области с позицией и размерами. | 556f37893553 | human | e8a6b0530f47 |
Обрезка изображения
Обрезайте изображения, задавая прямоугольную область с помощью позиции и размера. Поддерживает как пиксельные, так и процентные единицы.
Конечная точка API
POST /api/v1/tools/image/crop
Принимает multipart-данные формы с файлом изображения и JSON-полем settings.
Параметры
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
| left | number | Да | - | Смещение по X области обрезки (от левого края) |
| top | number | Да | - | Смещение по Y области обрезки (от верхнего края) |
| width | number | Да | - | Ширина области обрезки |
| height | number | Да | - | Высота области обрезки |
| unit | string | Нет | "px" |
Единица для значений: px или percent |
Пример запроса
curl -X POST http://localhost:1349/api/v1/tools/image/crop \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"left": 100, "top": 50, "width": 800, "height": 600}'
Обрезка с использованием процентных значений:
curl -X POST http://localhost:1349/api/v1/tools/image/crop \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"left": 10, "top": 10, "width": 80, "height": 80, "unit": "percent"}'
Пример ответа
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
"originalSize": 2450000,
"processedSize": 1200000
}
Примечания
- Область обрезки должна умещаться в границах изображения. Если область выходит за пределы изображения, запрос завершится ошибкой.
- При использовании единицы
percentзначения представляют проценты от размеров изображения (например,left: 10означает 10% от левого края). - Формат вывода соответствует формату ввода.
- Ориентация EXIF автоматически применяется перед обрезкой, поэтому координаты соответствуют визуально правильной ориентации.