Turn a sprite sheet into an animated GIF. Tell it how the frames are laid out — by a grid (how many columns and rows) or by exact cell size in pixels — and set the outer margin and the spacing between frames so packed sheets line up. Frames play left-to-right, top-to-bottom; set the frame delay and whether it loops. Turn on "skip empty frames" to drop fully transparent cells. Transparency is kept. Nothing is uploaded.

split by
margin (x, y)
spacing (x, y)
frame delay 100 ms · 10.0 fps
sheet & frames (0 frames)
animated preview
animated preview

Drop a sprite sheet here

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

processed in your browser · never uploaded

Drop or click to replace

Turn a single sprite sheet (a grid of frames packed into one image) straight into an animated GIF. Set the frame layout two ways: by a grid (how many columns and rows) or by exact cell size in pixels (the width and height of one frame). You can also set the outer margin around the sheet and the spacing between frames, so sheets packed with padding line up exactly. Frames play left-to-right, top-to-bottom, and you control the frame delay (the playback speed in milliseconds) and whether the GIF loops. Turn on "skip empty frames" to leave fully transparent cells out of the animation. The preview shows both the sheet with cut boxes overlaid and the real GIF playing, so you can confirm the result on the spot. Transparency is preserved as GIF transparency. It's handy for previewing game animations, checking how a pixel-art character moves, and exporting a GIF to share. Nothing is uploaded; every step runs locally on the canvas.

How to use

  1. Drop a sprite sheet in, click to choose, or paste (Ctrl/Cmd + V).
  2. Set the frame layout: by grid (columns × rows) or by cell size in pixels.
  3. If needed, set the margin and spacing, and toggle "skip empty frames".
  4. Adjust the frame delay (playback speed) and looping, and watch the preview.
  5. Click Download GIF to save it. The image is never sent anywhere.

FAQ

Are my images uploaded to a server?

No. Cutting the frames and encoding the GIF run entirely in your browser using the Canvas API. Your images are never uploaded, stored, or sent anywhere — they are processed only on your device.

How do I set the frame layout?

If you know how many frames are in each row and column, the grid mode is easiest. If you know the exact size of one frame (e.g. 32×32 px), the cell-size mode is more precise. Frames play left-to-right, top-to-bottom.

Can I change the playback speed?

Yes. The "frame delay" sets how long each frame is shown, in milliseconds. Smaller values play faster (higher fps); larger values play slower. The readout shows both ms and fps.

Can it handle transparent sheets?

Yes. The original transparency is kept as GIF transparency. Turn on "skip empty frames" and any fully transparent cell is left out of the animation, so blank cells in a partially filled sheet don't show up.

Can it handle sheets with margin or spacing between frames?

Yes. You can set the outer margin and the horizontal/vertical spacing between frames, so the cut boxes line up exactly with frames on sheets that were packed with padding.

What if I want the opposite — build a GIF from separate images, or split a GIF into frames?

To build a GIF from loose numbered images use "GIF Maker"; to cut a sprite sheet into individual PNGs use "Sprite Sheet Splitter"; and to break an existing GIF into separate frame images use the "GIF Frame Extractor".