ICO to PNG Converter
Convert Windows Icon (.ico) files to high-quality transparent PNG images instantly in your browser.
Click or drag ICO here
Supports up to 50MB
Convert Windows Icon (.ico) files to high-quality transparent PNG images instantly in your browser.
Supports up to 50MB
ICO is the icon file format invented for Windows 3.0 in 1990 and still used today as the de facto favicon format on the web. Despite the name, an ICO file is a container that can hold multiple images at different sizes and color depths. A typical Windows desktop ICO might bundle 16×16, 32×32, 48×48, 64×64, 128×128, and 256×256 versions of the same icon; the operating system picks whichever size matches the display context. Converting ICO to PNG means extracting one or more of these embedded images and saving them as standalone PNG files.
This converter parses the ICO header in your browser, identifies all embedded image entries, and decodes each one. Most modern ICO files store their images as PNG internally; older ones use BMP-style raw bitmap data. Both encodings are handled. The output is one PNG per embedded image — for a typical Windows icon, that means six or more PNG files at different sizes.
Files never leave your device. Parsing happens in JavaScript using DataView to read the ICO directory and dispatching to the appropriate decoder for each image. Output PNGs are produced via canvas.toBlob('image/png').
ICO is a Windows-centric format that few image editors handle gracefully. Photoshop requires a plugin; many web-based tools cannot read ICO at all; Linux desktop environments treat ICO as second-class. PNG is universally supported. Converting an existing ICO to PNG produces files you can open and edit in any tool.
The other common reason is extracting individual sizes. Web developers updating a favicon often want only the 32×32 or 64×64 version of an existing ICO. Designers redrawing legacy icons want the largest embedded version as a starting point. Both workflows benefit from extracting separate PNG files, one per size, rather than dealing with the ICO container directly.
Drop an ICO, get one PNG per embedded size.
An ICO file starts with a 6-byte header (ICONDIR), followed by a directory of entries (ICONDIRENTRY, 16 bytes each), followed by the image data for each entry. Each directory entry specifies width, height, color count, and an offset and size pointing to the image bytes.
Image data is encoded as either a BMP-style DIB (without the BITMAPFILEHEADER) or as a complete PNG file embedded directly. PNG-encoded entries are common for modern icons at 256×256 and have a standard PNG signature at the start. BMP-style entries omit the file header but include the info header and pixel data.
This converter reads the directory, locates each entry, and dispatches to the appropriate decoder. PNG entries are decoded using a Blob and an Image element; BMP entries are read by parsing the BITMAPINFOHEADER and writing pixels into a canvas manually. Output is always PNG.