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.9 KiB
3.9 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| Змінюйте розмір зображень за пікселями, відсотками або з режимами вписування. | 53866e8266b8 | human | bd42371632d5 |
Зміна розміру зображення
Змінюйте розмір зображень, вказуючи точні розміри в пікселях, коефіцієнт масштабу у відсотках або режим вписування, який контролює, як зображення адаптується до цільових розмірів.
Кінцева точка API
POST /api/v1/tools/image/resize
Приймає дані форми multipart із файлом зображення та полем JSON settings.
Параметри
| Параметр | Тип | Обов'язковий | За замовчуванням | Опис |
|---|---|---|---|---|
| width | integer | Ні | - | Цільова ширина в пікселях (максимум 16383) |
| height | integer | Ні | - | Цільова висота в пікселях (максимум 16383) |
| fit | string | Ні | "contain" |
Як зображення вписується в розміри: contain, cover, fill, inside, outside |
| withoutEnlargement | boolean | Ні | false |
Запобігти збільшенню, якщо зображення менше за ціль |
| percentage | number | Ні | - | Масштабувати за відсотком (наприклад, 50 для половинного розміру) |
Потрібно вказати принаймні один з width, height або percentage.
Режими вписування
- contain - Змінити розмір, щоб вписатися в розміри, зберігаючи співвідношення сторін (може залишити порожній простір)
- cover - Змінити розмір, щоб покрити розміри, зберігаючи співвідношення сторін (може обрізати)
- fill - Розтягнути точно до розмірів (ігнорує співвідношення сторін)
- inside - Як
contain, але тільки зменшує, ніколи не збільшує - outside - Як
cover, але тільки зменшує, ніколи не збільшує
Приклад запиту
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"width": 800, "height": 600, "fit": "contain"}'
Зміна розміру за відсотком:
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"percentage": 50}'
Приклад відповіді
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
"originalSize": 2450000,
"processedSize": 980000
}
Примітки
- Максимальний розмір становить 16383 пікселі по будь-якій осі (обмеження Sharp/libvips).
- Вихідний формат збігається з вхідним. Вхідні дані HEIC, RAW, PSD та SVG автоматично декодуються перед обробкою.
- Орієнтація EXIF автоматично застосовується перед зміною розміру.
- Прапорець
withoutEnlargementкорисний для пакетної обробки, де деякі зображення можуть вже бути меншими за ціль.