Sprite sheet splitter & packer

Slice a sprite sheet into individual PNG frames, or pack loose frames into a sheet with a JSON atlas — pixel-perfect and right in your browser.

Your files stay on your deviceFree, no sign-up

Before you use it

Works well for

  • Grid-based sprite sheets (same size cells)
  • Packing animation frames into one sheet
  • Pixel art — no smoothing is applied

Not the right tool for

  • Sheets with irregular or packed frames of different sizes
  • Animated GIFs (only the first frame)
  • Trimming or rotating frames

Split a sheet

Drop a sheet and slice it by cell size (e.g. 32×32) or by rows and columns. Offsets and spacing handle sheets with borders or gaps between cells. Empty transparent cells are skipped by default. The orange grid shows exactly where the cuts will be; frames download as numbered PNGs in a ZIP.

Pack frames

Drop frames in order (file names like run_01.png, run_02.png are sorted naturally), pick the number of columns and padding, and download the sheet plus a JSON file with each frame's position — easy to read in Godot, Unity, Phaser or your own engine.

Frequently asked questions

Is the pixel art kept sharp?

Yes. Frames are copied pixel by pixel with no smoothing or resampling.

What JSON format is used?

A simple hash format with x, y, w and h per frame, similar to TexturePacker's "JSON (Hash)" layout.

Can I split a GIF animation?

Only the first frame of a GIF is read. Export the animation as a sheet from your art tool first.