columns 4
frame size 128 px
spacing 0 px
background
fit
frames (0)
    sprite sheet

    Drop frames here

    or click to choose · or paste (Ctrl/Cmd + V)

    processed in your browser · never uploaded

    Add two or more frames — they pack into the sheet left-to-right, in this order.

    Pack a set of images into a single sprite sheet and save it as a PNG — entirely in your browser. Whether you have character animation frames, effects, pixel-art cels, or frames pulled from a video, you can lay them out on a tidy grid without a heavy editor or the command line. It is simple: drop (or choose, or paste) two or more frames, reorder them with the up/down buttons, and pick the columns, frame size, spacing and background. Each frame is fit into a square cell of the chosen frame size — either 'contain' (whole frame with padding) or 'cover' (fill the cell, cropping overflow) — and packed left-to-right, top-to-bottom. The background can be transparent (the PNG keeps its alpha, ideal for game sprites), white, or black. It also shows a one-line summary of the result — sheet size, per-frame size, columns × rows, and frame count — that you can copy, so you can paste it straight into your code when you slice the sheet (frameWidth / frameHeight or column count). The preview is scaled to fit your screen, but the saved PNG is exported at the exact pixel size you set. All processing happens in your browser — the images are never sent to any server or API, so it's safe to use even where uploading files is not allowed.

    How to use

    1. Load two or more frames by dropping, choosing, or pasting them (nothing is uploaded).
    2. Reorder with the up/down buttons, then set columns, frame size, spacing and background (transparent / white / black).
    3. Save as a PNG. Optionally copy the sheet info (size, frame size, columns × rows, count) to paste into your code.

    FAQ

    Are my images uploaded anywhere?

    No. Loading, compositing the sheet, and PNG export all happen inside your browser. The images are never sent to any server or API — everything stays on your device, so it's safe to use even in workplaces or schools that block cloud tools.

    Can the frames be different sizes?

    Yes. Each frame is scaled to fit the square cell you choose (the frame size). 'Contain' fits the whole frame with padding around it; 'Cover' fills the cell and crops the overflow. Every frame ends up the same cell size, so you can slice them at even intervals in your code.

    Can the background be transparent?

    Yes. The background can be transparent, white, or black. Transparent keeps the PNG's alpha intact, which is ideal for game and animation sprite assets.

    How do I know the numbers for slicing the sheet in code?

    Above the preview there's a one-line summary — sheet size, per-frame size, columns × rows, and frame count — and a 'Copy info' button to copy it as text. You can paste it straight in when you set frameWidth / frameHeight or the column count to slice the sheet.