User Rating 0.0
Total Usage 0 times

Drop BMP file here or click to upload

Supports .bmp files up to 50MB

Is this tool helpful?

Your feedback helps us improve.

About

The ICO format stores multiple image resolutions within a single file, enabling Windows to select optimal icon sizes for different display contexts - taskbar (16×16), desktop (48×48), or high-DPI tiles (256×256). Shipping a single-resolution icon causes forced scaling, producing blurred edges and aliasing artifacts that degrade professional appearance. This converter constructs a valid ICO binary by embedding PNG-compressed frames for each selected dimension, following Microsoft's modern icon specification. Source BMP images are decoded natively, scaled using high-quality bicubic interpolation, then encoded into the multi-image container structure. Note: input images with aspect ratios deviating from 1:1 will be center-cropped to square before scaling.

bmp to ico icon converter favicon generator image converter ico creator windows icon

Formulas

The ICO file format consists of a header structure followed by concatenated image data. Each entry in the icon directory points to its corresponding image offset within the file.

ICO = ICONDIR + ICONDIRENTRY[n] + ImageData[n]

The ICONDIR header occupies 6 bytes:

ICONDIR = { Reserved: 2B, Type: 2B, Count: 2B }

Each ICONDIRENTRY is 16 bytes, describing one embedded image:

Entry = { W: 1B, H: 1B, Colors: 1B, Reserved: 1B, Planes: 2B, BPP: 2B, Size: 4B, Offset: 4B }

Image offset calculation for the i-th image:

Offseti = 6 + (16 × n) + i1j=0 Sizej

Where n is total image count, Sizej is byte length of image j. For 256×256 icons, width/height bytes store 0 (special encoding).

Reference Data

Icon SizeTypical Use CaseWindows ContextRecommended Source
16×16Favicon, title barSmall icons view, browser tabs64px source
24×24Toolbar buttonsWindows Explorer toolbar96px source
32×32Desktop shortcut (standard)Default desktop icon size128px source
48×48Desktop shortcut (medium)Medium icons view192px source
64×64Large list viewLarge icons in Explorer256px source
128×128Extra large iconsExtra large icons view256px source
256×256High-DPI, tilesWindows 10/11 tiles, jumbo view256px source
ICO Format Limits
Max images255 images per ICO file (practical limit)
Max dimension256×256 pixels (stored as 0 in header byte)
Color depth32-bit RGBA (8 bits per channel + alpha)
CompressionPNG for ≥48px (Vista+), raw BMP DIB for legacy
BMP Input Requirements
Bit depth24-bit or 32-bit recommended
CompressionUncompressed (BI_RGB) or RLE supported via Canvas
Min size16×16 pixels
Ideal source512×512 or 1024×1024 for best downscale quality

Frequently Asked Questions

The ICO format uses a single byte for dimensions, limiting values to 0 - 255. A value of 0 is interpreted as 256 pixels. This convention was established in Windows Vista when large icon support was added. The converter handles this encoding automatically.
Include at minimum 16×16, 32×32, and 256×256 for modern Windows compatibility. The operating system selects the closest size and scales if exact match unavailable. Omitting intermediate sizes forces scaling, which degrades quality. For web favicons, 16×16 and 32×32 suffice.
Standard BMP files lack an alpha channel (24-bit). If your source is a 32-bit BMP with embedded alpha (BITMAPV4/V5 header), the browser's Canvas API may decode it correctly. For guaranteed transparency, use PNG sources instead. This converter processes whatever alpha data the browser extracts from the decoded image.
Icons require 1:1 aspect ratio. Non-square images are center-cropped to the largest possible square region before scaling. To preserve your entire image, pad it to square dimensions in an image editor before conversion, using transparent or solid background fill.
ICO is Windows-specific. macOS uses ICNS format (Apple Icon Image), and Linux desktop environments typically use PNG or SVG. For cross-platform applications, generate separate icon formats for each OS. This converter targets Windows executables, shortcuts, and web favicons.
An ICO file contains multiple complete images. Selecting 7 sizes means 7 separate PNG-compressed images stored sequentially. A 256×256 frame alone can exceed 100KB depending on image complexity. Reduce selected sizes or simplify source artwork to decrease file size.