Free · Private · In your browser

HEIC to GIF Converter

Turn iPhone photos into 256-colour GIFs, quantised and dithered on your own device. Nothing is uploaded, and you choose how many colours to keep.

✓ Free & unlimited✓ No signup✓ Files never leave your device✓ No watermark

How to convert HEIC to GIF in 3 simple steps

  1. 1

    Add your HEIC files

    Drag and drop, paste, or click to select. There is no cap and nothing is uploaded.

  2. 2

    Pick a palette size

    256 colours by default. Drop to 64 or 16 under Advanced options for a much smaller, more graphic result.

  3. 3

    Convert and download

    Save each GIF, or take the whole batch as a single .zip.

  • Dithered, not banded

    Floyd–Steinberg dithering scatters the quantisation error so gradients stay smooth instead of turning into stripes.

  • Palette you control

    16 to 256 colours. Fewer colours means a much smaller file and a deliberately graphic look.

  • Never uploaded

    Palette building, dithering and LZW compression all run on your device. No server sees the photo.

  • Batch and ZIP

    Convert a folder at once and download everything as one archive.

  • No limits

    No account, no file cap, no daily quota, no watermark.

  • Free forever

    Every option is available, including the full 256-colour palette. Nothing is held back.

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.

Frequently asked questions

Why does my photo look grainy as a GIF?

GIF holds a maximum of 256 colours, and a photo has far more. The grain is dithering, which scatters the error between available colours so gradients do not turn into hard stripes. Turn it off under Advanced options if you prefer flat bands.

Is a GIF smaller than the original HEIC?

Usually not at full size. Our 12 megapixel test photo was 1.38 MB as HEIC and 4.88 MB as a full-size GIF. GIFs get small by being small: the same photo at 800 pixels wide came to 174 KB.

How many colours should I choose?

Leave it at 256 for a photograph. Drop to 64 or 16 when you want a deliberately graphic, poster-like result or a much smaller file. On our 800 pixel test, 256 colours gave 174 KB and 16 colours gave 74 KB.

Can this make an animated GIF?

No. A HEIC is a still photograph, so there is nothing to animate. Sequence files such as .heics contain a burst, and this tool converts their primary image.

Does GIF support transparency here?

Transparent areas are filled with white. GIF only supports one fully transparent colour rather than a proper alpha channel, which produces hard, jagged edges on a photo. Use PNG or WebP if you need transparency.

Are my files uploaded to a server?

No. The whole pipeline runs on your device, including the palette and the LZW compression. Load the page, disconnect from the internet, and it still converts.

Should I use GIF for photos at all?

Rarely. JPG and WebP both hold far more colour in far less space. GIF makes sense when something specifically wants a GIF, or when you want the 256-colour look on purpose.

Why do some converters produce a PNG named .gif?

Because browsers cannot encode GIF. Asking a canvas for image/gif returns a PNG with no error at all, and a tool that does not check the result ships the wrong file under the right extension.

HEICHub builds fast, private, browser-based image tools. Every converter runs locally on your device — no uploads, no accounts.