Initializing... drag & drop files here
Supports: JPG, JPEG, JFIF
Upload one JPG and you get a single-frame, static GIF. Upload several and they become one animated GIF instead — the page switches paths automatically based on how many files you add. Either way the picture is re-encoded into GIF's 8-bit indexed colour model, which holds a maximum of 256 colours per frame, so a photograph that arrived with millions of shades comes out of the conversion with visible banding. That trade is inherent to the format, not to this converter: GIF was released by CompuServe on 15 June 1987 for flat low-colour graphics, and the GIF89a revision of 1989 that added animation and transparency did not raise the palette ceiling.
.jpg, .jpeg, or .jfif file onto the page, or click "Add Files" to browse. Adding two or more images switches the job to the animated path.A single JPG cannot animate. Animation needs more than one frame, and one photo is one frame, so a single upload always produces a static .gif — this is a property of the format, not a limitation you can toggle off.
What surprises people is that the two paths do not honour the same controls:
If you actually want motion from footage rather than from a stack of photos, start from a clip instead — MP4 to GIF extracts and times the frames for you.
| Property | JPG (source) | GIF (output) |
|---|---|---|
| Released | JPEG approved September 1992 as ITU-T T.81; ISO/IEC 10918-1 in 1994 | 15 June 1987; GIF89a in 1989 |
| Colour depth | 24-bit, up to ~16.7 million colours | 8-bit indexed, 256 colours per frame |
| Compression | Lossy DCT | LZW, lossless over the indexed palette |
| Transparency | None | Binary on/off only — no variable alpha |
| Animation | No | Yes, with two or more frames |
| Typical result on a photo | Smooth gradients | Banding and dithering in skies and skin |
| Typical size on a photo | Small | Usually larger than the JPG it came from |
| Control | Default state | Affects a single-photo GIF | Affects a multi-photo animation |
|---|---|---|---|
| Colors (File Compression → Custom) | Full 256-colour palette unless set | Yes — sets the palette, 2 to 256 | No |
| Image resolution (File Compression → Custom) | Keep original | Yes — pixel dimensions | Yes |
| Framerate | 10 FPS marked "Recommended" | No — a still has no timing | Yes — frame timing |
| Image quality (%) (File Compression → Custom) | Slider sits at 80 | No — GIF has no quality scale | Yes |
| Combine? | Single animation | No | Yes — one file or many |
GIF stores at most 256 colours per frame while your JPG held millions, so every shade has to be mapped down to that small palette. Smooth gradients — skies, shadows, skin tones — break into visible bands, and the encoder scatters pixels between adjacent palette entries to disguise the steps, which reads as grain. In our pipeline the still-image path applies Floyd–Steinberg dithering as it quantizes, which is why the noise looks like fine speckle rather than hard-edged posterization. It is a hard limit of the format. If the photo has to stay clean, convert to PNG instead, which keeps full 24-bit colour losslessly.
No. Animation requires multiple frames and a single photograph is a single frame, so a one-file upload always yields a static GIF. To get movement you need either a sequence of images — upload several JPGs here and leave Combine? on "Single animation" — or a video clip, in which case MP4 to GIF is the right tool.
Add all the images in the order you want them to play, leave Combine? on "Single animation", and set Framerate to the speed you want. At 10 FPS each frame holds for a tenth of a second, so twenty photos run for about two seconds; drop to 2 FPS or 1 FPS for a slideshow that lingers on each picture. Choose "Individual files" only if you want a separate GIF per photo.
Usually not, and often several times larger. JPG's lossy DCT compression is extremely efficient on photographic detail, while GIF's LZW compression was designed for runs of identical flat colour and copes badly with the dithered noise that photo quantization produces. Reducing Colors to 64 or 32 shrinks the file meaningfully, at the cost of heavier banding. If a smaller file is the actual goal rather than the .gif extension, the image compressor or a WebP conversion will serve you far better.
Leave the palette alone for the closest match to your photo — the still-image path maps to the full 256 colours when you do not reduce it. Drop to 128 or 64 when an upload target has a tight size cap and the picture is fairly flat; go below 32 only for logos, line art, and graphics with genuinely few colours, because a photograph at 16 colours becomes posterized beyond recognition. Note that the still-image path dithers as it quantizes no matter what, so the Dither checkbox beside the palette dropdown does not change a single-photo conversion.
No. A JPG has no alpha channel to begin with — the format cannot store transparency — so there is nothing to carry across, and every pixel in the output is opaque. GIF itself supports only binary transparency, where one palette index is declared fully see-through, with no partial opacity. If you need a genuinely transparent background you have to remove it in an editor first and save to a format that stores alpha, such as PNG.
Because GIF has no interframe compression worth the name — each frame carries most of its own data, so file size scales roughly with frame count. Twenty full-resolution photos at 10 FPS is twenty full images in one file. Cut the frame count, lower Framerate, or reduce Image resolution (File Compression → Custom) to a preset height like 480p; those three levers do far more than the quality slider. An existing oversized GIF can also be run through the GIF compressor.
Your JPG is uploaded over an encrypted connection, converted on our servers, and deleted automatically a few hours afterwards. There is no sign-up, no watermark, and no file-count limit, and nothing you upload is shared or made public.