Skip to content

ICO to PNG converter

Extract every image inside an .ico file as a PNG — including legacy 4-bit and 8-bit BMP entries with their transparency masks. Fully local.

  • Runs in your browser
  • Files are never uploaded
  • Free, no account
Drop an .ico fileEvery image inside the icon is extracted in your browser and offered as a PNG.ICO · up to 50 MB each

One .ico, several images

An icon file is a directory of images. When you open one here, the tool reads the six-byte header, walks the sixteen-byte entry for each image, and extracts them all — typically four to eight, at different sizes and colour depths. You get a preview grid, the dimensions and depth of each, and a download button per image plus a single ZIP of the lot.

Two kinds of payload, handled differently

PayloadSinceWhat we do
PNGWindows VistaCopied out byte-for-byte. The PNG you download is literally the bytes that were inside the .ico — no re-encoding, no quality change.
BMP DIB (1, 4, 8, 24, 32-bit)Windows 1.0 onwardsDecoded by hand: palette lookup for the low-depth entries, bottom-up row order corrected, and the separate 1-bit AND mask applied as the alpha channel. Then encoded to PNG.

The result card labels which path each image took, so you always know whether you are looking at an original or a conversion.

The details that trip up naive converters

  • The doubled height. A BMP entry's header claims twice the real height, because it describes the colour bitmap and the transparency mask stacked together. Read it literally and every icon comes out squashed.
  • Bottom-up rows. DIB stores the last row first. Miss that and the icon is upside down.
  • Row padding. Each row is padded to a four-byte boundary — at 4-bit depth a 16-pixel row is 8 bytes of data padded to 8, but a 24-bit 17-pixel row is 51 bytes padded to 52. Getting this wrong skews the image diagonally.
  • The zeroed alpha channel. Plenty of 32-bit icons ship with every alpha byte set to zero, which literally means fully transparent. The AND mask is the real source of truth, so we fall back to it whenever the alpha channel is empty.
  • 256 means zero. The directory stores width and height in one byte each, so 256 is encoded as 0. The real dimensions come from the payload.

Why extract an icon?

  • Recovering a logo. Sometimes the only surviving copy of an old brand mark is the favicon on an archived site.
  • Editing. Image editors handle PNG far better than ICO. Extract, edit, then rebuild with PNG to ICO.
  • Reuse on the web. Modern sites want PNG or SVG icons for manifests and touch icons; ICO is only kept for the legacy /favicon.ico path.
  • Inspection. Seeing which sizes a site actually ships is a quick check on whether their icon will look right in a taskbar.

Cursors and other oddities

A .cur file uses the same container with a different type flag in the header, so its images extract normally. What is lost is the hotspot — the two coordinates that say where the click actually lands — because those live in the directory entry and PNG has nowhere to store them. Animated cursors (.ani) are a different RIFF-based format and are not supported here.

Picking the right extraction

If you want the best quality, take the largest entry — usually 256 × 256. If you want the icon as it will actually appear in a browser tab, take the 16 × 16: it is frequently a hand-tuned drawing rather than a scaled-down version of the big one, and it is the only entry most people ever see. The preview grid renders small entries with pixel-perfect scaling (image-rendering: pixelated) so you can judge them honestly.

Local and private

Parsing, decoding and PNG encoding all happen in this tab. That matters when the icon is from an internal tool or an unreleased product, and it also means the tool works with the network switched off entirely.

Related tools

PNG to ICO to build an icon, Favicon Generator for a complete modern icon set, and PNG to JPG if you need the extracted images in a different format.

Questions

Why does one .ico produce several PNGs?

An .ico is a container, not a single image. It holds an icon directory followed by one bitmap per size and colour depth — often six or more. Each one is extracted separately so you can take whichever you need.

Can it read old Windows icons?

Yes. Alongside modern PNG payloads it decodes classic BMP-DIB entries at 1, 4, 8, 24 and 32 bits per pixel, applies the 1-bit AND transparency mask, and flips the bottom-up row order that DIB uses.

Is the PNG re-encoded or copied out?

When the entry is already a PNG we copy the bytes out untouched, so the result is bit-for-bit what was inside the file. BMP entries have to be converted, and the tool labels which is which.

Does it work with .cur cursor files?

Cursors use the same container with a different type flag, so the images extract. The hotspot coordinates stored in the directory entry are not preserved, because PNG has nowhere to put them.