mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
70 lines
2.7 KiB
Markdown
70 lines
2.7 KiB
Markdown
---
|
|
description: "Menggabungkan beberapa gambar menjadi satu grid sprite sheet dengan metadata frame."
|
|
i18n_source_hash: 1938d7fb100d
|
|
i18n_provenance: human
|
|
i18n_output_hash: f84631451fea
|
|
---
|
|
|
|
# Sprite Sheet {#sprite-sheet}
|
|
|
|
Menggabungkan beberapa gambar menjadi satu grid sprite sheet. Setiap gambar diubah ukurannya agar sesuai dengan dimensi gambar pertama dan ditempatkan ke dalam grid. Mengembalikan gambar sprite sheet beserta metadata koordinat per frame.
|
|
|
|
## API Endpoint {#api-endpoint}
|
|
|
|
`POST /api/v1/tools/image/sprite-sheet`
|
|
|
|
Menerima data formulir multipart dengan dua atau lebih file gambar dan field JSON `settings`.
|
|
|
|
## Parameters {#parameters}
|
|
|
|
| Parameter | Type | Required | Default | Description |
|
|
|-----------|------|----------|---------|-------------|
|
|
| columns | integer | No | `4` | Jumlah kolom dalam grid (1-16) |
|
|
| padding | integer | No | `0` | Padding antar sel dalam piksel (0-64) |
|
|
| background | string | No | `"#ffffff"` | Warna latar belakang hex |
|
|
| format | string | No | `"png"` | Format keluaran: `png`, `webp`, atau `jpeg` |
|
|
| quality | integer | No | `90` | Kualitas keluaran (1-100) |
|
|
|
|
## Example Request {#example-request}
|
|
|
|
```bash
|
|
curl -X POST http://localhost:1349/api/v1/tools/image/sprite-sheet \
|
|
-H "Authorization: Bearer si_your-api-key" \
|
|
-F "file=@frame1.png" \
|
|
-F "file=@frame2.png" \
|
|
-F "file=@frame3.png" \
|
|
-F "file=@frame4.png" \
|
|
-F 'settings={"columns": 2, "padding": 4, "format": "png"}'
|
|
```
|
|
|
|
## Example Response {#example-response}
|
|
|
|
```json
|
|
{
|
|
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
|
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/sprite-sheet.png",
|
|
"originalSize": 120000,
|
|
"processedSize": 95000,
|
|
"frames": [
|
|
{ "index": 0, "left": 0, "top": 0, "width": 128, "height": 128 },
|
|
{ "index": 1, "left": 132, "top": 0, "width": 128, "height": 128 },
|
|
{ "index": 2, "left": 0, "top": 132, "width": 128, "height": 128 },
|
|
{ "index": 3, "left": 132, "top": 132, "width": 128, "height": 128 }
|
|
],
|
|
"cols": 2,
|
|
"rows": 2,
|
|
"cellWidth": 128,
|
|
"cellHeight": 128,
|
|
"canvasWidth": 260,
|
|
"canvasHeight": 260
|
|
}
|
|
```
|
|
|
|
## Notes {#notes}
|
|
|
|
- Menerima 2 hingga 64 gambar. Semua gambar diubah ukurannya agar sesuai dengan dimensi gambar pertama yang diunggah.
|
|
- Array `frames` memberikan koordinat piksel yang tepat dari setiap frame dalam keluaran, cocok untuk definisi sprite CSS atau peta frame game engine.
|
|
- Jumlah baris dihitung secara otomatis dari jumlah gambar dan nilai `columns`.
|
|
- Gunakan parameter `padding` untuk menambahkan jarak antar sel. Warna `background` terlihat di area padding dan sel-sel kosong yang tersisa di bagian akhir.
|
|
- Masukan HEIC, RAW, PSD, dan SVG otomatis didekode sebelum diproses.
|