Sprite Sheet Maker

Drop frames, arrange them in a grid and export a sheet PNG plus a JSON atlas.

Ad placeholder (leaderboard)
Enjoying the tools? Go Pro for £4.99 (one-time) and remove all ads — forever, on this device. Remove ads — £4.99

A browser-based sprite sheet maker that turns a pile of loose image frames into one combined sheet PNG plus a matching coordinate atlas. Drop your frames, choose how they pack, reorder them by dragging, and export everything a game engine or a website needs to slice the sheet back apart. It is built for game developers assembling animation strips, web developers bundling icon sets into a single CSS sprite, and pixel artists who want a clean, reproducible export without installing desktop software.

How it works

Every image you drop is decoded into an in-memory bitmap — none of it ever leaves your browser. The tool then runs a layout pass over your frames. In uniform grid mode it measures the largest frame, makes every cell that size, and centres each image inside its cell so animation frames line up perfectly across rows and columns. In tight pack mode a shelf-packing algorithm walks the frames left to right, starting a new row when the current one fills up, nesting frames of different heights to minimise wasted space.

Once the layout is computed, all frames are composited onto a single HTML canvas with nearest-neighbour scaling so pixel art stays crisp. The same layout data drives the atlas: each frame’s name, x, y, width and height are written into your chosen format. You get a live readout of the final sheet size and the packing efficiency — the share of the sheet occupied by actual pixels rather than padding — so you can tune columns and spacing.

You control the column count, inter-frame padding, a transparent or solid background, and an optional power-of-two sheet size for GPUs that require it. Reordering is as simple as dragging the frame thumbnails; renaming a frame updates the key used in the exported atlas.

Example

Suppose you have eight 32×32 walk-cycle frames named walk_0 through walk_7. Drop them in, choose Uniform grid, set columns to 4 and padding to 2. The tool builds a 136×68 sheet (4 columns and 2 rows of 32px cells plus 2px gutters) and a JSON atlas whose walk_0 entry reads roughly frame: x 2, y 2, w 32, h 32. Load the PNG and JSON into Phaser with this.load.atlas('hero', 'spritesheet.png', 'spritesheet.json') and play the animation by referencing the frame names. Switch the export to CSS sprites instead and you get one .sprite-walk_0 rule per frame using background-position, ready to drop into a stylesheet for an icon set.

SettingEffect
Uniform gridEqual cells, frames centred — best for animations
Tight packShelf nesting — best for mixed-size icons
PaddingPixel gutter between frames to avoid texture bleed
Power-of-twoRounds sheet up to 256, 512, 1024 for older GPUs

Everything runs locally, so even unreleased artwork stays private on your machine.

Ad placeholder (rectangle)