Sprite Extractor
Drop files here or click (max 12 MB)
Waarom Deze Sprite Extractor Gebruiken?
- Automatische sprite-detectie op basis van transparantie en configureerbare drempels
- Schoon bijsnijden met optioneel trimmen van transparante randen rond elke sprite
- Beheer opvulling, uitlijning (midden/onder) en optionele uniforme uitvoergrootte
- Behoudt transparantie (alfakanaal) voor PNG-export – ideaal voor tilemaps en karakters
- Visuele galerij van alle gedetecteerde sprites voor snelle inspectie voor het downloaden
- Client-side ZIP-export met JSZip, houdt je bestandsnamen en sprite-volgorde stabiel
- Scratch-vriendelijk: snel een enkele sprite sheet omzetten in meerdere kostuums of assets
- Perfect voor hergebruik van assets tussen engines (Scratch, Godot, Unity 2D, Phaser, etc.)
🛠️ Hoe Sprites Uit een Sprite Sheet Te Extraheren for sprite-extractor
1. Laat je afbeelding vallen
Sleep een sprite sheet of afbeelding naar de dropzone, of klik om een bestand te kiezen. Voor de beste resultaten, gebruik PNG met transparante achtergrond of hoog contrast tussen sprites en achtergrond.
2. Voer automatische detectie uit
De tool stuurt een lichtgewicht representatie van je afbeelding naar een detectie-eindpunt, dat begrenzingsvakken voor elke sprite berekent op basis van transparantie en minimale grootte. De vakken worden over je afbeelding gelegd zodat je snel kunt zien wat wordt geëxporteerd.
3. Pas extractie-opties aan
Pas opvulling, transparante achtergrond versus effen kleur, trimmen van transparante randen, uitlijning (midden of onder) en optionele uniforme uitvoerbreedte/hoogte aan. De tool herbouwt elke sprite-canvas dienovereenkomstig.
4. Bekijk sprites in voorbeeld
Blader door de galerij van gegenereerde sprites. Elk voorbeeld wordt client-side gebouwd met een offscreen canvas en kan worden hernoemd of verwijderd afhankelijk van de UI-opties.
5. Download PNG's of een ZIP
Exporteer individuele PNG-sprites of download een enkel ZIP-bestand met alle huidige voorbeelden. De ZIP wordt client-side gebouwd met JSZip, en bestandsnamen volgen een sequentieel patroon zoals <code>sprite_0000.png</code>, <code>sprite_0001.png</code>, etc.
Technische Specificaties
Detectie & Begrenzingsvakken
De detectiefase draait op een toegewezen backend-eindpunt en retourneert schone begrenzingsvakken die de client gebruikt om uiteindelijke sprites te bouwen.
| Aspect | Gedrag | Opmerkingen |
|---|---|---|
| Detectie-eindpunt | POST /api/sprite-extractor/inspect | Accepteert een data-URL en detectieopties, retourneert een array van spriteboxen. |
| Detectie-ingangen | tolerantie, alphaDrempel, minimaleBreedte, minimaleHoogte | Stel deze parameters af in de gebruikersinterface om kleine ruis te negeren of alleen betekenisvolle sprites vast te leggen. |
| Vorm van de box | As-uitgelijnde rechthoeken | Elke <code>SpriteBox</code> bevat <code>x</code>, <code>y</code>, <code>breedte</code>, <code>hoogte</code> in bronafbeeldingscoördinaten. |
| Afhandeling van transparantie | Alpha-bewust | Transparante pixels dragen bij aan bijsnijd-/trimbeslissingen maar kunnen in de uitvoer behouden blijven. |
| Foutafhandeling | Elegante terugvalopties | Als detectie mislukt, toont het hulpmiddel een leesbare fout en verstoort het de gebruikersinterface niet. |
Bijsnijden, Trimmen & Uitlijnen
Zodra de boxen bekend zijn, wordt alle spriteweergave in de browser gedaan met HTML canvas.
| Stap | Implementatie | Details |
|---|---|---|
| Initiële bijsnijding | drawImage(img, box.x, box.y, w, h, 0, 0, w, h) | Elke sprite wordt eerst uit de originele afbeelding bijgesneden op een tijdelijk canvas. |
| Transparante trim | scan alfakanaal via getImageData | Het hulpmiddel scant pixels om de minimale niet-transparante begrenzingsbox te berekenen wanneer trimmen is ingeschakeld. |
| Opvulling | configureerbaar 0–256 px | Opvulling wordt toegepast rond de getrimde of bijgesneden sprite om randartefacten in engines te verminderen. |
| Uitlijning | midden / onder | Sprites kunnen gecentreerd of aan de onderkant worden uitgelijnd (handig voor personages die op een basislijn staan). |
| Uniforme uitvoergrootte | optionele spriteBreedte / spriteHoogte | Wanneer ingeschakeld, worden alle sprites weergegeven in een canvas met vaste grootte om animaties te standaardiseren. |
| Achtergrond | transparant of effen kleur | Houd volledige transparantie of vul het canvas met een gekozen achtergrond-RGBA-kleur. |
Prestaties & Limieten
Ontworpen voor interactief gebruik in de browser.
| Parameter | Typisch Gedrag | Opmerkingen |
|---|---|---|
| Maximale invoergrootte | ~10 MB afbeelding | Grotere bestanden kunnen nog steeds werken, maar laden/detecteren langzamer. |
| Aantal sprites | tot ~400 sprites | Zeer hoge aantallen zijn mogelijk, maar voorvertoning weergeven en ZIP-creatie nemen meer tijd in beslag. |
| Exportformaat | PNG in een ZIP (Blob) | De ZIP wordt volledig aan de clientzijde gegenereerd met JSZip. |
| Canvasbewerkingen | Per-sprite bijsnijden en tekenen | Vertrouwt op de 2D canvas-API van de browser; prestaties schalen met resolutie en aantal. |
Commandoregel Alternatieven
Voor enorme sprite sheets of geautomatiseerde pijplijnen kun je CLI-tools zoals ImageMagick combineren met scripting.
Linux / 🍎 macOS
Uniform raster bijsnijden met ImageMagick
convert spritesheet.png -crop 64x64 +repage sprite_%04d.pngSnijdt een regelmatig 64×64 raster in individuele PNG-bestanden.
Alle sprites in een zip
zip sprites.zip sprite_*.pngVerpakt alle gegenereerde sprites in een enkel archief.
Windows (PowerShell + ImageMagick)
Rastergebaseerd bijsnijden
magick spritesheet.png -crop 64x64 +repage sprite_%%04d.pngHetzelfde als hierboven, gebruikmakend van de <code>magick</code> CLI op Windows.
Praktische Toepassingen
2D Gameontwikkeling
- Extraheer karakteranimatieframes van een sprite sheet voor Godot, Unity 2D, Phaser of Construct.
- Isoleer UI-elementen (knoppen, pictogrammen, gezondheidsbalken) van een ontwerp mock-up.
- Breek tilesets op in individuele tegels voor level editors.
// Godot voorbeeld: laad meerdere frames\nvar frames = []\nfor i in range(0, 8):\n frames.append(load(\"res://sprites/hero_walk_\" + str(i).pad_zeroes(2) + \".png\"))Scratch & Klaslokaalprojecten
- Verander een enkele sprite sheet in meerdere kostuums voor een Scratch-personage.
- Bereid thematische asset-pakketten (dieren, planeten, pictogrammen) voor voor programmeerworkshops.
- Laat leerlingen sprite sheets ontwerpen in een tekenprogramma en ze vervolgens extraheren voor Scratch.
// Scratch-stijl pseudocode voor eenvoudige animatie\nwanneer groene vlag wordt aangeklikt\nvoor altijd\n volgend kostuum\n wacht 0,1 secondenPixelkunst & Assetbibliotheken
- Splits oude pixelkunstbladen op in een doorzoekbare bibliotheek van individuele sprites.
- Haal alleen de benodigde assets uit grote commerciële of open-source pakketten.
- Normaliseer opvulling en uitlijning van sprites uit verschillende bronnen.
❓ Frequently Asked Questions
❓Is sprite-detectie volledig automatisch?
📏Verandert de extractor mijn originele afbeelding?
🎯Kan ik opvulling en uitlijning beheren?
🔒Worden mijn afbeeldingen op de server opgeslagen?
🧊Wordt transparantie behouden in de geëxporteerde sprites?
Pro Tips
Gebruik een kleine hoeveelheid opvulling (2–4 px) rond elke sprite om randuitvloeiing te voorkomen bij schalen of roteren in uw engine.
Geef sprites consistente namen (bijv. <code>held_ren_0001.png</code>, <code>held_ren_0002.png</code>) om animatie-imports en scripting te vereenvoudigen.
Begin in onderwijsomgevingen met zeer eenvoudige spritebladen (weinig grote sprites, duidelijke achtergrond) zodat studenten direct resultaat zien.
Bewaar het geëxporteerde ZIP-bestand naast de bronbestanden van uw project, zodat u later eenvoudig animaties kunt regenereren of aanpassen.
Additional Resources
Other Tools
- CSS Opmaker
- HTML Opmaker
- Javascript Opmaker
- PHP Opmaker
- Kleurkiezer
- Base64 Decoder
- Base64 Encoder
- Csharp Formatter
- Csv Formatter
- Dockerfile Formatter
- Elm Formatter
- ENV Formatter
- Go Formatter
- Graphql Formatter
- Hcl Formatter
- INI Formatter
- JSON Formatter
- Latex Formatter
- Markdown Formatter
- Objectivec Formatter
- Php Formatter
- Proto Formatter
- Python Formatter
- Ruby Formatter
- Rust Formatter
- Scala Formatter
- Shell Script Formatter
- SQL Formatter
- SVG Formatter
- Swift Formatter
- TOML Formatter
- Typescript Formatter
- XML Formatter
- YAML Formatter
- Yarn Formatter
- CSS Verkleiner
- Html Minifier
- Javascript Minifier
- JSON Verkleiner
- XML Verkleiner
- Http Headers Viewer
- PDF Naar Tekst
- Regex Tester
- Serp Rang Checker
- Whois Opzoeken