CSS-Sprite-Sheet-Generator
Kostenloser CSS-Sprite-Generator: bis zu 500 Bilder zu einem PNG mit CSS-Klassen für background-position oder einem JSON-Texture-Atlas zusammenfügen.
Bilder
- Sheet-Größe
- Genutzte Fläche
So erstellen Sie ein Sprite-Sheet
- Ziehen Sie Ihre Bilder auf die Ablagefläche oder klicken Sie darauf, um sie auszuwählen. Akzeptiert werden PNG, SVG, WebP, JPG und die anderen Formate, die Ihr Browser lesen kann – bis zu 500 Bilder. Jede Datei erscheint mit ihrer Größe in der Liste Bilder; die Schaltfläche × entfernt ein Bild, Alle Bilder entfernen leert die Liste.
- Wählen Sie eine Anordnung: Raster, Gepackt (kleinstes Sheet), Horizontaler Streifen oder Vertikaler Streifen. Beim Raster legt Spalten (0 = automatisch) die Spaltenzahl fest.
- Stellen Sie den Abstand (px) zwischen den Sprites ein (standardmäßig 2) und haken Sie Zweierpotenz-Größe (256, 512, 1024 …) an, wenn Ihre Engine oder GPU das verlangt.
- Wählen Sie die Datendatei: CSS (background-position-Klassen), JSON (Frame-Map) oder CSS und JSON. Passen Sie Dateiname und CSS-Klassenpräfix an (beide standardmäßig „sprite“).
- Prüfen Sie Vorschau, Sheet-Größe und Genutzte Fläche und klicken Sie dann auf ZIP herunterladen (PNG + Daten) oder Nur PNG herunterladen. Den Erzeugten Code können Sie auch direkt kopieren.
Die Bilder werden in Ihrem Browser dekodiert, nichts wird hochgeladen. Ein SVG ohne eigene Breite und Höhe wird mit 256 px an der längeren Seite gerastert.
Die passende Anordnung wählen
- Raster gibt jedem Bild eine Zelle in der Größe des größten Bildes. Mit automatischer Spaltenzahl ist das Raster ungefähr quadratisch. Einfach und vorhersehbar, ideal, wenn alle Sprites gleich groß sind, etwa bei einem Tileset.
- Gepackt (kleinstes Sheet) nutzt Regal-Packing (Shelf Packing): Die Bilder werden nach Höhe absteigend sortiert und von links nach rechts in Reihen gesetzt. Das Tool probiert viele Sheet-Breiten aus und behält die mit der kleinsten Fläche, unter Berücksichtigung der Rundung auf Zweierpotenzen, wenn diese Option aktiv ist. Am besten für Symbole unterschiedlicher Größe.
- Horizontaler Streifen und Vertikaler Streifen setzen die Bilder in der Reihenfolge des Hinzufügens in eine Zeile oder Spalte. So erwarten viele Animationsplayer ihre Frames.
Das Sheet darf höchstens 16.384 px pro Seite bzw. etwa 16,7 Megapixel groß sein – die Grenze dessen, was Browser zeichnen können.
Das CSS verwenden
Das CSS enthält eine Basisklasse mit dem Sheet als background-image und no-repeat, dann eine Klasse pro Sprite, benannt nach seiner Datei: Aus home.png wird sprite-home. Namen werden kleingeschrieben, Akzente und Umlaute entfernt, andere Zeichen zu Bindestrichen, und Duplikate erhalten -2, -3.
<link rel="stylesheet" href="sprite.css">
<span class="sprite sprite-home"></span>
<span class="sprite sprite-search"></span>
Jede Sprite-Klasse setzt width, height und eine background-position mit negativen Versätzen. Ein Sprite bei x = 40, y = 20 erhält background-position: -40px -20px: Das ganze Sheet wird im Element um 40 px nach links und 20 px nach oben verschoben, sodass nur dieses Sprite in der Box des Elements sichtbar ist. Der Abstand verhindert, dass benachbarte Sprites beim Zoomen der Seite oder beim Filtern einer Textur hineinbluten.
Hochauflösende Bildschirme: Zeichnen Sie Ihre Bilder in doppelter Anzeigegröße, erzeugen Sie das Sheet und ergänzen Sie in der Basisklasse background-size mit der halben Sheet-Größe; halbieren Sie außerdem Breiten, Höhen und Versätze. Das Tool erzeugt das nicht automatisch, es ist eine manuelle Anpassung.
Lohnen sich Sprites mit HTTP/2 noch?
Sprites wurden erfunden, um HTTP-Anfragen zu sparen. Mit dem Multiplexing von HTTP/2 laden viele kleine Dateien fast so schnell wie eine, der Gewinn für Websites ist also deutlich kleiner, und für skalierbare Symbole sind SVG-Icons oder Icon-Fonts oft besser. Für 2D-Spiele und Animationsframes bleiben Sprite-Sheets aber der Standard: Eine Textur bedeutet weniger Texturwechsel auf der GPU und nur eine Datei zum Laden.
Häufige Fragen
Werden meine Bilder hochgeladen?
Nein. Alles wird in Ihrem Browser dekodiert, gepackt und kodiert. Die Bilder verlassen Ihr Gerät nie.
Welche Game-Engines können das JSON lesen?
Das JSON nutzt das Format „JSON hash“ von TexturePacker: ein Objekt frames mit dem Dateinamen als Schlüssel, jeweils mit frame (x, y, w, h), rotated: false, trimmed: false und sourceSize, dazu meta.image und meta.size. Phaser, PixiJS und viele andere Engines laden es direkt.
Bleibt die Transparenz erhalten?
Ja. Das Sheet ist ein PNG, transparente Pixel bleiben also transparent. Das Schachbrettmuster in der Vorschau zeigt nur, wo das Sheet leer ist.
Wozu Größen als Zweierpotenz?
Ältere GPUs und WebGL 1 benötigen Texturen mit Zweierpotenz-Größe für Mipmaps und Wiederholungsmodi, und manche Engines erwarten sie noch. Die Option rundet das Sheet auf, aus 300 × 70 px werden etwa 512 × 128 px.
Werden Sprites beschnitten oder gedreht?
Nein. Jedes Bild wird unverändert mit seinen transparenten Rändern platziert und nie gedreht, sodass die Positionen exakt Ihren Originaldateien entsprechen.
Ähnliche Tools
- Bild teilen und Raster erstellen Bild in ein Kachelraster teilen – für ein Instagram-Raster, ein Panorama oder ein Poster zum Drucken, mit Schnittvorschau und nummerierten Dateien.
- GIF erstellen Ein animiertes GIF aus mehreren Bildern oder einem kurzen Videoclip erstellen. Reihenfolge, Verzögerung, Schleifen, Größe und Farben einstellen. Ohne Upload.
- Collage erstellen Eine Fotocollage aus 2 bis 9 Bildern erstellen, mit Raster- und Mosaik-Layouts, Fotos per Drag & Drop anordnen und als PNG oder JPG speichern.
- Favicon-Generator favicon.ico, PNG-Icons, apple-touch-icon und site.webmanifest aus einem Bild oder Emoji erstellen, mit fertigen HTML-Tags. ZIP-Download, ohne Upload.