Why one favicon.ico holds five images at once
An .ico file is not an image format so much as a tiny archive. It opens with a six-byte header saying how many pictures are inside, followed by one sixteen-byte directory record per picture (width, height, colour depth, payload length, payload offset), and then the payloads themselves laid end to end. Whatever needs the icon reads the directory, picks the size closest to what it wants, and ignores the rest.
That design is why a browser tab, a Windows taskbar and a desktop shortcut can share a single file and all look crisp: each one grabs a different entry. It is also why the format has a famous quirk. The width and height fields are one byte each, so they can only count to 255, and 256 (the format’s maximum) is encoded as zero. Read those bytes naively and a beautiful 256-pixel icon reports itself as zero pixels wide. Our reader resolves that case before anything else looks at the numbers.
The trouble starts when you want to edit the thing. Photoshop, Figma, Sketch and most viewers either refuse .ico outright or open exactly one arbitrary entry and hide the others. The container that made the file so convenient for operating systems is the same container that locks the artwork away from the tools you would use to work on it.
PNG-in-ICO versus the legacy DIB, and how to tell which you have
There have been two ways to store an entry’s pixels. The original, from the days of 16-colour icons, is a raw device-independent bitmap: a BITMAPINFOHEADER, the colour rows stored bottom to top, and a separate one-bit AND mask carrying transparency. Since Windows Vista an entry may instead be a complete PNG file, signature and all, dropped into the container verbatim.
Effectively everything made in the past fifteen years or so uses the PNG form, including every file produced by our own PNG to ICO tool. This extractor handles that form only. It walks the directory, slices out each payload, and checks the first eight bytes against the PNG signature. Entries that match are handed straight to you. Entries that do not are skipped, since a single file is allowed to mix both layouts across its sizes. Only when nothing in the file turns out to be a PNG do you get an error, and the message says exactly that rather than pretending the file was corrupt.
You do not need to know in advance which kind you have. Drop the file in and the result tells you.
Pulling every size out
- Drop your
.icointo the box above, or use Choose a file. - Press Convert ICO to PNG. The directory is parsed and every embedded PNG is copied out in your browser’s own memory.
- One image inside means one PNG download. Two or more means a ZIP, named after your file with a
-pngsuffix. - Open the ZIP and take whichever sizes you need. Names carry the dimensions, and if the icon legitimately repeats a size at a different colour depth, the duplicate gets a running
-2suffix so nothing overwrites anything.
A typical favicon is a few kilobytes of buffer slicing, so it is done as soon as the file has been read. There is no queue, no upload progress bar and no size limit beyond what your own device can hold, because your device is doing all of it. Nothing about the file is transmitted, which matters when the icon in question is an unreleased mark or a client’s branding you were trusted with.
Where this tool stops being the right answer
It reads icons; it does not create or repair them. Three cases send you elsewhere.
If you have artwork and want an icon, go the other direction with PNG to ICO, or use Favicon Generator when you need the whole modern set (a multi-size .ico, standalone PNGs, an apple-touch-icon, a web manifest and the HTML to reference them). Starting from a recovered PNG, that generator is usually the next step rather than another extraction.
If your extracted PNG is smaller than you hoped, no extractor can help, because the missing detail was never in the file. Scale it deliberately in Resize Image and accept the softness, or find the original artwork.
And if a file genuinely only contains legacy bitmap entries, an old icon editor or a desktop image tool with .ico support is what you want. That is a rare case now, but it is real, and we would rather say so than fail vaguely.

