Sprite-Sheet-Generator

Ausgewählte Datei wird wiederhergestellt...

Lege einen Stapel Bilder ab, und der Generator ordnet sie auf einem gleichmäßigen Raster an und zeichnet direkt im Browser ein einziges PNG-Sprite-Sheet, dazu CSS mit einem background-position-Offset pro Sprite. Alles läuft lokal auf dem Canvas, es wird also nichts auf einen Server hochgeladen. Praktisch für Icon-Sets, Retro-Game-Frames und UI-Zustände, wenn du eine einzige Datei statt vieler einzelner Bilder willst. Du legst die Anzahl der Spalten, die Kachelgröße, den Abstand zwischen den Zellen und den Hintergrund fest (transparent, weiß oder schwarz).

So entsteht das Sprite-Sheet

  1. 1

    Bilder ablegen

    Füge PNG-, JPG- oder WebP-Dateien hinzu. Ordne sie mit den Hoch/Runter-Schaltern neu an oder entferne einzelne Frames; das Sheet wird sofort neu aufgebaut.

  2. 2

    Raster festlegen

    Wähle die Anzahl der Spalten; die Zeilen ergeben sich aus der Bildanzahl. Jedes Bild wird unter Beibehaltung des Seitenverhältnisses in eine quadratische Kachel eingepasst und zentriert.

  3. 3

    Kachelgröße und Abstand einstellen

    Lege die Kachelgröße in Pixeln fest und füge einen Abstand zwischen den Zellen hinzu, damit benachbarte Sprites beim Skalieren nicht ineinander überlaufen.

  4. 4

    PNG herunterladen und CSS kopieren

    Speichere das Sprite-Sheet als einzelne PNG-Datei und kopiere die erzeugten CSS-Klassen, eine `.spr-name`-Regel je Bild mit Breite, Höhe und background-position.

So funktioniert das Layout

Der Generator nutzt ein einziges, vorhersehbares Layout: ein gleichmäßiges Raster. Du legst die Spaltenzahl fest, die Zeilenzahl ist aufrunden(Bilder / Spalten). Jede Zelle hat dieselbe quadratische Größe (die gewählte Kachelgröße), daher wird jedes Bild unter Beibehaltung des Seitenverhältnisses in seine Kachel eingepasst und zentriert. Bilder unterschiedlicher Größe landen alle in gleich großen Zellen, genau das erwarten CSS-Sprites mit background-position.

Steuerung Bereich Wirkung
Spalten 1 bis 16 Sprites pro Zeile; die Zeilen ergeben sich automatisch
Kachelgröße 32 bis 512 px Die quadratische Zelle, in die jedes Bild eingepasst wird
Abstand 0 bis 64 px Transparenter Zwischenraum, der Überlaufen beim Skalieren verhindert
Hintergrund Transparent / Weiß / Schwarz Füllung hinter den Sprites im Ausgabe-PNG

Form des ausgegebenen CSS

Jedes Bild wird zu einer nach der Datei benannten Klasse (.spr-<Dateiname>), auf die Kachelgröße dimensioniert und auf seine Zelle versetzt. Bei vier Spalten, einer Kachelgröße von 128 px und ohne Abstand sieht das Sheet so aus:

.spr-idle  { width: 128px; height: 128px; background: url(spritesheet.png) -0px -0px; }
.spr-walk  { width: 128px; height: 128px; background: url(spritesheet.png) -128px -0px; }
.spr-run   { width: 128px; height: 128px; background: url(spritesheet.png) -256px -0px; }
.spr-jump  { width: 128px; height: 128px; background: url(spritesheet.png) -384px -0px; }
.spr-fall  { width: 128px; height: 128px; background: url(spritesheet.png) -0px -128px; }

Der Offset verschiebt sich in zwei Dimensionen: Sprites füllen jede Zeile von links nach rechts und springen dann in die nächste Zeile. Speichere das PNG als spritesheet.png neben deinem CSS (oder passe url(...) an deinen Pfad an).

Abstand und Überlaufen

Kante an Kante gepackte Sprites können ineinander überlaufen, wenn der Browser das Sheet skaliert (nicht ganzzahlige Pixelverhältnisse, CSS-Transformationen). Füge 2 bis 4 Pixel Abstand zwischen den Zellen hinzu, damit benachbarte Pixel nicht durchsickern.

Hochauflösende Displays (Retina)

Es gibt keinen automatischen 2x-Export, aber du kannst ein schärferes Sheet auf einfache Weise erzeugen: Wähle eine größere Kachelgröße (etwa 256 px statt 128 px), damit jeder Sprite mehr Pixel trägt, und zeige ihn dann in halber CSS-Größe an. So bekommst du scharfe Sprites auf Displays mit hoher Pixeldichte ohne separaten Durchgang.

Sprite-Sheets oder Alternativen

  • Sprite-Sheets: klassische Icon-Sets in CSS, HTML5-Game-Frames und Seiten, die davon profitieren, viele kleine Bilder in einer Datei zu bündeln.
  • SVG-Sprites (symbol): besser für moderne UI-Icons, skalieren sauber, akzeptieren CSS fill, kein Jonglieren mit background-position.
  • Icon-Fonts: begrenzt, aber noch immer für winzige einfarbige Icons in Gebrauch.
  • Einzelne Dateien mit HTTP/2 oder HTTP/3: Multiplexing macht die Anzahl der Requests weniger wichtig als früher.

Häufig gestellte Fragen

Die Bilder bleiben in deinem Browser. Im mehrstufigen Ablauf werden die ausgewählten Dateien und das Layout bis zu 30 Minuten lang im temporären Speicher dieses Browser-Tabs aufbewahrt. Nichts wird an einen Server gesendet oder in die URL geschrieben.

Ja, aber Inline-SVGs oder SVG-<symbol>-Sprites passen meist besser zu Komponenten-Frameworks. CSS-Sprite-Sheets glänzen, wenn viele Bilder gleichzeitig auf statischen Seiten angezeigt werden.

Setze die Spaltenzahl auf deine Frame-Anzahl, damit jeder Frame in einer Zeile liegt, und steuere ihn dann mit CSS animation-timing-function: steps(N) und einer background-position, die Zelle für Zelle springt. Funktioniert gut für kurze Loop-Animationen (Loader, Idle-Zustände).

Jede Zelle im Raster hat dieselbe quadratische Größe (die gewählte Kachelgröße), daher wird jedes Bild in seine Kachel eingepasst und zentriert. Sind deine Sprites bereits identische Quadrate, setze die Kachelgröße passend, dann gehen sie unverändert durch.

Verwandte Tools