Sprite-Extraktor
Drop files here or click (max 12 MB)
Warum diesen Sprite-Extraktor verwenden?
- Automatische Sprite-Erkennung basierend auf Transparenz und konfigurierbaren Schwellenwerten
- Sauberes Zuschneiden mit optionalem Trimmen transparenter Ränder um jeden Sprite
- Steuerung von Abstand, Ausrichtung (zentriert/unten) und optionaler einheitlicher Ausgabegröße
- Erhält Transparenz (Alpha-Kanal) für PNG-Exporte – ideal für Tilemaps und Charaktere
- Visuelle Galerie aller erkannten Sprites zur schnellen Überprüfung vor dem Download
- Clientseitiger ZIP-Export mit JSZip, der Dateinamen und Sprite-Reihenfolge stabil hält
- Scratch-freundlich: Schnelles Umwandeln eines einzelnen Sprite-Sheets in mehrere Kostüme oder Assets
- Perfekt zur Wiederverwendung von Assets über Engines hinweg (Scratch, Godot, Unity 2D, Phaser, etc.)
🛠️ So extrahierst du Sprites aus einem Sprite-Sheet for sprite-extractor
1. Bild einfügen
Ziehe ein Sprite-Sheet oder Bild per Drag & Drop in den Ablagebereich oder klicke zur Dateiauswahl. Für beste Ergebnisse verwende PNG mit transparentem Hintergrund oder hohem Kontrast zwischen Sprites und Hintergrund.
2. Automatische Erkennung starten
Das Tool sendet eine leichtgewichtige Repräsentation deines Bildes an einen Erkennungsendpunkt, der Begrenzungsrahmen für jeden Sprite basierend auf Transparenz und Mindestgröße berechnet. Die Rahmen werden über dein Bild gelegt, sodass du schnell siehst, was exportiert wird.
3. Extraktionsoptionen anpassen
Passe Abstand, transparenten Hintergrund vs. Vollfarbe, Trimmen transparenter Ränder, Ausrichtung (zentriert oder unten) und optionale einheitliche Ausgabebreite/-höhe an. Das Tool baut jede Sprite-Leinwand entsprechend neu auf.
4. Sprites vorschauen
Scrolle durch die Galerie der generierten Sprites. Jede Vorschau wird clientseitig mit einem Offscreen-Canvas erstellt und kann je nach UI-Optionen umbenannt oder verworfen werden.
5. PNGs oder ZIP herunterladen
Exportiere einzelne PNG-Sprites oder lade eine ZIP-Datei mit allen aktuellen Vorschauen herunter. Die ZIP wird clientseitig mit JSZip erstellt, und Dateinamen folgen einem sequenziellen Muster wie <code>sprite_0000.png</code>, <code>sprite_0001.png</code>, usw.
Technische Spezifikationen
Erkennung & Begrenzungsrahmen
Die Erkennungsphase läuft auf einem dedizierten Backend-Endpunkt und liefert saubere Begrenzungsrahmen, die der Client für den Aufbau der finalen Sprites verwendet.
| Aspekt | Verhalten | Hinweise |
|---|---|---|
| Erkennungsendpunkt | POST /api/sprite-extractor/inspect | Akzeptiert eine Data-URL und Erkennungsoptionen, gibt ein Array von Sprite-Boxen zurück. |
| Erkennungseingaben | Toleranz, Alpha-Schwellenwert, Mindestbreite, Mindesthöhe | Passen Sie diese Parameter in der Benutzeroberfläche an, um winziges Rauschen zu ignorieren oder nur bedeutungsvolle Sprites zu erfassen. |
| Box-Form | Achsausgerichtete Rechtecke | Jede <code>SpriteBox</code> enthält <code>x</code>, <code>y</code>, <code>Breite</code>, <code>Höhe</code> in Quellbildkoordinaten. |
| Transparenzbehandlung | Alpha-bewusst | Transparente Pixel beeinflussen Zuschneide-/Trimment-Entscheidungen, können aber in der Ausgabe erhalten bleiben. |
| Fehlerbehandlung | Sanfte Fallbacks | Wenn die Erkennung fehlschlägt, zeigt das Werkzeug einen lesbaren Fehler an und unterbricht nicht die Benutzeroberfläche. |
Zuschneiden, Trimmen & Ausrichtung
Sobald die Boxen bekannt sind, erfolgt das gesamte Sprite-Rendering im Browser mit HTML Canvas.
| Schritt | Implementierung | Details |
|---|---|---|
| Erstes Zuschneiden | drawImage(img, box.x, box.y, w, h, 0, 0, w, h) | Jeder Sprite wird zunächst aus dem Originalbild auf eine temporäre Leinwand zugeschnitten. |
| Transparentes Trimmen | Alpha-Kanal über getImageData scannen | Das Werkzeug scannt Pixel, um die minimale nicht-transparente Begrenzungsbox zu berechnen, wenn Trimmen aktiviert ist. |
| Polsterung | konfigurierbar 0–256 px | Polsterung wird um den getrimmten oder zugeschnittenen Sprite angewendet, um Randartefakte in Engines zu reduzieren. |
| Ausrichtung | zentriert / unten | Sprites können zentriert oder unten ausgerichtet werden (nützlich für Charaktere, die auf einer Grundlinie stehen). |
| Einheitliche Ausgabegröße | optional spriteWidth / spriteHeight | Wenn aktiviert, werden alle Sprites in eine feste Leinwand gerendert, um Animationen zu standardisieren. |
| Hintergrund | transparent oder Volltonfarbe | Entweder volle Transparenz beibehalten oder die Leinwand mit einer gewählten RGBA-Hintergrundfarbe füllen. |
Leistung & Grenzen
Entworfen für interaktive Nutzung im Browser.
| Parameter | Typisches Verhalten | Hinweise |
|---|---|---|
| Maximale Eingabegröße | ~10 MB Bild | Größere Dateien können möglicherweise noch funktionieren, laden/erkennen jedoch langsamer. |
| Sprite-Anzahl | bis zu ~400 Sprites | Sehr hohe Anzahlen sind möglich, aber die Vorschau-Darstellung und ZIP-Erstellung dauern länger. |
| Exportformat | PNG in einer ZIP (Blob) | Die ZIP wird vollständig clientseitig mit JSZip erstellt. |
| Canvas-Operationen | Sprite-spezifisches Zuschneiden und Zeichnen | Basiert auf der 2D-Canvas-API des Browsers; Leistung skaliert mit Auflösung und Anzahl. |
Befehlszeilen-Alternativen
Für massive Sprite-Sheets oder automatisierte Pipelines können Sie CLI-Tools wie ImageMagick mit Skripting kombinieren.
Linux / 🍎 macOS
Einheitliches Raster-Zuschneiden mit ImageMagick
convert spritesheet.png -crop 64x64 +repage sprite_%04d.pngSchneidet ein regelmäßiges 64×64-Raster in einzelne PNG-Dateien.
Alle Sprites zippen
zip sprites.zip sprite_*.pngVerpackt alle generierten Sprites in ein einzelnes Archiv.
Windows (PowerShell + ImageMagick)
Rasterbasiertes Zuschneiden
magick spritesheet.png -crop 64x64 +repage sprite_%%04d.pngWie oben, unter Verwendung der <code>magick</code> CLI unter Windows.
Praktische Anwendungsfälle
2D-Spieleentwicklung
- Extrahiere Charakteranimationsframes aus einem Sprite-Sheet für Godot, Unity 2D, Phaser oder Construct.
- Isoliere UI-Elemente (Schaltflächen, Symbole, Gesundheitsleisten) aus einem Design-Mock-up.
- Zerlege Tilesets in einzelne Kacheln für Level-Editoren.
// Godot-Beispiel: mehrere Frames laden\nvar frames = []\nfor i in range(0, 8):\n frames.append(load(\"res://sprites/hero_walk_\" + str(i).pad_zeroes(2) + \".png\"))Scratch & Schulprojekte
- Verwandle ein einzelnes Sprite-Sheet in mehrere Kostüme für einen Scratch-Charakter.
- Bereite thematische Asset-Pakete (Tiere, Planeten, Symbole) für Programmierworkshops vor.
- Lass Schüler Sprite-Sheets in einem Zeichenprogramm entwerfen und dann für Scratch extrahieren.
// Scratch-artiger Pseudocode für einfache Animation\nwenn grüne Flagge angeklickt\ndauerhaft\n nächstes Kostüm\n warte 0,1 SekundenPixelkunst & Asset-Bibliotheken
- Alte Pixel-Art-Sheets in eine durchsuchbare Bibliothek einzelner Sprites aufteilen.
- Extrahieren Sie nur die benötigten Assets aus großen kommerziellen oder Open-Source-Paketen.
- Normalisieren Sie Abstände und Ausrichtung von Sprites aus verschiedenen Quellen.
❓ Frequently Asked Questions
❓Ist die Sprite-Erkennung vollautomatisch?
📏Verändert der Extractor mein Originalbild?
🎯Kann ich Abstände und Ausrichtung steuern?
🔒Werden meine Bilder auf dem Server gespeichert?
🧊Wird Transparenz in den exportierten Sprites erhalten bleiben?
Pro Tips
Verwenden Sie einen kleinen Abstand (2–4 px) um jeden Sprite, um Randüberlauf beim Skalieren oder Drehen in Ihrer Engine zu verhindern.
Benennen Sie Sprites konsistent (z.B. <code>held_rennen_0001.png</code>, <code>held_rennen_0002.png</code>), um Animationsimporte und Skripting zu vereinfachen.
Beginnen Sie im Unterricht mit sehr einfachen Sprite-Sheets (wenige große Sprites, klarer Hintergrund), damit Schüler sofort Ergebnisse sehen.
Bewahren Sie das exportierte ZIP neben den Quelldateien Ihres Projekts auf, um später Animationen leicht neu generieren oder anpassen zu können.
Additional Resources
Other Tools
- CSS-Verschönerer
- HTML-Verschönerer
- JavaScript-Verschönerer
- PHP-Verschönerer
- Farbauswahl
- Base64-Decoder
- Base64-Encoder
- Csharp-Formatierer
- CSV-Formatierer
- Dockerfile Formatter
- Elm-Formatierer
- ENV-Formatierer
- Go-Formatierer
- GraphQL-Formatierer
- HCL-Formatierer
- INI-Formatierer
- JSON-Formatierer
- LaTeX-Formatierer
- Markdown-Formatierer
- Objective-C-Formatierer
- Php Formatter
- Proto-Formatierer
- Python-Formatierer
- Ruby-Formatierer
- Rust-Formatierer
- Scala-Formatierer
- Shell-Skript-Formatierer
- SQL-Formatierer
- SVG-Formatierer
- Swift-Formatierer
- TOML-Formatierer
- Typescript Formatter
- XML-Formatierer
- YAML-Formatierer
- Yarn-Formatierer
- CSS-Minifizierer
- Html Minifier
- Javascript Minifier
- JSON-Minifizierer
- XML-Minifizierer
- HTTP-Header-Betrachter
- PDF zu Text
- Regex-Tester
- SERP-Rang-Prüfer
- Whois-Abfrage