History Lesson: What Is a .ico File? The Windows Icon Format
The Windows icon format — one file holding several sizes and color depths, a tiny header and directory in front, PNG-compressed images since Windows Vista, a .cur cursor sibling, and the favicon.ico every website still answers for.

TL;DR
A .ico is a Windows icon file. One file can hold several images of the same icon at different sizes and color depths, and Windows picks the best fit for the desktop, a title bar, or a dialog. The layout is simple: a 6-byte header (reserved, type, image count), one 16-byte directory entry per image, then the image data. Classic entries are bitmap (DIB) data with an AND mask for transparency; since Windows Vista, an entry can be a complete PNG, which made 256×256 icons practical. The .cur cursor format is a near twin (type 2 instead of 1, plus a hotspot). On the web, Internet Explorer 5 (March 1999) started requesting favicon.ico from site roots. To get a normal picture out, convert .ico to PNG locally — Legacy File Converter does it on your own PC, nothing uploaded.
What is a .ico file?
A .ico file is the Windows icon format. Most image files hold one picture; an ICO file holds an icon resource — a small collection of images that all show the same icon, each drawn at a different size and/or color depth. Microsoft’s own explainer, John Hornick’s Icons article dated 29 September 1995, puts it plainly: a single ICO file, or an icon resource inside an EXE or DLL, “can contain multiple icon images, each with a different size and/or color depth.”
That is why the search “what is a .ico file” usually comes from someone who found one in a program folder, a website download, or an old project and wonders why their photo viewer shows only a tiny square — or nothing at all. The file is valid; it is just a container of icon images, not an ordinary photo. For related still formats on this site, see History Lesson: What Is a .bmp File? and History Lesson: What Is a .png File?.
Early Windows icons and the one-size era
Icons have been part of Windows since its earliest desktop shells, but the early system thought in one icon size. Microsoft’s 1995 article notes that the original icon functions such as LoadIcon, ExtractIcon, and DrawIcon were “left over from 16 bit days, when the system defined only one icon size,” and they stretch whatever they get to the standard large size.
With Windows 95 and the Windows NT versions that followed, Windows tracked small and large icons for both the system and the shell, and new functions (the Ex variants, LoadImage, DrawIconEx) could ask for a specific size. The 1995 guidance encouraged developers to ship at least 16×16 and 32×32 in 16 colors plus 48×48 in 256 colors. The format had been able to hold odd sizes for a long time; Windows was catching up to use them.
One file, many sizes and color depths
When Windows needs an icon, it looks through the images in the resource. Per Microsoft’s 1995 rules, it picks the image closest in size to the one requested; if several share that size, it prefers the one that matches the display’s color depth, otherwise the deepest one that does not exceed it. Smaller sizes are not just shrunken copies — designers often redraw them so a 16×16 version stays readable.
Microsoft’s Windows Vista icon guidelines later listed the full set for application icons as 16×16, 32×32, 48×48, and 256×256, with 32-bit (alpha included) art plus 8-bit and 4-bit palette versions for situations such as remote desktop. One small .ico can therefore hold a dozen or more images, which is exactly what you see when you open it in an icon editor.
Many pictures, one icon
If a viewer shows a different-looking or tiny image, it probably picked one entry out of several. Converting to PNG usually means choosing an entry — normally the largest — and exporting it.
How a .ico file is laid out
The structure is short enough to describe in a paragraph. The file begins with an ICONDIR header of three 2-byte words: a reserved value that must be 0, a type that is 1 for icons, and a count of images. Next comes one ICONDIRENTRY per image — 16 bytes each — giving the image’s width, height, color count, planes, bits per pixel, the number of bytes of image data, and the offset where that data starts in the file.
Each classic image is a DIB (device-independent bitmap) — a BITMAPINFOHEADER, an optional color table, the XOR mask (the color pixels), and a 1-bit AND mask that marks transparent areas. Microsoft notes a classic gotcha: the header’s height is the combined height of both masks, so it reads as double the real icon height. In the same family, icons stored inside EXE and DLL files use nearly the same structures as RT_GROUP_ICON and RT_ICON resources.
PNG inside the icon since Windows Vista
Bigger icons made bitmap data heavy. A 2008 MSDN Magazine article on decoding Windows Vista icons explains that as the bitmaps grew they consumed too much space on disk and in memory, so Microsoft chose PNG: icons in Windows Vista can embed PNG images instead of DIBs, which made 256×256, 32-bit icons practical at a fraction of the size. Microsoft’s Vista guidelines say only the 256×256 image should be compressed, keeping smaller sizes in the classic form.
A one-byte width or height field cannot store 256, so a 0 in the directory entry is read as 256. To software written before Vista, a PNG-compressed entry is unfamiliar data, which is one reason some older tools choke on modern .ico files even though Windows itself shows them fine.
Old tool, new icon
An editor from the Windows XP era may open the small bitmap entries of a modern icon but fail on the 256×256 PNG entry — or reject the whole file. The icon is not damaged; the reader is simply older than the PNG-in-ICO addition.
The .cur cursor sibling
Mouse pointers use a near-identical format with the .cur extension. Microsoft’s 1995 article says cursors are “very similar to icons” — so similar that its sample icon editor could read .CUR files by relaxing one check: the header type of 2 for cursors instead of 1 for icons. The 2008 MSDN article repeats the rule: the second word is 1 for icons and 2 for cursors.
The meaningful extra in a cursor is the hotspot, the pixel coordinates that count as the pointer’s tip. As Raymond Chen describes on The Old New Thing, cursor image resources begin with an x and y hotspot before the bitmap data. Animated cursors (.ani) are a separate format and not part of this lesson.
favicon.ico on the web
The .ico format escaped the desktop through the browser. Internet Explorer 5, released in March 1999, would request a file named favicon.ico from the root of a site when a user added it to Favorites, and show that icon in the Favorites list. Raymond Chen later explained that IE only looked for it when a page was added to Favorites, not on every visit, to avoid straining servers. Pages could also point to a different location with a link element in the HTML.
Browsers today accept other formats for site icons, yet many sites still keep a favicon.ico at the root, and Microsoft’s IE team noted that ICO’s ability to hold multiple sizes suits the many places a site icon appears — tabs, favorites, shortcuts. So a .ico in your Downloads folder is often just a site icon saved from the web.
How to convert .ico to PNG locally
Renaming .ico to .png does not work: the file starts with the ICONDIR header, not a PNG signature, and may hold many images. A real conversion reads the directory, picks an entry — usually the largest — decodes the bitmap or PNG data, applies the transparency mask, and writes a normal PNG that keeps the alpha channel. Choose JPG only if you do not need transparency.
Legacy File Converter opens .ico files on your own Windows PC and converts them to PNG or JPG — nothing is uploaded, which matters when the icons belong to a client project or internal app. It is a quiet way to turn legacy files like old icon sets into pictures any app can open. For neighboring lessons, see BMP, PNG, and WebP.
Related reading
Ready to open your old files?
Start free, then unlock unlimited conversions with a one-time $79.95 Standard license. Download the Windows installer — full features for up to 10 files.
Free trial
Full app features · up to 10 files
Windows 10 or 11
Same free trial as always — download the Windows installer and convert locally on your PC.
Direct Windows installer · offline MSI
Is this safe? — publisher, installer, and SmartScreen help
Requires Windows 10 or 11. No subscriptions. 100% Windows Native.