Convert ICO to PNG

Extract every image inside a Windows .ico file as PNG in your browser. Free and private, no upload, multi-size icons bundle into a ZIP.

🌐 Español

Drop your file here (.ico)

🔒 Private by design: your files are processed locally in your browser and never uploaded to any server.

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

  1. Drop your .ico into the box above, or use Choose a file.
  2. Press Convert ICO to PNG. The directory is parsed and every embedded PNG is copied out in your browser’s own memory.
  3. One image inside means one PNG download. Two or more means a ZIP, named after your file with a -png suffix.
  4. 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 -2 suffix 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.

See it in action

Screenshot of the Convert ICO to PNG tool with sysfenix-favicon.ico (7 KB) loaded
Convert ICO to PNG mid-process: sysfenix-favicon.ico (7 KB) loaded.
Screenshot of the Convert ICO to PNG result screen showing sysfenix-favicon-png.zip ready to download (8 KB, 5% larger)
The finished result: sysfenix-favicon-png.zip ready to download (8 KB, 5% larger). The download link is a local blob URL — the file never leaves your device.

Frequently asked questions

My favicon.ico turned into a ZIP instead of a PNG. Why?

Because the file held more than one image. A single-image icon downloads as one PNG named after the source file; anything with two or more entries comes back as a ZIP so you keep every size in one click. Inside, the files are ordered smallest to largest and named after their dimensions, for example favicon-16x16.png and favicon-32x32.png.

What does the "legacy BMP-in-ICO" error mean?

It means every image in that file uses the pre-Vista raw bitmap layout (a DIB header plus colour data plus a separate one-bit transparency mask) rather than an embedded PNG. Decoding that needs a different pipeline, with inverted row order and a mask to reapply, which this tool deliberately does not implement. If a file mixes both layouts across its sizes, the PNG entries still extract normally and only the bitmap ones are skipped.

Does extraction re-compress the image or lose quality?

Not at all. A PNG-in-ICO entry is a complete PNG file sitting inside the container, so extracting it is a byte-for-byte copy out of the buffer, with no decode and no re-encode anywhere in the path. Transparency, colour values and the original compression all survive untouched, which is also why there is no quality setting here to get wrong.

Which extracted size should I use to rebuild a logo?

The largest one, but check what that actually is before you plan around it. Many favicons top out at 32 or 48 pixels, and a 32-pixel image scaled up is still 32 pixels of detail no matter what size you save it at. It is fine for tracing a shape or sampling exact brand colours, and not enough for print or a hero graphic.

The tool says my file is not a valid ICO. What went wrong?

The directory at the front of the file failed a structural check, and the message names which one. The usual causes are a PNG or JPEG that was simply renamed to .ico, a partial download, or a file whose directory points at offsets past the end of the data. Try re-downloading the original, and if it opens fine as an image in a normal viewer it was never really an icon file.

Related tools