GIF → PNG Atlas Auto Frame Split No Uploads TexturePacker JSON

GIF to Sprite Sheet Converter

Turn an animated GIF into a professional sprite sheet atlas. Drop your GIF, extract all frames, pack them into a PNG atlas, and export a game-ready JSON metadata file — all in your browser.

See How It Works Image to Sprite Sheet

What This Tool Does

This GIF to Sprite Sheet converter splits animated GIFs into individual frames, then packs those frames into a single PNG atlas — the standard sprite sheet format for game engines. Your GIF never leaves your browser.

Export Formats

Who Uses This

Layout Options

Choose how frames are arranged in the sprite sheet atlas.

GridEven rows & columns
HorizontalStrip left to right
VerticalStrip top to bottom
PackedMaxRects optimal fit

Settings

Columns 0 = auto
Padding 0 px
Extrude 0 px
Trim transparent on
Uniform cell size off
Power of two off
Transparent bg on

How to Use GIF to Sprite Sheet

1

Drop Your GIF

Drag an animated GIF file onto the tool. It will be decoded and split into frames in your browser.

2

Pack the Atlas

Choose layout, columns, padding, trim, and extrude settings to pack the frames.

3

Preview the Loop

Hit Play to see your animation run at your chosen FPS before exporting.

4

Download Assets

Download PNG sprite sheet + JSON atlas, or get all assets in a ZIP file.

FAQ

GIF to Sprite Sheet — FAQ

No. If your GIF has a solid color background (like white or black), the sprite sheet will keep that background. If your GIF has a transparency index set, the transparency will be preserved in the atlas.
The tool handles large GIFs, but performance is limited by your device's memory. Very large sprite sheets (approaching 4096px in either dimension) may strain lower-end devices. Try using the Packed layout to minimize atlas size.
Yes. You can mix GIFs and PNG/JPG/WebP files in the same batch. All files will be sorted by filename and packed together into a single sprite sheet atlas.
JSON Hash uses frame names as keys (e.g., {"walk_001": {x:0, y:0...}}). JSON Array uses a list structure (e.g., [ {name:"walk_001", x:0...}, ... ]). Most engines support both; check your engine's documentation. Phaser and PixiJS typically use Hash format.
Created by MiniMax Agent
×