Cookies for analytics and advertising
We use cookies for analytics and advertising, both sent to Google. Refusing changes nothing you can see.Read the privacy page
Converting PNG to ICO wraps your image in the icon container browsers and Windows still ask for, with its transparency intact. One file holds 16, 32 and 48 pixels by default, so a browser takes the size it needs instead of shrinking a large one. Start from a square image, drop it above, and put the result at the root of your site as favicon.ico — the conversion runs in your browser.
Up to 100 files at once. Mixed formats are fine.
They convert one after another and download together as a ZIP.
PNG to ICO
PNG 139 KB → ICO 139 KB 0% larger
PNG 7 KB → ICO 7 KB 0% larger
PNG 3 KB → ICO 3 KB 1% larger
Almost everyone converting a PNG to an ICO is making a favicon. Browsers have requested `/favicon.ico` from the root of every site for nearly thirty years and they still do, regardless of what your HTML declares — so having one there stops a stream of 404s in your logs and covers the tools that look for nothing else.
Modern favicon markup can point at a PNG or an SVG as well, and most sites ship both. The ICO is the fallback that never has to be declared.
A container rather than a compression format, which is why this conversion loses nothing meaningful. Your image is stored inside it as a PNG — one per size in the directory — complete with its alpha channel, so a rounded logo or a mark with transparent corners keeps them exactly.
One constraint comes from the format and it is a hard one: an icon caps at 256 pixels, so anything larger is scaled down. The size byte in an ICO directory entry is a single byte, and 256 is written as zero because it does not fit.
Underneath that ceiling you choose. The "Icon sizes" control decides what goes into the directory, and the default writes three entries — 48, 32 and 16 pixels, largest first — each stored as its own PNG. That is the arrangement a favicon has wanted since the beginning: the browser reads the directory and takes the entry closest to the size it is about to draw, instead of reducing one large image on the fly with a general-purpose filter.
Every entry written here is square, because icons are square. A non-square source is not cropped and not stretched: it is centred on the square at the largest scale that fits, with transparent space filling the rest. Nothing is distorted, but an oblong logo ends up drawn across half the icon and looks smaller than its neighbours in a row of tabs.
So square it up in whatever tool made it, at 256 pixels or more, and let the mark fill about ninety per cent of the frame. That is one edit in the source and it decides more about how the icon reads than anything on this page.
16 and 32 pixels are the ones that matter in practice: 16 for a browser tab and a bookmark list, 32 for the taskbar and most desktop contexts. Windows also draws icons at 48 and at 256 in certain views.
Those are the three the default set writes, which is why it is the default. Start from a large source anyway: every entry is reduced from the picture you drop in, so a 256-pixel PNG produces a clean 48, 32 and 16, while a 32-pixel source asked for 256 is enlarged and looks exactly as bad as that sounds.
The constraint that catches people is not the format, it is the arithmetic. At 16 pixels a letterform is about ten pixels tall, which is not enough for a wordmark, a tagline, or any stroke thinner than the rest.
What works is one shape, high contrast, few colours: the initial rather than the name, the symbol rather than the full lock-up. Test it by shrinking the PNG to 16 pixels before converting — if you cannot tell what it is, no format will rescue it.
Put it at the root of the site as favicon.ico. That single placement covers browsers requesting it directly, feed readers, and older tools that look nowhere else.
Declaring it in the HTML head is worth doing as well, alongside a PNG for current browsers and an apple-touch-icon for iOS home screens. The ICO is the floor, not the whole strategy.
Almost always caching, and favicons are cached unusually hard — by the browser, by any CDN in front of the site, and sometimes by the operating system as well.
Load the icon URL directly to confirm the new file is being served, then clear the site data for that one origin rather than the whole browser. If a CDN sits in front, purge it there too. Once the file itself is confirmed correct, the rest is patience.
Drop up to a hundred PNGs in one pass. Each becomes its own ICO and they come back together as a ZIP, which suits an app or a set of sites needing one icon each.
The conversion runs in your browser, so there is no upload, no queue and no daily allowance. The other cap is 100 MB a file, and icons are small enough that this is never the constraint.
| PNG | ICO | |
|---|---|---|
| Full name | Portable Network Graphics | Windows Icon |
| File extension | .png | .ico |
| Media type | image/png | image/x-icon |
| Compression | Lossless — nothing is discarded | Lossless — nothing is discarded |
| First published | 1996 | 1985 |
| Published by | PNG Development Group | Microsoft |
| Specification | ISO/IEC 15948 | — |
| Licensing | Open standard | Published, not standardised |
| Standing today | Current | Niche |
| Bit depth | 16 | 8 |
| Colour it can describe | RGB, greyscale, indexed palette | RGB, indexed palette |
| Largest image | 2,147,483,647 px per side | 256 px per side |
| Opens in a browser | Every browser | Every browser |
| Considered instead | WebP, SVG, JXL | SVG |
PNG carries up to 16 bits per channel and ICO stores 8. The extra precision is what survives heavy correction without banding, so the conversion is best made after the editing rather than before it.
Transparency survives. Both PNG and ICO store an alpha channel, so a cut-out stays cut out and nothing is filled in behind it.
GIMP reads both PNG and ICO, so there is a way to check the result against the original without a second tool.
PNG is PNG Development Group's format, published in 1996. It records 16 bits per channel.
ICO comes from Microsoft and dates from 1985. GIMP and IcoFX all read it.
No. This conversion runs entirely inside your browser, so the file never leaves your device. You can confirm it yourself: open the network tab of your browser's developer tools and convert something. You will see the page load, plus the analytics and advertising the site is paid for with — and nothing carrying your file. The engine behind this particular pair is jSquash, WebAssembly builds of the reference image codecs; your browser fetches it once and caches it.
Square, and at least 256 pixels. Anything larger is scaled down to 256, which is the largest an ICO can hold. A non-square image is not cropped but centred on a square with transparent space around it, so a wide logo ends up drawn small — square it up first.
Yes. The "Icon sizes" control decides how many, and the default writes 16, 32 and 48 pixels into one file. Each is a separate image at its own size, so a browser takes the 16 for a tab rather than shrinking a 256. "All common sizes" adds 64, 128 and 256; "256 px only" writes a single entry.
Yes. The icon carries a PNG internally with its alpha channel intact, so a rounded or cut-out mark keeps its transparent corners.
For `/favicon.ico` at the site root, yes — browsers still request that path whatever else you declare, and some tools expect nothing else. Modern favicon links can point at a PNG or SVG alongside it, and most sites ship both.
Yes. ICO is the format Windows uses for executables and shortcuts, and the shell wants several sizes rather than one — pick "All common sizes" and the file carries 256 down to 16, which is what a build tool embedding an icon resource expects. The small entries are reduced from your artwork rather than redrawn, so a mark with hairline strokes still benefits from a hand-drawn 16 in an icon editor.
The claims this page makes about PNG and ICO are checkable, and these are the documents that settle them.