Back to All Learning Guides
Format Fundamentals•5 min read•Updated Oct 2026

What is ICO? Multi-Resolution Favicon Architecture and Windows Binary Packaging

Learn how the Windows ICO binary container works, why Google Search requires multi-resolution favicons, and how Squeeze packs 16px to 256px icons in-browser.

S
Squeeze Technical Architecture Team

Zero-Upload Client Architecture Research

AEO Answer Island • ICO Definition

The ICO format is a binary container file structure created by Microsoft for Windows desktop icons and universally adopted by web browsers for site favicons. Unlike standard raster formats, a single .ico file stores a multi-resolution image directory containing multiple discrete bitmap or PNG frames (such as 16×16, 32×32, 48×48, and 256×256 pixels) allowing operating systems and browser tabs to select the exact pixel resolution without runtime scaling artifacts.

1. History of the Windows Icon Resource File

Introduced in Windows 1.0, the ICO format was engineered to solve a fundamental operating system challenge: desktop icons appear in varied contexts across a computer desktop. A file might show as a 16×16 icon in a detailed list view, a 32×32 icon on the desktop grid, or a 256×256 preview in modern File Explorer windows.

2. Inside the Binary Container: Header, Directory, and Bitmaps

  • ICONDIR Header (6 bytes): Contains reserved bytes (0), resource type (1 for ICO, 2 for CUR cursor), and the count of contained image frames.
  • ICONDIRENTRY Array (16 bytes per image): Declares width, height, color count, color planes, bit depth, byte size, and byte offset pointing to where that image's raw payload begins.
  • Image Payloads: Historically raw DIB data; modern ICO files pack compressed PNG payloads for larger 256×256 frames.

3. How Squeeze Packs Compliant Multi-Resolution ICO Files In-Browser

Generating a binary container traditionally required specialized C++ utilities or server-side ImageMagick processes. Squeeze implements an in-browser binary packer using JavaScript ArrayBuffer and DataView:

  1. Your input image is rescaled to 16, 32, 48, and 256 pixel frames using HTML5 canvas bicubic filtering.
  2. Each frame's raw RGBA byte buffer is extracted and aligned.
  3. A compliant 6-byte ICONDIR and 16-byte ICONDIRENTRY table are assembled with accurate binary offset addresses.
  4. The complete buffer is output as a downloadable, multi-resolution favicon.ico in milliseconds.

Generate Your Production Favicon Now

Authoritative References

Squeeze Image Engine

Ready to convert or compress images with 100% privacy?

Experience zero server uploads. All WebP, PNG, JPG, SVG, and multi-resolution ICO conversions run entirely inside your browser using sandboxed Web Workers.