The hard part of PNG to GIF: soft edges
A PNG can make each pixel partly transparent, which is how a logo's curved edge or a soft shadow blends into whatever is behind it. GIF cannot. Every GIF pixel is either fully clear or fully solid, so every soft edge pixel in your PNG has to be turned into one or the other, and how that is done decides whether the GIF looks clean or gets a jagged, pale outline.
Most converters cut at 50% opacity: half-transparent and stronger becomes solid, the rest disappears. That keeps the shape, but the solid edge pixels keep their original colour, which in a PNG is usually mixed for no particular background. The better way is to blend each soft pixel into the colour the GIF will actually sit on, which is what designers did with GIFs for years. The catch: it only looks right on that colour. So this tool asks where the GIF will be shown and shows the result on light and dark backgrounds side by side.
What we measured
We made a test logo the way design apps export one: a 320 × 200 PNG with an anti-aliased circle and a soft shadow, 11,191 of its 64,000 pixels partly transparent. We converted it in Chrome on 11 October 2026 and compared each GIF, drawn on white and on a dark grey, with the PNG drawn on the same background. The figures are the average difference at the soft edge pixels, on a scale of 0 to 255:
| How the soft edges were handled | On white | On dark grey |
|---|---|---|
| Cut at 50% (what most converters do) | 45.4 | 6.1 |
| Blended into white (“a light background”) | 2.1 | 109.5 |
| Blended into dark grey (“a dark background”) | 110.2 | 1.0 |
Blending into the right colour is close to perfect; blending into the wrong one is far worse than cutting. That is the whole trade-off in one table. If you know the background, pick it. If the GIF will appear on many different backgrounds, choose “Don’t know” for hard edges, which look jagged but never show a coloured halo. The previews after converting show all three cases, so you can judge by eye.
Colours: when a GIF is lossless
A GIF can hold 256 colours, or 255 plus one reserved for transparency. Logos, icons, charts and simple graphics often use fewer than that, and then a GIF can store them exactly. But most converters reduce the colours with a general method anyway. In our test, the standard median-cut method gave the right colour for only 75.6% of the pixels of a picture that had just 48 colours. This tool counts the colours first; if they fit, the GIF uses exactly those, and it then decodes its own GIF and checks every pixel against the PNG. Our 48-colour test came back identical, pixel for pixel.
A photo or a gradient has tens of thousands of colours and has to be reduced to 256. Dithering mixes nearby colours in a fine pattern so gradients look smooth; without it, flat areas stay clean but gradients show bands. On our 480 × 360 photo, the dithered GIF was 108 KB and the plain one 98 KB, from a 321 KB PNG. Dithering looks smoother even though, pixel by pixel, it is slightly further from the original (4.2 against 3.6 on average). For photos, though, JPG or WebP are the right formats.
Animated PNG to animated GIF
Animated PNGs (APNG), which some apps export and which messaging stickers often use, are read frame by frame with their timing and become an animated GIF that loops. Our 12-frame test with soft edges went from 26 KB to 12 KB, every frame at its original 80 ms. The soft edges are handled in every frame the same way as in a still image.
Things to know
- A GIF is often bigger than the PNG for flat graphics: our 48-colour test PNG was 0.6 KB and the GIF 3.8 KB, because PNG compresses flat areas better. Convert to GIF when something asks for GIF, not to save space.
- Fully transparent areas stay transparent. To get a GIF with no transparency at all, untick Keep the transparent areas transparent and the whole picture is put on the colour you chose.
- To build an animation from several separate images, use Images to GIF; to go the other way, GIF to PNG.
Everything on this page runs in your browser, with our own GIF encoder. Your image is never uploaded.