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.
4.6 KiB
4.6 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| Łącz wiele obrazów w kolaże siatkowe z ponad 25 szablonami, regulowanymi odstępami i narożnikami oraz przesuwaniem i powiększaniem dla każdej komórki. | cd50a782239d | human | 12ed9b5e0135 |
Kolaż i siatka
Łącz wiele obrazów w piękne kolaże siatkowe z ponad 25 szablonami. Obsługuje układy od 2 do 9 obrazów z konfigurowalnym odstępem, promieniem narożnika, kolorem tła oraz przesuwaniem/powiększaniem dla każdej komórki.
Punkt końcowy API
POST /api/v1/tools/image/collage
Parametry
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|---|---|---|---|---|
| templateId | string | Tak | - | Identyfikator układu szablonu (np. 2-h-equal, 3-left-large, 4-grid, 9-grid) |
| cells | array | Nie | - | Tablica ustawień dla poszczególnych komórek z imageIndex, panX, panY, zoom, objectFit |
| cells[].imageIndex | integer | Tak | - | Indeks obrazu umieszczanego w tej komórce (liczony od 0) |
| cells[].panX | number | Nie | 0 | Poziome przesunięcie (od -100 do 100) |
| cells[].panY | number | Nie | 0 | Pionowe przesunięcie (od -100 do 100) |
| cells[].zoom | number | Nie | 1 | Poziom powiększenia (od 1 do 10) |
| cells[].objectFit | string | Nie | "cover" |
Sposób wypełniania komórki obrazem: cover lub contain |
| gap | number | Nie | 8 | Odstęp między komórkami w pikselach (od 0 do 500) |
| cornerRadius | number | Nie | 0 | Promień narożnika każdej komórki w pikselach (od 0 do 500) |
| backgroundColor | string | Nie | "#FFFFFF" |
Kolor tła jako wartość szesnastkowa lub "transparent" |
| aspectRatio | string | Nie | "free" |
Proporcje płótna: free, 1:1, 4:3, 3:2, 16:9, 9:16, 4:5 |
| outputFormat | string | Nie | "png" |
Format wyjściowy: png, jpeg, webp, avif, jxl |
| quality | number | Nie | 90 | Jakość wyjściowa (od 1 do 100) |
Dostępne szablony
| Identyfikator szablonu | Obrazy | Układ |
|---|---|---|
2-h-equal |
2 | Dwie równe kolumny |
2-v-equal |
2 | Dwa równe wiersze |
2-h-left-large |
2 | Lewa 2/3, prawa 1/3 |
2-h-right-large |
2 | Lewa 1/3, prawa 2/3 |
3-left-large |
3 | Duży po lewej, dwa ułożone po prawej |
3-right-large |
3 | Dwa ułożone po lewej, duży po prawej |
3-top-large |
3 | Duży na górze, dwie kolumny na dole |
3-h-equal |
3 | Trzy równe kolumny |
3-v-equal |
3 | Trzy równe wiersze |
4-grid |
4 | Siatka 2x2 |
4-left-large |
4 | Duży po lewej, trzy ułożone po prawej |
4-top-large |
4 | Duży na górze, trzy kolumny na dole |
4-bottom-large |
4 | Trzy kolumny na górze, duży na dole |
5-top2-bottom3 |
5 | Dwa na górze, trzy na dole |
5-top3-bottom2 |
5 | Trzy na górze, dwa na dole |
5-left-large |
5 | Duży po lewej, cztery ułożone po prawej |
5-center-large |
5 | Duży na środku, cztery w narożnikach |
6-grid-2x3 |
6 | 2 kolumny x 3 wiersze |
6-grid-3x2 |
6 | 3 kolumny x 2 wiersze |
6-top-large |
6 | Duży na górze, pięć kolumn na dole |
7-mosaic |
7 | Układ mozaikowy |
8-mosaic |
8 | Układ mozaikowy |
9-grid |
9 | Siatka 3x3 |
Przykładowe żądanie
curl -X POST http://localhost:1349/api/v1/tools/image/collage \
-F "file=@photo1.jpg" \
-F "file=@photo2.jpg" \
-F "file=@photo3.jpg" \
-F "file=@photo4.jpg" \
-F 'settings={"templateId":"4-grid","gap":12,"cornerRadius":8,"backgroundColor":"#F5F5F5","outputFormat":"png","quality":90}'
Przykładowa odpowiedź
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/collage.png",
"originalSize": 2456789,
"processedSize": 1823456
}
Uwagi
- Prześlij wiele plików obrazów w żądaniu multipart. Obrazy są przypisywane do komórek szablonu w kolejności przesyłania.
- Jeśli prześlesz więcej obrazów, niż obsługuje szablon, dodatkowe obrazy są ignorowane.
- Obsługuje formaty wejściowe HEIC, RAW, PSD i SVG (automatycznie dekodowane).
- Bazowy rozmiar płótna wynosi 2400 px po najdłuższym boku, skalowany zgodnie z wybranymi proporcjami.
- Gdy
aspectRatioma wartość"free", płótno domyślnie przyjmuje proporcje 4:3 (2400x1800). - Wartości
panX/panYdla poszczególnych komórek przesuwają okno kadrowania wewnątrz komórki. Wartość 100 przesuwa całkowicie do jednej krawędzi, -100 do przeciwnej. - Kolor tła
"transparent"jest zachowywany tylko w formatach wyjściowychpng,webplubavif.