An ICO is not a single picture. It is a small container built for Windows icons, and inside it holds the same graphic saved at several sizes at once, for example 16, 32, 48, and 256 pixels square. That is how one favicon or app icon can look crisp whether Windows shows it tiny in a menu or large on the desktop. Because a single file bundles every size a program might ask for, the operating system can always pick the version that matches the space it has, and the icon stays sharp instead of being scaled from one fixed image.
A PNG, by contrast, is one plain image at one resolution. Converting ICO to PNG means reaching into that container and pulling out a single size as a normal, editable image that any tool can open. This guide explains how the container is laid out, how the extraction actually works, how to get the sharpest result, and which size to choose.
What an ICO actually contains
Because the ICO packs multiple sizes, the interesting question when you convert is not really the format, it is which of those internal images you want to keep. Each stored size is a self-contained picture, usually with a transparent background so the icon sits cleanly on any surface. PNG preserves that transparency, so the cut-out shape stays intact in the converted file.
The key limit to understand is that an icon cannot become sharper than the largest size baked into it. If the biggest image inside the ICO is 48 pixels, you cannot honestly get a crisp 512-pixel PNG out of it. Enlarging past the source size just stretches the pixels and looks soft. So the ceiling is set by whatever the ICO's largest version happens to be. This is the single fact that governs the whole conversion: extraction can only ever hand you a copy of an image the file already holds, never a better one.
It also helps to know that not every entry inside an ICO is stored the same way. Historically each image was a small device-independent bitmap with a separate one-bit transparency mask, the same structure Windows used for on-screen bitmaps. Since Windows Vista, ICO files are allowed to store their larger entries as embedded PNG data instead, which is how a modern icon can carry a crisp 256-pixel image with full alpha transparency without bloating the file.[1] A good converter reads either style transparently, so you do not need to know which one your file uses.
ICO is a bundle of sizes; PNG is one image. Pull out the largest size for the sharpest, transparency-preserving result.
Inside the ICO file: directory and entries
An ICO file has a simple, readable structure that explains why it can hold many sizes at once. It opens with a short six-byte header that identifies the file as an icon and records how many images are packed inside. Immediately after that comes a directory: a list with one sixteen-byte entry per image. Each directory entry records the image's width and height, its color depth, the number of bytes that image occupies, and the offset where that image's data begins further down in the file.
This directory is the reason an ICO can be browsed without decoding anything. A program that wants a 32-pixel icon reads the directory, finds the entry whose dimensions match, jumps straight to that offset, and decodes only that one image. When you convert ICO to PNG, the tool does exactly the same thing: it parses the directory, presents you the available sizes, and pulls out the single image you choose. One quirk worth knowing is that the directory stores each dimension in a single byte, and a stored value of zero means 256 pixels, which is how the format squeezed support for the large modern icon size into its original layout.
Each entry can carry its own color depth too, so an ICO can mix a 4-bit sixteen-color 16-pixel image for cramped legacy displays with a 32-bit truecolor 256-pixel image with alpha for a high-resolution desktop, all in one file. That flexibility is what makes the container useful, and it is also why the "which size and which depth do I want" question is the real decision when you extract.
ICO and PNG compared
The two formats sit at opposite ends of a spectrum. ICO is a multi-image container designed for one job, supplying Windows with icons at whatever size the interface needs. PNG is a single-image format designed for general use: a losslessly compressed picture with full color and an alpha channel that virtually every application and browser can open.[3] Converting from one to the other is about lifting a single picture out of a specialized bundle and into a universal one.
| ICO | PNG | |
|---|---|---|
| Images per file | Many, at several sizes | Exactly one |
| Primary purpose | Windows icons and favicons | General-purpose images |
| Transparency | 1-bit mask or 8-bit alpha | Full 8-bit alpha channel |
| Compression | Raw bitmap or embedded PNG | Lossless DEFLATE |
| Opens everywhere | Mostly Windows and browsers | Essentially every tool |
The favicon is where most people meet ICO today. The historic favicon.ico at a site's root is still recognized automatically, though modern sites increasingly declare icons of specific sizes with a PNG through a link element in the page head, which lets each device pick the resolution it wants.[2] Extracting a PNG from an existing ICO is often the first step in modernizing exactly that setup.
How the extraction works under the hood
The conversion runs through a short, predictable pipeline. First the tool reads the header and directory to learn how many images the ICO contains and where each one lives. Then, for the size you pick, it seeks to that entry's offset and decodes it. If the entry is stored as a classic bitmap, the decoder reads the pixel rows and combines them with the separate one-bit mask that marks which pixels are transparent; if the entry is an embedded PNG, the decoder simply hands that PNG stream to a PNG reader. Either way the result in memory is the same: a grid of pixels with color and transparency for that one image.
Finally the tool re-encodes those pixels as a standalone PNG, writing them with PNG's lossless DEFLATE compression and a proper alpha channel. Nothing about the picture is degraded in this step, because both ICO entries and PNG store the image without lossy compression; the pixels that came out of the ICO are exactly the pixels written into the PNG. The only thing that changes is the wrapper around them, which is precisely why this conversion never costs you any quality.
Why the conversion never loses quality
ICO to PNG is one of the rare format conversions that costs you nothing in fidelity, and it is worth understanding why. Both formats store their pixels losslessly. An ICO entry is either an uncompressed bitmap or an embedded PNG stream, and PNG itself compresses with the lossless DEFLATE algorithm defined in its specification, so no image data is ever thrown away to save space.[4] Because the pixels that come out of the ICO are written unchanged into the PNG, the two files describe exactly the same image; only the wrapper differs.
This is the opposite of a lossy transcode like AAC to MP3 or a re-encode from one video codec to another, where every pass discards a little more detail. Here you can convert an ICO to PNG, and if you wish repackage that PNG straight back into an ICO, without any generation loss at all, because at no point is the image re-compressed with a lossy algorithm. The only genuine limit on quality is the size question already covered: you cannot extract an image larger or sharper than the biggest one the ICO actually contains, since the file simply has no more detail to give.
Convert ICO to PNG, step by step
Open the converter and add your ICO
Open the FileFormer image converter and drop the ICO in. It is read on your device, so the file is never uploaded.
Choose PNG as the output
Set the target to PNG. This gives you a standard, lossless image that keeps the icon's transparent background.
Pick the size to extract
If the ICO holds several sizes, take the largest for the sharpest PNG. Only pick a smaller one if you specifically need that exact dimension.
Convert and download
Convert and save. You now have a normal PNG you can edit, resize down, or use anywhere an image is expected.
Choosing the right size to extract
Always start from the largest image the ICO holds, then scale down if you need something smaller. Scaling a big, sharp source down looks clean; scaling a small source up looks blurry. If you need the icon at multiple final sizes, export the largest PNG once and resize copies from it rather than pulling several small versions out of the ICO.
| Goal | What to extract |
|---|---|
| Sharpest possible image | The largest size in the ICO |
| A specific small size | That exact size, if present |
| Several output sizes | Largest once, then resize copies |
Cursors, hotspots, and the CUR cousin
ICO has a near-identical sibling called CUR, the Windows cursor format. The two share the same file layout almost byte for byte, with one meaningful difference: a cursor's directory entries reuse two fields to store a hotspot, the exact pixel inside the image where the click actually lands, for example the very tip of an arrow or the center of a crosshair. That hotspot has no meaning for a static image, so when a cursor is converted to PNG the coordinate is simply dropped and you are left with the picture alone.
This matters if you are extracting a PNG from a .cur file rather than a true .ico. The image comes out fine, but the information about where the pointer "points" does not travel with it, because PNG has no concept of a hotspot. If you later need to turn that PNG back into a working cursor, you will have to set the hotspot again by hand. For plain icons this never comes up, since there is no hotspot to lose in the first place.
When you want the other direction
If your goal is actually to make a favicon or app icon rather than extract from one, you want the reverse trip: build a PNG first, then package it into an ICO. Converting ICO to PNG is for when you already have an icon and need it as an ordinary image, to edit, place in a document, or hand to a design tool that does not read the ICO container. It is also the right move when you are updating an old site: pull the sharpest PNG out of a legacy favicon.ico, then serve modern sized PNG icons declared in the page head, which display better on high-resolution screens than a single small bitmap ever could.
Extract a PNG from your ICO now
Pick the size, choose PNG, and download, all in your browser with nothing uploaded.
Key takeaways
- An ICO is a container of several sizes; PNG is one plain image.
- Extract the largest size for the sharpest PNG, then resize down if needed.
- You cannot make the PNG sharper than the biggest image inside the ICO.
- PNG keeps the transparent background the icon relies on.