ICO Converter
Convert images to and from the ICO icon container format.
Open a .ico file in a hex editor and you will find something most image formats do not have: several complete images stacked inside one file. ICO is not a picture, it is a small container, and understanding that is the key to using it correctly.
A container, not a single image
An ICO file starts with a short header (called the ICONDIR) that simply states how many images are packed inside, followed by a directory entry for each one recording its width, height and colour depth. The actual image data comes after, one block per entry. A single favicon.ico commonly holds a 16 × 16, a 32 × 32 and a 48 × 48 version of the same picture, and the operating system or browser picks whichever entry fits the space it has.
This is why converting a single flat PNG or JPG "to ICO" is not really a one-to-one format swap the way converting PNG to WebP is. It is closer to packing: the source image gets resized down to each target size and each of those gets embedded as its own entry in the same file.
What is actually packed inside a typical ICO
| Entry size | Typical use | Stored as |
|---|---|---|
| 16 × 16 | Browser tab, taskbar | PNG or uncompressed bitmap |
| 32 × 32 | Desktop shortcut, bookmark bar | PNG or uncompressed bitmap |
| 48 × 48 | Windows "large icons" view | PNG or uncompressed bitmap |
| 256 × 256 | Modern high-resolution displays | PNG (required above 255px per side) |
A little history that explains the format’s quirks
- Windows 3.0 origins — the ICO format dates to 1990 and originally stored only small, low-colour bitmaps, which is why its internal structure still looks like a bitmap header rather than a modern image format.
- 8-bit and 4-bit variants — old icons used a limited colour palette, 16 or 256 colours, which is why very old ICO files can look flat or banded compared with a modern icon.
- 32-bit icons with alpha — introduced with Windows XP, allowing a proper transparent, anti-aliased edge instead of the hard-edged transparency older icons used.
- PNG-compressed entries — since Windows Vista, an ICO entry can store a full PNG image instead of a raw bitmap, which is mandatory for any entry above 255 pixels per side and is why modern ICO files can hold a crisp 256px version.
- Still not obsolete — despite its age, ICO remains the format browsers request by default at
/favicon.icoand the format Windows uses for application and file-type icons.
ICO format questions
Why is my converted ICO file bigger than the source image?
Because it is not one image, it is several. If you pack in a 16, 32 and 48 pixel version, the file holds all three, so it will naturally be larger than any single one of them on its own.
Can an ICO file hold just one size?
Yes, a single-entry ICO is perfectly valid, though most tools and most favicons include several sizes so the right one is available without scaling.
Does ICO support transparency?
Yes, and has since Windows XP for 32-bit entries, including soft anti-aliased edges rather than only hard on-or-off transparency. Older 8-bit style entries only support hard-edged transparency.
What is the difference between ICO and CUR files?
They share almost the same internal structure. CUR is the cursor equivalent of ICO, with the one addition of a defined hotspot point marking exactly which pixel is the actual click position.
Is there a maximum number of images an ICO can contain?
The format’s count field is a 16-bit number, so in theory thousands, but in practice two to four sizes cover every real use and anything more is unnecessary bloat.