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.
2.8 KiB
2.8 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| Zmieniaj rozmiar obrazów w pikselach, procentowo lub z trybami dopasowania. | 53866e8266b8 | human | d0de66d1ead7 |
Zmień rozmiar obrazu
Zmieniaj rozmiar obrazów, podając dokładne wymiary w pikselach, procentowy współczynnik skali lub tryb dopasowania kontrolujący, jak obraz dostosowuje się do wymiarów docelowych.
Punkt końcowy API
POST /api/v1/tools/image/resize
Przyjmuje dane formularza multipart z plikiem obrazu i polem JSON settings.
Parametry
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|---|---|---|---|---|
| width | integer | Nie | - | Docelowa szerokość w pikselach (maks. 16383) |
| height | integer | Nie | - | Docelowa wysokość w pikselach (maks. 16383) |
| fit | string | Nie | "contain" |
Jak obraz dopasowuje się do wymiarów: contain, cover, fill, inside, outside |
| withoutEnlargement | boolean | Nie | false |
Zapobiegaj powiększaniu, jeśli obraz jest mniejszy niż cel |
| percentage | number | Nie | - | Skaluj procentowo (np. 50 dla połowy rozmiaru) |
Musi być podany przynajmniej jeden z: width, height lub percentage.
Tryby dopasowania
- contain - Zmień rozmiar tak, aby zmieścić się w wymiarach, zachowując proporcje (może pozostawić puste miejsce)
- cover - Zmień rozmiar tak, aby pokryć wymiary, zachowując proporcje (może kadrować)
- fill - Rozciągnij dokładnie do wymiarów (ignoruje proporcje)
- inside - Jak
contain, ale tylko zmniejsza, nigdy nie powiększa - outside - Jak
cover, ale tylko zmniejsza, nigdy nie powiększa
Przykładowe żądanie
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"}'
Zmiana rozmiaru procentowa:
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}'
Przykładowa odpowiedź
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
"originalSize": 2450000,
"processedSize": 980000
}
Uwagi
- Maksymalny wymiar to 16383 piksele na każdej osi (limit Sharp/libvips).
- Format wyjściowy odpowiada formatowi wejściowemu. Pliki wejściowe HEIC, RAW, PSD i SVG są automatycznie dekodowane przed przetwarzaniem.
- Orientacja EXIF jest automatycznie stosowana przed zmianą rozmiaru.
- Flaga
withoutEnlargementjest przydatna przy przetwarzaniu wsadowym, gdzie niektóre obrazy mogą już być mniejsze niż cel.