Ekstraktor Sprite'ów
Drop files here or click (max 12 MB)
Dlaczego warto używać tego Ekstraktora Sprite'ów?
- Automatyczne wykrywanie sprite'ów na podstawie przezroczystości i konfigurowalnych progów
- Czyste przycinanie z opcjonalnym usuwaniem przezroczystych obramowań wokół każdego sprite'a
- Kontrola dopełnienia, wyrównania (środek/dół) i opcjonalny jednolity rozmiar wyjściowy
- Zachowuje przezroczystość (kanał alfa) dla eksportów PNG – idealne dla map kafelkowych i postaci
- Wizualna galeria wszystkich wykrytych sprite'ów do szybkiego przeglądu przed pobraniem
- Eksport ZIP po stronie klienta przy użyciu JSZip, zachowując stabilność nazw plików i kolejności sprite'ów
- Przyjazne dla Scratcha: szybko przekształć pojedynczy arkusz sprite'ów w wiele kostiumów lub zasobów
- Idealne do ponownego wykorzystania zasobów między silnikami (Scratch, Godot, Unity 2D, Phaser itp.)
🛠️ Jak wyodrębnić sprite'y z arkusza sprite'ów for sprite-extractor
1. Prześlij swój obraz
Przeciągnij i upuść arkusz sprite'ów lub obraz w strefę przesyłania, lub kliknij, aby wybrać plik. Dla najlepszych rezultatów użyj PNG z przezroczystym tłem lub wysokim kontrastem między sprite'ami a tłem.
2. Uruchom automatyczne wykrywanie
Narzędzie wysyła uproszczoną reprezentację obrazu do punktu końcowego wykrywania, który oblicza prostokąty ograniczające dla każdego sprite'a na podstawie przezroczystości i minimalnego rozmiaru. Prostokąty są nałożone na obraz, abyś mógł szybko zobaczyć, co zostanie wyeksportowane.
3. Dostosuj opcje ekstrakcji
Dostosuj dopełnienie, przezroczyste tło vs. jednolity kolor, przycinanie przezroczystych krawędzi, wyrównanie (środek lub dół) oraz opcjonalną jednolitą szerokość/wysokość wyjściową. Narzędzie odpowiednio przebudowuje każdy sprite.
4. Podgląd sprite'ów
Przeglądaj galerię wygenerowanych sprite'ów. Każdy podgląd jest tworzony po stronie klienta przy użyciu niewidocznego płótna i może być zmieniany lub usuwany w zależności od opcji interfejsu.
5. Pobierz PNG lub ZIP
Eksportuj pojedyncze sprite'y PNG lub pobierz pojedynczy plik ZIP zawierający wszystkie aktualne podglądy. ZIP jest tworzony po stronie klienta przy użyciu JSZip, a nazwy plików mają sekwencyjny wzór, np. <code>sprite_0000.png</code>, <code>sprite_0001.png</code> itd.
Specyfikacje techniczne
Wykrywanie i prostokąty ograniczające
Faza wykrywania działa na dedykowanym punkcie końcowym backendu i zwraca czyste prostokąty ograniczające, których klient używa do budowy finalnych sprite'ów.
| Aspekt | Zachowanie | Uwagi |
|---|---|---|
| Punkt końcowy wykrywania | POST /api/sprite-extractor/inspect | Akceptuje adres URL danych i opcje wykrywania, zwraca tablicę pól sprite'ów. |
| Wejścia wykrywania | tolerancja, próg alfa, minimalna szerokość, minimalna wysokość | Dostosuj te parametry w interfejsie, aby ignorować drobne szumy lub przechwytywać tylko znaczące sprite'y. |
| Kształt pudełka | Prostokąty wyrównane do osi | Każdy <code>SpriteBox</code> zawiera <code>x</code>, <code>y</code>, <code>szerokość</code>, <code>wysokość</code> w współrzędnych obrazu źródłowego. |
| Obsługa przezroczystości | Uwzględnia kanał alfa | Przezroczyste piksele wpływają na decyzje przycinania, ale mogą być zachowane w wyniku. |
| Obsługa błędów | Łagodne zabezpieczenia | Jeśli wykrywanie się nie powiedzie, narzędzie wyświetla czytelny błąd i nie psuje interfejsu. |
Przycinanie, Obcinanie & Wyrównanie
Po ustaleniu pól, całe renderowanie sprite'ów odbywa się w przeglądarce przy użyciu kanwy HTML.
| Krok | Implementacja | Szczegóły |
|---|---|---|
| Początkowe przycięcie | drawImage(img, box.x, box.y, w, h, 0, 0, w, h) | Każdy sprite jest najpierw przycinany z oryginalnego obrazu na tymczasową kanwę. |
| Obcięcie przezroczystości | skanuj kanał alfa przez getImageData | Narzędzie skanuje piksele, aby obliczyć minimalne nieprzezroczyste pole ograniczające, gdy obcinanie jest włączone. |
| Dopełnienie | konfigurowalne 0–256 px | Dopełnienie jest stosowane wokół obciętego lub przyciętego sprite'a, aby zmniejszyć artefakty krawędzi w silnikach. |
| Wyrównanie | środek / dół | Sprite'y mogą być wyśrodkowane lub wyrównane do dołu (przydatne dla postaci stojących na linii bazowej). |
| Jednolity rozmiar wyjścia | opcjonalna spriteWidth / spriteHeight | Po włączeniu, wszystkie sprite'y są renderowane na kanwie o stałym rozmiarze w celu ujednolicenia animacji. |
| Tło | przezroczyste lub jednolity kolor | Zachowaj pełną przezroczystość lub wypełnij kanwę wybranym kolorem RGBA. |
Wydajność & Ograniczenia
Zaprojektowany do interaktywnego użytku w przeglądarce.
| Parametr | Typowe Zachowanie | Uwagi |
|---|---|---|
| Maksymalny rozmiar wejściowy | ~10 MB obrazu | Większe pliki mogą nadal działać, ale będą ładować/wykrywać się wolniej. |
| Liczba sprite'ów | do ~400 sprite'ów | Bardzo duże liczby są możliwe, ale renderowanie podglądu i tworzenie ZIP-a zajmie dłużej. |
| Format eksportu | PNG wewnątrz ZIP-a (Blob) | ZIP jest generowany całkowicie po stronie klienta przy użyciu JSZip. |
| Operacje na płótnie | Przycinanie i rysowanie dla każdego sprite'a | Opiera się na API 2D canvas przeglądarki; wydajność zależy od rozdzielczości i liczby. |
Alternatywy wiersza poleceń
Dla ogromnych arkuszy sprite'ów lub zautomatyzowanych potoków, możesz połączyć narzędzia CLI, takie jak ImageMagick, ze skryptowaniem.
Linux / 🍎 macOS
Jednolite przycinanie siatki z ImageMagick
convert spritesheet.png -crop 64x64 +repage sprite_%04d.pngTnie regularną siatkę 64×64 na pojedyncze pliki PNG.
Spakuj wszystkie sprite'y
zip sprites.zip sprite_*.pngPakuje wszystkie wygenerowane sprite'y do jednego archiwum.
Windows (PowerShell + ImageMagick)
Przycinanie oparte na siatce
magick spritesheet.png -crop 64x64 +repage sprite_%%04d.pngTak samo jak powyżej, używając CLI <code>magick</code> w Windows.
Praktyczne zastosowania
Tworzenie gier 2D
- Wyodrębnij klatki animacji postaci z arkusza sprite'ów dla Godot, Unity 2D, Phaser lub Construct.
- Wyizoluj elementy interfejsu (przyciski, ikony, paski zdrowia) z projektu graficznego.
- Podziel zestawy kafelków na pojedyncze kafelki dla edytorów poziomów.
// Przykład w Godot: wczytaj wiele klatek\nvar frames = []\nfor i in range(0, 8):\n frames.append(load(\"res://sprites/hero_walk_\" + str(i).pad_zeroes(2) + \".png\"))Scratch i projekty klasowe
- Przekształć pojedynczy arkusz sprite'ów w wiele kostiumów dla postaci w Scratchu.
- Przygotuj tematyczne pakiety zasobów (zwierzęta, planety, ikony) dla warsztatów programowania.
- Pozwól uczniom projektować arkusze sprite'ów w narzędziu do rysowania, a następnie wyodrębniaj je do Scratcha.
// Pseudokod w stylu Scratcha dla prostej animacji\nwhen green flag clicked\nforever\n next costume\n wait 0.1 secondsGrafika pikselowa i biblioteki zasobów
- Podziel stare arkusze pikselowej grafiki na przeszukiwalną bibliotekę pojedynczych sprite'ów.
- Wyodrębnij tylko potrzebne zasoby z dużych komercyjnych lub otwartych pakietów.
- Ujednolic wypełnienie i wyrównanie sprite'ów z różnych źródeł.
❓ Frequently Asked Questions
❓Czy wykrywanie sprite'ów jest w pełni automatyczne?
📏Czy ekstraktor zmienia mój oryginalny obraz?
🎯Czy mogę kontrolować wypełnienie i wyrównanie?
🔒Czy moje obrazy są przechowywane na serwerze?
🧊Czy przezroczystość zostanie zachowana w eksportowanych sprite'ach?
Pro Tips
Użyj niewielkiego wypełnienia (2–4 px) wokół każdego sprite'a, aby zapobiec prześwitywaniu krawędzi podczas skalowania lub obracania w twoim silniku.
Nazywaj sprite'y konsekwentnie (np. <code>hero_run_0001.png</code>, <code>hero_run_0002.png</code>), aby uprościć import animacji i skrypty.
W warunkach szkolnych zacznij od bardzo prostych arkuszy sprite'ów (kilka dużych sprite'ów, czyste tło), aby uczniowie od razu zobaczyli efekty.
Przechowuj eksportowany ZIP razem z plikami źródłowymi projektu, abyś mógł łatwo ponownie generować lub dostosowywać animacje później.
Additional Resources
Other Tools
- Upiększacz CSS
- Upiększacz HTML
- Upiększacz JavaScript
- Upiększacz PHP
- Wybór koloru
- Dekoder Base64
- Koder Base64
- Formatowanie C#
- Formatowanie CSV
- Dockerfile Formatter
- Formatowanie Elm
- Formatowanie ENV
- Formatowanie Go
- Formatowanie GraphQL
- Formatowanie HCL
- Formatowanie INI
- Formatowanie JSON
- Formatowanie LaTeX
- Formatowanie Markdown
- Formatowanie Objective-C
- Php Formatter
- Formatowanie Proto
- Formatowanie Python
- Formatowanie Ruby
- Formatowanie Rust
- Formatowanie Scala
- Formatowanie skryptów powłoki
- Formatowanie SQL
- Formatowanie SVG
- Formatowanie Swift
- Formatowanie TOML
- Typescript Formatter
- Formatowanie XML
- Formatowanie YAML
- Formatowanie Yarn
- Minifikator CSS
- Html Minifier
- Javascript Minifier
- Minifikator JSON
- Minifikator XML
- Przegląd nagłówków HTTP
- PDF do tekstu
- Tester wyrażeń regularnych
- Sprawdzanie pozycji w SERP
- Wyszukiwanie Whois