ICO to PNG
Pull each image out of a Windows .ico file as its own transparent PNG, at every size the icon contains. Runs entirely in your browser — nothing is uploaded.
🔒 This tool runs entirely in your browser. Your files are never uploaded to a server.
An icon file often holds several sizes at once — every one it contains is extracted separately.
No file yet — choose an .ico and its images appear here as PNGs.
How it works
- Choose an .ico file. It is read locally — nothing is uploaded.
- Every image inside is unpacked and listed largest first, with its size, colour depth, and how it was stored.
- Check transparency against the checkerboard behind each preview.
- Download the size you need, or take the whole set at once.
What is actually inside an .ico file
An icon is not a single image. It is a tiny archive: a six-byte header saying how many images there are, then one sixteen-byte directory entry per image, then the image data itself.
header (6 bytes) → directory × n (16 bytes each) → image data × n
Each directory entry stores the width and height in a single byte, which is why 256 is written as 0 — the largest icon size does not fit in one byte, so zero is used to mean "256". Get that wrong and a 256×256 icon appears to be 0×0, which is a classic bug in icon readers.
The image data comes in two flavours. Modern icons embed a complete PNG for the larger sizes, so extracting is a byte-for-byte copy. Smaller and older entries hold a Windows bitmap, and those have two quirks worth knowing: the rows are stored bottom-up, and the recorded height is double the real height, because the colour image is followed by a one-bit transparency mask of the same dimensions. Read that height at face value and every icon comes out stretched to twice its proper length.
Colour is stored as blue-green-red rather than red-green-blue, and each row is padded to a four-byte boundary. Those details are why a bitmap icon needs real decoding rather than being handed to the browser.
FAQ
Is my icon uploaded anywhere?
No. The .ico file is read as raw bytes and unpacked by your browser, so nothing is uploaded or stored. You can disconnect from the internet once the page has loaded and it still works.
Why do I get several PNGs from one file?
Because that is what an icon file is — a small archive holding the same artwork at several sizes, so Windows can show a crisp version in a taskbar, a file list, or at full size. Each one is extracted separately, largest first.
Is transparency preserved?
Yes. 32-bit icons carry a real alpha channel which is passed straight through. Older 24-bit and 8-bit icons store transparency as a separate one-bit mask, which is read and applied — the checkerboard behind each preview shows you exactly which pixels came out transparent.
Does converting lose any quality?
No. Where the icon already contains a PNG — normal for the larger sizes — those bytes are copied out untouched, with no re-encoding at all. Bitmap entries are decoded pixel by pixel into a lossless PNG, so they are exact too.
Why was one of the sizes skipped?
Very old icons sometimes use 1-bit or 4-bit palettes, or a compressed bitmap, which this tool does not decode. It names any entry it skipped rather than quietly dropping it, and still gives you every size it could read.
Can I just rename the file to .png instead?
No — the formats are genuinely different, and renaming produces a file most software refuses to open. Even where a browser can display an .ico directly, it picks one size and discards the rest, which is the problem this tool solves.
How we compare
| Feature | Online Tool Store | Upload-based converter sites | Opening it in an image editor |
|---|---|---|---|
| Extracts every size, not just one | ✓ | Many return only the largest | Depends on the editor |
| Your file never leaves your device | ✓ | ✗ | ✓ |
| Lossless — embedded PNGs copied as-is | ✓ | Usually re-encodes | ✓ |
| Nothing to install, no sign-up | ✓ | ✓ | ✗ |
| Reads very old 1-bit and 4-bit icons | ✗ | Some do | ✓ |
| Builds an .ico from PNGs (the other direction) | ✗ | ✓ | ✓ |
Reach for this when you have inherited a favicon or a legacy app icon and need the artwork back out — at every size it holds, with transparency intact and no re-encoding. It only unpacks icons; building a new .ico from PNGs is a different job.