GIF Maker
Combine images into an animated GIF entirely in your browser, no upload and no library.
The GIF is encoded here: a popularity palette from the frames, then LZW compression written as GIF89a bytes. No encoder library is loaded.
How to use it
- Pick two or more images — PNG, JPEG, WebP or SVG-rendered frames all work.
- Set the output width if you want to scale, the frame delay in milliseconds, and whether the animation loops forever.
- Click Make GIF and the tool re-encodes every frame through its own GIF89a encoder, including LZW compression.
- Download the resulting
.gif, or export individual frames as PNG when you only need stills. - The frame list shows the order — reorder by re-selecting the images in the order you want.
Common use cases
- Sprites to animation — turn exported sprite frames into a loop for a README or issue tracker.
- Quick product demos — three or four screenshots with a short delay read better than a video for small UI changes.
- Chat stickers — a short looping animation built from a handful of frames.
- Size control — shrinking the width before encoding is the most effective way to cut the final file size.
Why it stays private
Every frame is decoded, scaled and re-encoded in your browser with the built-in encoder. Images are never uploaded, and no network request is made at any point.
FAQ
Q: How large can the input be? A: Practically a few megabytes per image. Everything is held in browser memory, so very large batches are better done in smaller runs.
Q: Is the output optimized? A: The encoder uses GIF89a LZW compression and a palette per frame. It does not do cross-frame delta encoding, so big animated sequences stay large — reduce width or frame count for the smallest files.
Q: Can I control the loop count? A: The loop toggle covers the common cases: loop forever or play once. Precise loop counts are not exposed.
Your data stays on this device
GIF Maker runs 100% locally. Everything you paste or drop is processed by your own browser and never transmitted. Nothing is stored on our servers — close the tab and it is gone.
Nothing you type is sent to a server, logged, or used for analytics. The page works even with your network disconnected after first load.