mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
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.
|