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.4 KiB
4.4 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| Gabungkan beberapa gambar menjadi kolase grid dengan 25+ template, jarak dan sudut yang dapat disesuaikan, serta pan dan zoom per sel. | cd50a782239d | human | e7c79856f0ca |
Kolase & Grid
Gabungkan beberapa gambar menjadi kolase grid yang indah dengan 25+ template. Mendukung tata letak 2-9 gambar dengan kontrol jarak, radius sudut, warna latar belakang, dan pan/zoom per sel yang dapat disesuaikan.
API Endpoint
POST /api/v1/tools/image/collage
Parameter
| Parameter | Tipe | Wajib | Default | Deskripsi |
|---|---|---|---|---|
| templateId | string | Ya | - | ID tata letak template (mis. 2-h-equal, 3-left-large, 4-grid, 9-grid) |
| cells | array | Tidak | - | Array pengaturan per sel dengan imageIndex, panX, panY, zoom, objectFit |
| cells[].imageIndex | integer | Ya | - | Indeks gambar yang ditempatkan di sel ini (berbasis 0) |
| cells[].panX | number | Tidak | 0 | Offset pan horizontal (-100 hingga 100) |
| cells[].panY | number | Tidak | 0 | Offset pan vertikal (-100 hingga 100) |
| cells[].zoom | number | Tidak | 1 | Level zoom (1 hingga 10) |
| cells[].objectFit | string | Tidak | "cover" |
Cara gambar mengisi sel: cover atau contain |
| gap | number | Tidak | 8 | Jarak antar sel dalam piksel (0 hingga 500) |
| cornerRadius | number | Tidak | 0 | Radius sudut untuk setiap sel dalam piksel (0 hingga 500) |
| backgroundColor | string | Tidak | "#FFFFFF" |
Warna latar belakang sebagai hex atau "transparent" |
| aspectRatio | string | Tidak | "free" |
Rasio aspek kanvas: free, 1:1, 4:3, 3:2, 16:9, 9:16, 4:5 |
| outputFormat | string | Tidak | "png" |
Format output: png, jpeg, webp, avif, jxl |
| quality | number | Tidak | 90 | Kualitas output (1 hingga 100) |
Template yang Tersedia
| ID Template | Gambar | Tata Letak |
|---|---|---|
2-h-equal |
2 | Dua kolom sama besar |
2-v-equal |
2 | Dua baris sama besar |
2-h-left-large |
2 | Kiri 2/3, kanan 1/3 |
2-h-right-large |
2 | Kiri 1/3, kanan 2/3 |
3-left-large |
3 | Besar di kiri, dua bertumpuk di kanan |
3-right-large |
3 | Dua bertumpuk di kiri, besar di kanan |
3-top-large |
3 | Besar di atas, dua kolom di bawah |
3-h-equal |
3 | Tiga kolom sama besar |
3-v-equal |
3 | Tiga baris sama besar |
4-grid |
4 | Grid 2x2 |
4-left-large |
4 | Besar di kiri, tiga bertumpuk di kanan |
4-top-large |
4 | Besar di atas, tiga kolom di bawah |
4-bottom-large |
4 | Tiga kolom di atas, besar di bawah |
5-top2-bottom3 |
5 | Dua di atas, tiga di bawah |
5-top3-bottom2 |
5 | Tiga di atas, dua di bawah |
5-left-large |
5 | Besar di kiri, empat bertumpuk di kanan |
5-center-large |
5 | Besar di tengah, empat di sudut |
6-grid-2x3 |
6 | 2 kolom x 3 baris |
6-grid-3x2 |
6 | 3 kolom x 2 baris |
6-top-large |
6 | Besar di atas, lima kolom di bawah |
7-mosaic |
7 | Tata letak mosaik |
8-mosaic |
8 | Tata letak mosaik |
9-grid |
9 | Grid 3x3 |
Contoh Permintaan
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}'
Contoh Respons
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/collage.png",
"originalSize": 2456789,
"processedSize": 1823456
}
Catatan
- Unggah beberapa file gambar dalam permintaan multipart. Gambar ditempatkan ke sel template sesuai urutan unggahan.
- Jika jumlah gambar yang diunggah lebih banyak dari yang didukung template, gambar tambahan diabaikan.
- Mendukung format input HEIC, RAW, PSD, dan SVG (didekode otomatis).
- Ukuran dasar kanvas adalah 2400px pada sisi terpanjang, diskalakan sesuai rasio aspek yang dipilih.
- Ketika
aspectRatioadalah"free", kanvas secara default menggunakan 4:3 (2400x1800). - Nilai
panX/panYper sel menggeser jendela crop di dalam sel. Nilai 100 menggeser sepenuhnya ke satu tepi, -100 ke tepi lainnya. - Warna latar belakang
"transparent"hanya dipertahankan dengan format outputpng,webp, atauavif.