GIF Maker — Turn Images Into an Animated GIF (Free, No Upload)
Make an animated GIF from your images in the browser. Reorder, set timing, crossfade, add captions, and hit a file-size target. Free, private, no upload.
What it does
Drop in a set of images — PNG, JPG, WebP, BMP or AVIF — and this tool turns them into a looping animated GIF. You choose the order, how long each frame stays on screen, whether the animation plays once or forever, and how big the finished file should be. A live preview plays your GIF with the real timing before you encode anything.
It is built for the jobs people actually search for: slideshows, product and UI walkthroughs, reaction GIFs and memes with captions, emoji and stickers that must stay under a platform’s size limit, and quick before/after loops.
How it works
The GIF is built entirely in your browser by an encoder that ships inside the tool, so there is no server and no outside library to download.
- Colour reduction. GIF allows at most 256 colours per image. The tool uses median-cut quantisation: it builds a histogram of the colours in your frames, then repeatedly splits the most varied group of colours until the palette is full. If your frame has fewer colours than you allow — logos, pixel art, screenshots — it keeps them exactly instead of approximating.
- Dithering. Floyd–Steinberg spreads each pixel’s rounding error onto its neighbours, which hides banding in gradients and photos. Ordered (Bayer) dithering gives a fixed, patterned look that compresses well and doesn’t shimmer between frames. “None” keeps flat colours crisp.
- Palettes. Per-frame palettes give each image its own best 256 colours, which is ideal for a slideshow of different photos. A single shared palette is smaller and avoids colour flicker between similar frames.
- Frame-diff optimisation. When consecutive frames share most of their pixels, only the rectangle that changed is stored, with the unchanged pixels marked transparent. Identical neighbouring frames are merged into one longer frame. Screen recordings and slideshows with a static background can shrink dramatically.
- Crossfades and fades. Smooth transitions are made by blending the two neighbouring images into extra in-between frames. Fade in and fade out blend to your background colour.
- File-size target. Pick a target such as “Discord emoji” or set your own limit. The tool tests progressively smaller sizes and fewer colours, estimates each one by encoding a sample of your frames, then fine-tunes between the last size that was too big and the first that fits, so you keep as much quality as the limit allows.
How to use it
- Add images. Click the drop area, drag files in, or paste an image from your clipboard. Files are added in natural filename order, so
img2comes beforeimg10. - Arrange the frames. Drag cards to reorder, or use the ◀ ▶ buttons. Use Reverse, Sort by name, or Remove duplicates for the whole sequence.
- Edit individual frames. Click a frame to give it its own delay, a caption, a rotation or a flip. Ctrl/⌘-click or Shift-click selects several for bulk changes.
- Set the size and timing. Choose Auto, a width, a height or an exact size, and how mixed-size images fit (contain, cover or stretch). Set the frame delay, speed, holds on the first and last frame, looping, and optional boomerang playback.
- Add polish. Turn on crossfades or fades, choose a transparent or coloured background, and style your captions.
- Watch the preview, then press Encode GIF. Check the real file size and the finished GIF, then download it or copy it to your clipboard. You can also download every rendered frame as a numbered PNG zip.
Features
- Add, paste, reorder, duplicate, rotate, flip and delete frames
- Per-frame delay and caption, with bulk edit for selected frames
- Global speed multiplier, first/last-frame hold, loop once / forever / N times, boomerang
- Crossfade between frames, fade in, fade out, and a blended loop point
- Transparent GIFs with an adjustable edge cut-off and matte colour
- 2–256 colours, three dithering modes, shared or per-frame palettes
- Frame-diff optimisation and duplicate-frame merging
- Target file size with presets (Discord, Discord emoji, Slack emoji, email) or a custom limit
- Live preview with play, pause and scrubbing; real file-size readout after encoding
- Your frames and settings are remembered in this browser until you clear them
Preparing your images
If your frames start life as a video, pull them out first with the video frame extractor, or skip frames entirely and convert a clip straight to a GIF with the MP4 to GIF converter. Mixed-size photos work, but if you want an exact framing, trim them to the same shape with the crop tool first. Logos and stickers with extra empty margin look better after the transparent pixel trimmer removes the padding. And if a GIF is still too heavy for your use, the GIF to MP4 converter produces a far smaller video that plays the same loop.
FAQ
How do I make a GIF from several pictures?
Add the pictures, put them in the order you want, set how long each should show, and press Encode GIF. The default is half a second per image, looping forever. Everything happens in your browser, so there is nothing to upload or sign up for.
Why is my GIF so large, and how can I make it smaller?
GIF is an old format that stores every frame as indexed pixels, so size grows quickly with dimensions, frame count and colour variety. The biggest savings, roughly in order: reduce the width, remove frames you don’t need, lower the colour count, switch to one shared palette, and turn off dithering. Photos with Floyd–Steinberg dithering are the heaviest case. Or set a target size and let the tool step down automatically.
Can I make a GIF with a transparent background?
Yes. Turn on Transparent background. GIF supports only fully transparent or fully opaque pixels — no partial transparency — so pixels below your chosen cut-off disappear and softer edges are blended onto a matte colour you pick. Choose a matte close to the page the GIF will sit on to avoid light halos. Transitions are switched off in this mode because they need partial transparency.
What are the size limits for Discord, Slack and email?
The presets start at 8 MB for Discord uploads, 256 KB for Discord emoji, 128 KB for Slack emoji and 1 MB for email. Platforms change these limits, so check the current figure and use the Custom option if it differs. The emoji presets also set a 128 × 128 canvas.
Why do very short frame delays play slower than I set?
GIF stores time in hundredths of a second, and most browsers treat delays under 20 ms as 100 ms. The tool rounds delays to 10 ms and never goes below 20 ms so what you preview matches what you download.
Can I turn an existing animated GIF into frames or edit it here?
Not in this tool. If you drop a GIF, only its first frame is used. This tool is for building a new GIF from images.
Privacy
Every step of this tool is local. Your images are decoded, resized, captioned, colour-reduced and encoded inside your browser tab, and the GIF is created on your device. The tool does not fetch any external script or library, and it makes no network requests of its own, so it keeps working offline once the page has loaded. None of its features use the internet.
To let your work survive a refresh, your frames and settings are saved in your browser’s own storage on your device. They are not sent anywhere, and the “Clear all & saved data” button deletes them. The only time anything leaves your browser from this page is if you choose to submit the site’s bug-report form.
Supported formats and limitations
- Input: PNG, JPG, WebP, BMP, AVIF and SVG, as far as your browser can decode them. Animated GIFs contribute their first frame only.
- Output: GIF only (up to 16,384 px per side). There is no audio.
- Colours: GIF is limited to 256 colours per frame; photos will look slightly posterised or dithered by nature of the format.
- Timing: delays are in 10 ms steps with a 20 ms minimum.
- Clipboard: copying a GIF to the clipboard depends on your browser; use Download if it isn’t supported.
- Large projects: hundreds of frames or very large canvases need a lot of memory and time. The tool warns you and still lets you proceed.