Ekstraktor Sprite
Drop files here or click (max 12 MB)
Mengapa Menggunakan Ekstraktor Sprite Ini?
- Deteksi sprite otomatis berdasarkan transparansi dan ambang batas yang dapat dikonfigurasi
- Pemotongan bersih dengan opsi pemangkasan batas transparan di sekitar setiap sprite
- Kontrol padding, perataan (tengah/bawah) dan ukuran keluaran seragam opsional
- Mempertahankan transparansi (saluran alfa) untuk ekspor PNG – ideal untuk tilemap dan karakter
- Galeri visual semua sprite yang terdeteksi untuk inspeksi cepat sebelum unduh
- Ekspor ZIP sisi klien menggunakan JSZip, menjaga nama file dan urutan sprite tetap stabil
- Ramah Scratch: cepat mengubah lembar sprite tunggal menjadi banyak kostum atau aset
- Sempurna untuk menggunakan kembali aset di berbagai mesin (Scratch, Godot, Unity 2D, Phaser, dll.)
🛠️ Cara Mengekstrak Sprite dari Lembar Sprite for sprite-extractor
1. Jatuhkan gambar Anda
Seret & lepas lembar sprite atau gambar ke zona jatuh, atau klik untuk memilih file. Untuk hasil terbaik, gunakan PNG dengan latar belakang transparan atau kontras tinggi antara sprite dan latar belakang.
2. Jalankan deteksi otomatis
Alat ini mengirimkan representasi ringan gambar Anda ke titik akhir deteksi, yang menghitung kotak pembatas untuk setiap sprite berdasarkan transparansi dan ukuran minimum. Kotak-kotak ditumpangkan pada gambar Anda sehingga Anda dapat dengan cepat melihat apa yang akan diekspor.
3. Sesuaikan opsi ekstraksi
Sesuaikan padding, latar belakang transparan vs warna solid, pemangkasan tepi transparan, perataan (tengah atau bawah), dan lebar/tinggi keluaran seragam opsional. Alat ini membangun kembali kanvas setiap sprite sesuai.
4. Pratinjau sprite
Gulir melalui galeri sprite yang dihasilkan. Setiap pratinjau dibangun di sisi klien menggunakan kanvas di luar layar dan dapat diganti namanya atau dibuang tergantung opsi UI.
5. Unduh PNG atau ZIP
Ekspor sprite PNG individual atau unduh satu file ZIP yang berisi semua pratinjau saat ini. ZIP dibangun di sisi klien menggunakan JSZip, dan nama file mengikuti pola berurutan seperti <code>sprite_0000.png</code>, <code>sprite_0001.png</code>, dll.
Spesifikasi Teknis
Deteksi & Kotak Pembatas
Fase deteksi berjalan di titik akhir backend khusus dan mengembalikan kotak pembatas bersih yang digunakan klien untuk membangun sprite akhir.
| Aspek | Perilaku | Catatan |
|---|---|---|
| Titik akhir deteksi | POST /api/sprite-extractor/inspect | Menerima URL data dan opsi deteksi, mengembalikan array kotak sprite. |
| Input deteksi | toleransi, ambangAlfa, lebarMin, tinggiMin | Sesuaikan parameter ini di UI untuk mengabaikan noise kecil atau menangkap hanya sprite yang bermakna. |
| Bentuk kotak | Persegi panjang sejajar sumbu | Setiap <code>SpriteBox</code> menyimpan <code>x</code>, <code>y</code>, <code>width</code>, <code>height</code> dalam koordinat gambar sumber. |
| Penanganan transparansi | Sadar alfa | Piksel transparan berkontribusi pada keputusan pemotongan/penyesuaian tetapi dapat dipertahankan dalam output. |
| Penanganan kesalahan | Fallback yang elegan | Jika deteksi gagal, alat menampilkan kesalahan yang mudah dibaca dan tidak merusak UI. |
Pemotongan, Penyesuaian & Penyelarasan
Setelah kotak diketahui, semua rendering sprite dilakukan di browser menggunakan kanvas HTML.
| Langkah | Implementasi | Detail |
|---|---|---|
| Potongan awal | drawImage(img, box.x, box.y, w, h, 0, 0, w, h) | Setiap sprite pertama kali dipotong dari gambar asli ke kanvas sementara. |
| Penyesuaian transparan | pindai saluran alfa via getImageData | Alat memindai piksel untuk menghitung kotak pembatas non-transparan minimal saat penyesuaian diaktifkan. |
| Padding | dapat dikonfigurasi 0–256 px | Padding diterapkan di sekitar sprite yang disesuaikan atau dipotong untuk mengurangi artefak tepi di mesin. |
| Penyelarasan | tengah / bawah | Sprite dapat dipusatkan atau disejajarkan ke bawah (berguna untuk karakter yang berdiri di garis dasar). |
| Ukuran output seragam | opsional lebarSprite / tinggiSprite | Saat diaktifkan, semua sprite dirender ke kanvas berukuran tetap untuk menstandarkan animasi. |
| Latar belakang | transparan atau warna solid | Pertahankan transparansi penuh atau isi kanvas dengan warna RGBA latar belakang yang dipilih. |
Kinerja & Batasan
Dirancang untuk penggunaan interaktif di browser.
| Parameter | Perilaku Khas | Catatan |
|---|---|---|
| Ukuran input maksimum | Gambar ~10 MB | File yang lebih besar mungkin masih berfungsi tetapi akan memuat/mendeteksi lebih lambat. |
| Jumlah sprite | hingga ~400 sprite | Jumlah yang sangat tinggi dimungkinkan, tetapi rendering pratinjau dan pembuatan ZIP akan memakan waktu lebih lama. |
| Format ekspor | PNG dalam ZIP (Blob) | ZIP dihasilkan sepenuhnya di sisi klien menggunakan JSZip. |
| Operasi kanvas | Pemotongan dan penggambaran per sprite | Mengandalkan API kanvas 2D browser; kinerja skala dengan resolusi dan jumlah. |
Alternatif Baris Perintah
Untuk lembar sprite besar atau pipeline otomatis, Anda dapat menggabungkan alat CLI seperti ImageMagick dengan skrip.
Linux / 🍎 macOS
Pemotongan grid seragam dengan ImageMagick
convert spritesheet.png -crop 64x64 +repage sprite_%04d.pngMemotong grid 64×64 reguler menjadi file PNG individual.
Zip semua sprite
zip sprites.zip sprite_*.pngKemas semua sprite yang dihasilkan ke dalam satu arsip.
Windows (PowerShell + ImageMagick)
Pemotongan berbasis grid
magick spritesheet.png -crop 64x64 +repage sprite_%%04d.pngSama seperti di atas, menggunakan CLI <code>magick</code> di Windows.
Kasus Penggunaan Praktis
Pengembangan Game 2D
- Ekstrak frame animasi karakter dari lembar sprite untuk Godot, Unity 2D, Phaser, atau Construct.
- Pisahkan elemen UI (tombol, ikon, bilah kesehatan) dari mock-up desain.
- Pecah tileset menjadi ubin individual untuk editor level.
// Contoh Godot: muat beberapa frame\nvar frames = []\nfor i in range(0, 8):\n frames.append(load(\"res://sprites/hero_walk_\" + str(i).pad_zeroes(2) + \".png\"))Scratch & Proyek Kelas
- Ubah lembar sprite tunggal menjadi beberapa kostum untuk karakter Scratch.
- Siapkan paket aset bertema (hewan, planet, ikon) untuk lokakarya pemrograman.
- Biarkan siswa mendesain lembar sprite di alat gambar lalu ekstrak untuk Scratch.
// Pseudocode gaya Scratch untuk animasi sederhana\nwhen green flag clicked\nforever\n next costume\n wait 0.1 secondsSeni Pixel & Perpustakaan Aset
- Pisahkan lembar seni piksel lama menjadi pustaka sprite individual yang dapat dicari.
- Ekstrak hanya aset yang Anda butuhkan dari paket komersial atau sumber terbuka yang besar.
- Normalisasikan padding dan perataan di seluruh sprite dari berbagai sumber.
❓ Frequently Asked Questions
❓Apakah deteksi sprite sepenuhnya otomatis?
📏Apakah ekstraktor mengubah gambar asli saya?
🎯Bisakah saya mengontrol padding dan perataan?
🔒Apakah gambar saya disimpan di server?
🧊Apakah transparansi akan dipertahankan dalam sprite yang diekspor?
Pro Tips
Gunakan sedikit padding (2–4 px) di sekitar setiap sprite untuk mencegah bleeding tepi saat menskalakan atau memutar di mesin Anda.
Beri nama sprite secara konsisten (misalnya, <code>hero_run_0001.png</code>, <code>hero_run_0002.png</code>) untuk menyederhanakan impor animasi dan penulisan skrip.
Dalam pengaturan kelas, mulailah dengan lembar sprite yang sangat sederhana (sedikit sprite besar, latar belakang jelas) agar siswa melihat hasil langsung.
Simpan ZIP yang diekspor bersama file sumber proyek Anda sehingga Anda dapat dengan mudah menghasilkan ulang atau menyesuaikan animasi nanti.
Additional Resources
Other Tools
- Pemerindah CSS
- Pemerindah HTML
- Pemerindah Javascript
- Pemerindah PHP
- Pemilih Warna
- Dekoder Base64
- Encoder Base64
- Pemformat Csharp
- Pemformat CSV
- Dockerfile Formatter
- Pemformat Elm
- Pemformat ENV
- Pemformat Go
- Pemformat GraphQL
- Pemformat HCL
- Pemformat INI
- Pemformat JSON
- Pemformat Latex
- Pemformat Markdown
- Pemformat ObjectiveC
- Php Formatter
- Pemformat Proto
- Pemformat Python
- Pemformat Ruby
- Pemformat Rust
- Pemformat Scala
- Pemformat Skrip Shell
- Pemformat SQL
- Pemformat SVG
- Pemformat Swift
- Pemformat TOML
- Typescript Formatter
- Pemformat XML
- Pemformat YAML
- Pemformat Yarn
- Pengecil CSS
- Html Minifier
- Javascript Minifier
- Pengecil JSON
- Pengecil XML
- Penampil Header HTTP
- PDF Ke Teks
- Penguji Regex
- Pemeriksa Peringkat SERP
- Pencarian Whois