What happens to a photo when it becomes a GIF
GIF has a hard ceiling of 256 colours in the whole image. A 12 megapixel photograph typically contains hundreds of thousands of distinct colours.
So converting HEIC to GIF is not a re-encode, it is a reduction. Something has to decide which 256 colours survive, and what to do about every colour that does not.
That decision is the entire quality of the conversion, and it is where cheap converters give themselves away. A fixed web-safe palette turns a sunset into stripes. A palette chosen from the actual image keeps the colours that matter.
This page builds the palette from your photo using median cut, then dithers the result. Both of those run on your own device.
Dithering, and why it makes the file bigger
Once the palette is chosen, every original colour has to map to one of the survivors. Doing that bluntly produces banding: smooth skies turn into visible steps.
Dithering scatters the error into neighbouring pixels instead, so from a normal viewing distance the eye blends them back into the colour that was meant to be there. Gradients stay smooth at the cost of fine grain.
The catch is counter-intuitive, and we measured it. On an 800 pixel version of our test photo:
- 256 colours with dithering — 174 KB
- 256 colours without dithering — 126 KB
Dithering made the file 38% larger. GIF compresses by finding runs of repeated pixels, and dithering deliberately breaks those runs up.
That is the trade: smoother picture, bigger file. Dithering is on by default because banding is the more objectionable of the two, but the switch is there.
How to convert HEIC to GIF in 3 steps
1. Add your photos
Drag them in, paste, or click to browse. Nothing is uploaded at this step or any other.
2. Choose a palette under Advanced options
Leave it at 256 colours for a photograph. Drop it when you want a smaller file or a deliberately flat, graphic look.
3. Convert and download
Press Convert, then save each GIF or take the batch as one .zip. Converting HEIC to GIF runs entirely on your machine, so a large batch is limited only by your own processor. A full-size 12 megapixel frame took 1.4 seconds in our test, including palette, dithering and compression.
Size: GIF is small only when the image is small
This surprises people who think of GIFs as tiny files.
| Version of the same photo | Size |
|---|---|
| Original HEIC | 1.38 MB |
| GIF, full 4000 × 3000 | 4.88 MB |
| GIF, 800 px wide, 256 colours | 174 KB |
| GIF, 800 px wide, no dithering | 126 KB |
| GIF, 800 px wide, 64 colours | 114 KB |
| GIF, 800 px wide, 16 colours | 74 KB |
A full-size GIF is three and a half times larger than the HEIC it came from, because LZW is a weak compressor by modern standards and it is being asked to compress dithered noise.
The lever that actually matters is dimensions. Halving the width quarters the pixel count, and GIF file size follows pixels almost directly. Our HEIC resizer will do that first if you want a specific width.
Where a GIF still gets asked for
The format is thirty-eight years old and refuses to leave, mostly because so many systems accept it without asking questions.
Forum software and older content systems often list GIF, JPEG and PNG as the uploads they take, and nothing newer. Chat platforms treat GIF as a first-class type with its own picker. Documentation toolchains and wikis frequently do the same.
There is also the plain case of someone telling you to send a GIF. When a requirement arrives from outside, arguing about formats is slower than converting HEIC to GIF and moving on.
What has changed is that GIF is no longer the answer for anything on the open web. Every browser in use handles WebP, and both it and JPEG carry a photograph in a fraction of the bytes at better quality.
The 256-colour look, on purpose
Not every reason to reduce a palette is technical. Sometimes the flattening is the point.
Sixteen colours turns a portrait into something closer to a screen print: broad areas of flat tone, hard transitions, a poster rather than a photograph. Thirty-two keeps a little more shading. Both look nothing like a JPEG, which is precisely why people reach for them.
Turning dithering off amplifies the effect. Without it the bands stay flat and clean, and you get something that reads as illustration rather than a photo with noise on it.
The two switches interact, so it is worth trying a few combinations on the same image. Sixteen colours with dithering looks grainy and photographic; 16 without looks deliberate.
For anything where the reduction is a style choice rather than a constraint, start at 32 colours with dithering off and work down.
Why a browser cannot make a GIF on its own
Canvas exports PNG, JPEG and WebP. Ask it for image/gif and you get a PNG back, with no error — the same silent substitution behind our HEIC to BMP and HEIC to TIFF converters.
GIF is the hardest of the three to supply yourself, because the format needs two things that do not exist in a browser:
A quantiser. Something has to choose 256 colours out of hundreds of thousands. We use median cut: repeatedly split the box of colours along its widest axis until there are 256 boxes, then average each one.
An LZW compressor. GIF’s compression predates the web and has to be implemented from scratch, including its dictionary resets and variable-width codes.
We verified the output rather than assuming it: the file starts with GIF89a, the screen descriptor matches the image, the colour table and image separator sit at the right offsets, the stream ends with the correct trailer, and the browser decodes the result back to the same dimensions. Comparing that decode against a PNG of the same frame gave a mean channel error of 3.45 out of 255 — which is what a good dithered 256-colour reduction should look like.
GIF87a, GIF89a and the animated ones
Three names that cause confusion, so briefly.
GIF87a is the original 1987 specification. GIF89a added transparency, text extensions and, crucially, the blocks that make animation possible. Files from this page are GIF89a, which every viewer written in the last thirty years reads.
Animation is where most of today’s association with the format comes from, and it is not what happens here. An animated GIF is a sequence of frames with timing blocks between them, and a photograph has exactly one frame. There is nothing to animate.
The nearest thing is a HEIC sequence file — .heics or .heifs, which a burst can produce. Those hold several images in one container, and this converter takes the primary one. If you want to see everything inside such a file first, our HEIC viewer lists each frame.
If you actually want an animated GIF, the source is a video rather than a photo, and this is the wrong tool entirely.
Should you convert a photo to GIF at all?
Usually not, and it is worth saying plainly.
For a photograph, JPG or WebP will look better and weigh far less. GIF was designed in 1987 for flat graphics with few colours, and it has never been good at photographs.
Convert HEIC to GIF when the destination specifically asks for a GIF — some forums, some chat platforms, some older content systems — or when you want the reduced-palette look as a deliberate effect. Sixteen colours on a portrait produces something closer to a screen print than a photo, and that is a legitimate reason to be here.
Everywhere else, the modern formats win on every axis at once.
The bottom line
A GIF of a photograph is a compromise the format forces on you: 256 colours, dithered grain, and a file that is larger than the original unless you shrink the picture.
Leave the palette at 256 and the dithering on for anything that should still read as a photo. Drop to 16 or 32 colours when you want it to look like a poster. And keep the width down, because with GIF the pixel count decides everything.