What is an ICO file? The icon format explained
An ICO file is a small container that stores several versions of the same icon at different sizes. Windows, browsers and many build tools pick the size that fits best, so one .ico can look sharp everywhere from a 16 px browser tab to a 256 px desktop tile.
One file, many images
Unlike PNG or JPEG, an .ico is not a single picture. It starts with a tiny 6-byte header, followed by a directory with one 16-byte entry per image. Each entry records the width, height, color depth, byte length and offset of an embedded image. A typical application icon contains 16, 24, 32, 48, 64 and 256 px versions.
Because each size is stored separately, a designer can hand-tune the small versions — thicker lines, fewer details — instead of relying on automatic downscaling. That is the main reason the format is still used.
PNG entries vs BMP entries
Each image inside an ICO is stored either as a PNG stream or as a BMP/DIB bitmap (a BMP without its file header, plus a 1-bit transparency “AND mask”).
- PNG entries are compressed and small. Since Windows Vista they are the norm for the 256×256 image.
- 32-bit BMP entries store raw BGRA pixels with full alpha. They are larger but understood by every Windows version and older tools.
- Old icons may contain 1-, 4- or 8-bit palette images. Modern software rarely needs them.
A widely compatible recipe — and what Make ICO writes by default — is PNG for 256 px and 32-bit BMP for everything smaller. You can switch to “PNG for all sizes” for smaller files when you only target modern systems.
Where ICO files are still required
| Use | Is ICO needed? |
|---|---|
| Windows .exe / app icon (Visual Studio, Electron, PyInstaller, Tauri) | Yes — the build tools expect an .ico |
| Folder and shortcut icons in Windows | Yes |
| /favicon.ico at the site root | Recommended for old browsers, RSS readers and tools that request it automatically |
| Modern browser tabs | Optional — PNG and SVG work too |
| macOS / iOS / Android apps | No — they use .icns, PNG asset catalogs or adaptive icons |
Size limits
The directory stores width and height in a single byte, where 0 means 256. That makes 256×256 the largest standard size. Some tools write bigger images, but Windows will not display them reliably, so stay at or below 256.
How to create and inspect ICO files
- To convert an existing logo, use Image to ICO and pick the sizes you need.
- To design an icon from scratch with text, images and pixel tools, open the Icon Editor.
- To see which sizes an existing .ico contains, or to extract them as PNG, use the ICO Viewer.
FAQ
Can I just rename a PNG to .ico?
Some browsers will still show it, but Windows and build tools will reject it. Convert it properly so the file has a real ICO header and directory.
What is the maximum ICO size?
256×256 pixels per image. One file can hold many images, so total file size depends on how many sizes you include.