Files
SnapOtter/apps/docs/id/tools/image/sprite-sheet.md
T
SnapOtterandGitHub 4963ab3bbd feat(docs-i18n): translate all documentation into 20 languages
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.
2026-07-11 13:52:47 +08:00

2.7 KiB

description, i18n_source_hash, i18n_provenance, i18n_output_hash
description i18n_source_hash i18n_provenance i18n_output_hash
Menggabungkan beberapa gambar menjadi satu grid sprite sheet dengan metadata frame. 1938d7fb100d human f84631451fea

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

POST /api/v1/tools/image/sprite-sheet

Menerima data formulir multipart dengan dua atau lebih file gambar dan field JSON settings.

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

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

{
  "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

  • 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.