ICO Generator
Convert an image into a real multi-size .ico icon file.
How to Use the ICO Generator
Upload any image, if it isn't already square, it's automatically center-cropped to a square first. Click "Download .ico File" to get a genuine Windows .ico file with four sizes (16×16, 32×32, 48×48, and 64×64) bundled inside a single file, ready to use as a desktop application icon or a classic favicon.ico.
What's Actually Inside a Real .ico File
An .ico file isn't a single image, it's a small binary container holding several images at once, and this tool builds one following the exact structure Windows expects. It starts with a 6-byte ICONDIR header made of a reserved field, an image-type flag, and a count of embedded images, in this case 4. Right after that comes one 16-byte ICONDIRENTRY record per image, each one recording that image's width, height, color depth, its byte size, and the file offset where its actual pixel data begins. For four sizes, the header plus entry table alone comes to exactly 6 + 4*16 = 70 bytes, before a single byte of real image data is added, and it's those per-entry offsets that let Windows Explorer, a taskbar, or a browser tab jump straight to whichever size it needs (say, the 16px version for a small tab icon) without decoding the whole file first.
Why Every Embedded Size Must Be Square
The ICO format has a hard rule baked into its structure: every image inside it is square, a size like 16x20 simply isn't representable. That's why any non-square upload gets automatically center-cropped first, this tool takes the shorter of the image's width or height as the square's side length, crops an equally-sized region from the center of the longer dimension, and only then scales that square down to each of 16, 32, 48, and 64 pixels. A wide landscape photo loses equal slices off its left and right edges, a tall portrait photo loses equal slices off its top and bottom, so for a predictable result it helps to start with a source image that's already square, or at least has its important subject matter centered rather than pushed to one edge.
Why File Size Varies by Image, Not Just by Pixel Count
Each of the four sizes is compressed independently as PNG before being embedded, and PNG's compression ratio depends heavily on what's actually in the image, not just its dimensions. A simple flat-color logo or a monoline icon compresses extremely well since PNG's lossless algorithm thrives on large runs of identical or gradually-changing pixels, often producing a complete four-size .ico under 5 KB. A detailed photographic image squeezed down to the same four small sizes compresses far less efficiently, since photographic noise and fine detail resist PNG's compression, and can end up several times larger even though the pixel dimensions are identical. The Estimated .ico Size card reflects this directly, since it's the real sum of all four compressed PNG byte sizes plus the fixed 70-byte header, not a rough guess based on resolution alone.
ICO vs. the Favicon Generator: Picking the Right Tool
This site's separate Favicon Generator tool exports individual PNG files at common favicon sizes, meant to be referenced by modern <link rel="icon"> tags that let a browser pick the best-fitting size itself. This ICO Generator instead produces one true binary .ico container bundling multiple sizes together, which is what Windows still expects for desktop application icons, taskbar shortcuts, and the classic favicon.ico convention that some browsers, RSS readers, and bookmark tools look for automatically at a site's root, with no <link> tag required at all. Most production websites ship both today: PNG favicons declared explicitly for crisp modern rendering, plus a root-level favicon.ico as the long-standing fallback, so it's common to use both tools for the same project rather than picking just one.
Nothing Leaves Your Browser
Every step in generating the file, the center-crop, the resize to each of the four target dimensions, the PNG compression of each size, and the final byte-level assembly of the ICONDIR header and ICONDIRENTRY table, runs using only the Canvas and DataView APIs already built into your browser. Your source image is never uploaded to a server, and neither is the finished .ico file, the whole pipeline from upload to download happens locally on your own device.
Frequently Asked Questions
How is this different from the Favicon Generator?
The Favicon Generator outputs separate PNG files at each size for use with modern HTML link tags. This tool outputs one genuine .ico container file with multiple sizes embedded inside it, the format specifically required for Windows desktop app icons and the traditional favicon.ico some tools and older browsers still look for.
Will this .ico file work as a Windows application icon?
Yes, the generated file follows the standard ICO container format with PNG-compressed image data inside, the same structure produced by dedicated icon-editing software, and is recognized by Windows Explorer, executable icon settings, and browsers.
What does an .ico file actually contain internally?
An ICO file starts with a 6-byte ICONDIR header (a reserved field, an image-type flag, and a count of embedded images), followed by one 16-byte ICONDIRENTRY record per image describing that image's width, height, color depth, byte size, and file offset. After that fixed-size table comes the actual image data for each size, one after another. For this tool's four sizes, the header and entry table alone total 6 + 4*16 = 70 bytes, before any actual pixel data is added, and each entry's offset field is what lets an operating system jump straight to the 32px or 64px version without reading the whole file.
Why does my source image get cropped to a square?
Every size embedded in an .ico file is square, that's a hard requirement of the format, a 16px icon is 16x16, never 16x20. If your uploaded image isn't already square, this tool automatically takes the largest centered square region it can (using the shorter of the width or height as the square's side) and crops to that before scaling down to each of the four target sizes. This means a wide landscape photo will lose its left and right edges, and a tall portrait photo will lose its top and bottom, for the cleanest result start with a square (or near-square) source image where the important content sits centered.
Why does the estimated .ico file size change with different images?
Each of the four embedded sizes is stored as a separately PNG-compressed image, and PNG compression size depends heavily on image content, a simple logo with large flat color areas compresses much smaller than a busy, detailed photo at the same pixel dimensions. Since the estimate sums the compressed byte size of all four PNGs plus the fixed 70-byte header and entry table, a simple flat-color icon might produce a file under 5 KB total, while a detailed photographic image squeezed into the same four sizes can produce a file several times larger.
Can I use this .ico file as a website favicon instead of PNG favicons?
Yes. Saving the download as favicon.ico in your site's root folder is still recognized automatically by every major browser without needing any <link> tag at all, a long-standing convention that predates the modern rel="icon" PNG approach. Most modern sites use both, PNG favicons declared via <link> tags for crisp rendering at exact sizes, plus a root favicon.ico as a fallback for older browsers, some RSS readers, and browser UI elements that still specifically request the .ico path.
Does this tool upload my image anywhere to build the .ico file?
No. The cropping, resizing, PNG encoding, and final byte-level ICO assembly (the ICONDIR header, the ICONDIRENTRY table, and the embedded image data) all happen using the canvas and DataView APIs built into your browser. Nothing about your source image or the generated icon is sent to any server, the same download-ready file could in principle be produced with your device completely offline after the page has loaded.