Sprite Sheet Generator
Combine multiple images into a single sprite sheet. Generate CSS for web performance.
Settings
Uploaded Images (0)
Related Tools
About This Tool
Pack individual images into an optimized sprite sheet — one PNG plus CSS coordinates — the classic technique for cutting HTTP requests in games, icons and animations. Drop your frames or icons, choose packing direction and spacing, and get the sheet plus ready-to-paste CSS background positions. Everything is computed locally; packing respects your order (or auto-packs by size) with configurable gutters to prevent bleeding.
How to Use This Tool
- Drop the frames/icons (same format recommended; transparency kept for PNG).
- Choose layout: horizontal strip, vertical strip or grid — games usually want horizontal for animation frames.
- Set the gutter (2-4 px prevents anti-aliased edge bleeding).
- Generate: the sheet previews with a per-sprite coordinate table.
- Download the sheet and copy the generated CSS — each class sets background-position for its sprite.
Advantages & Use Cases
Build a walking-cycle strip from character frames for a canvas game, pack 20 UI icons into one sheet for a fast legacy-style website, or prepare email-safe image strips. Pixel artists pack animation frames at exact 32×32 or 64×64 cell sizes.
Supported Formats & Recommendations
- PNG with alpha for icons and game sprites; JPG only if every cell is a full photo (no transparency).
- Keep all frames the same size for animation strips — the tool pads smaller ones to the largest cell.
- Even gutters matter: without them, neighboring sprites bleed 1 px at scaled rendering.
How We Test This Tool
Validation packs 12 sprites of mixed sizes and verifies every CSS coordinate against pixel-sampled positions in the sheet (zero tolerance), gutter consistency at all four edges of each cell, and alpha preservation for transparent sprites.
Related Tools You May Like
Helpful Resources
Frequently Asked Questions
Sprite sheets or individual files — which is better today?
HTTP/2 made individual files cheap, but sheets still win for animation (single decode, frame-flip without flicker) and for many tiny icons on high-latency connections.
Why do sprites show edges of their neighbors?
Gutter too small. Regenerate with 3-4 px spacing, and ensure background-size in CSS matches the sheet's native size.
Can I get retina (2x) sheets?
Yes — drop 2x-sized sources; the generated CSS includes a background-size rule that halves dimensions for crisp retina rendering.