Initializing... drag & drop files here
Supports: BMP
.bmp image onto the upload area, or click "Add Files" to browse. Batch upload is supported — convert a folder of bitmaps to ICO in one session.BMP is Microsoft's device-independent bitmap format from 1987 — every pixel is stored uncompressed, which makes the files large but trivially decodable. ICO is the icon container Microsoft introduced in Windows 1.0 in 1985; it bundles one or more image frames at different sizes into a single .ico file so the operating system or browser can pick the resolution that fits the slot it needs. The two formats are closely related: a frame inside an ICO is structurally a BMP with the BITMAPFILEHEADER stripped off and a 1-bit AND mask appended below the pixel data, which is why BMP is the most direct source for ICO output.
favicon.ico is still the universal fallback every browser, including Safari, fetches from the site root when no <link rel="icon"> tag is present. A 32×32 ICO covers tab icons on high-DPI displays without scaling artifacts..exe icons — File Explorer reads ICO at 16, 32, 48, and 256 px depending on the view mode (Details, Medium Icons, Large Icons, Extra Large Icons). Shortcut .lnk files and Win32 executables embed ICOs directly.| Property | BMP | ICO |
|---|---|---|
| Introduced | Windows 2.0 (1987) | Windows 1.0 (1985) |
| Compression | None (raw pixels); optional RLE for 4/8-bit | Per-frame: uncompressed BMP, or PNG since Vista (2007) |
| Multi-image | Single image only | Multiple frames in one file (different sizes & depths) |
| Transparency | Only 32-bit BMP via alpha channel | 1-bit AND mask (all versions) + 8-bit alpha (since Win XP) |
| Color depths | 1, 4, 8, 16, 24, 32 bpp | 1, 4, 8, 16, 24, 32 bpp per frame |
| Max practical size | 32,767 × 32,767 px | 256 × 256 px (recommended ceiling) |
| Browser favicon support | No | Yes (all browsers, including IE) |
| Typical 32×32 file size | ~3 KB | ~1–2 KB (single frame) |
| MIME type | image/bmp |
image/vnd.microsoft.icon |
| Use case | Size | Notes |
|---|---|---|
| Browser tab (standard DPI) | 16×16 | Smallest size most browsers request; legibility is the constraint |
| Browser tab (Retina / high-DPI) | 32×32 | Modern Chrome, Firefox, Edge, and Safari downscale this for crisp 16px display |
| Bookmark / shortcut on desktop | 48×48 | Windows shortcut overlays; covered by the favicon.ico triple of 16/32/48 |
| Windows taskbar pin (PWA / desktop app) | 24×24 to 32×32 | Taskbar renders 24px at 100% DPI scaling, 32px at 150% |
| File Explorer "Large icons" view | 96×96 | Scaled up from 256 if 96 frame is missing |
| File Explorer "Extra large" / Start tile | 256×256 | The practical maximum; ship this if your icon will appear in tiles |
| Apple Touch / iOS home screen | 180×180 PNG | iOS ignores ICO for the home screen — serve a separate PNG |
For a standard favicon.ico, bundle 16, 32, and 48 in one file. Most online generators expect a 256×256 master source (BMP, PNG, or SVG) to derive the smaller frames cleanly.
Because the BMP frame inside an ICO drops the 14-byte BITMAPFILEHEADER and is usually exported at a smaller pixel resolution (the icon size you picked). A 256×256 32-bit BMP is roughly 262 KB raw; the same image at 32×32 inside an ICO is around 4 KB. If you picked the 256P preset and the ICO is still much smaller than the source BMP, your source was likely larger than 256px and was downscaled to the ICO ceiling.
It does for clean icons. ICO frames are square (16×16, 32×32, 48×48, 256×256). If you upload a non-square BMP and pick a square preset, the converter will downscale the longer edge and either letterbox or distort to fit. Crop your BMP to 1:1 first — paint.net, GIMP, or our crop image tool handles this in one step.
Standard 24-bit BMP files have no alpha channel — the background will stay opaque in the ICO. Only 32-bit BMP carries alpha. If you need a transparent icon, start from a PNG instead and use PNG to ICO. The ICO container itself supports both a 1-bit AND mask (since Windows 1.0) and a full 8-bit alpha channel (since Windows XP).
Pick 32×32 if you can only ship one frame. It is the size modern browsers actually request for Retina / high-DPI tabs, and they downscale it cleanly to 16px on standard displays. 256×256 is overkill for tab icons and will be downscaled at request time, costing CPU cycles for no visual gain. The Microsoft-recommended bundle is 16 + 32 + 48 together in one multi-resolution favicon.ico.
Yes, for two reasons. First, Safari only added SVG-favicon support in Safari 26 — every Safari version 18 and earlier (still a meaningful share of iOS and macOS users) falls back to a raster icon. Second, browsers fetch /favicon.ico from the site root automatically when no <link rel="icon"> tag is present, which makes ICO the universal default that ships even when the HTML head is misconfigured. The current best-practice markup is an SVG <link> plus an ICO fallback with sizes="any" so Chrome doesn't double-download both.
Because you converted from a larger BMP (say 256×256) directly to a 16×16 ICO and the downscaler smoothed away the pixel detail. Icons at 16px need to be hand-tuned: edges should land on pixel boundaries, fonts should use 1-bit anti-aliasing, and fine details should be removed. The professional workflow is to design a separate 16×16 source (or use a pixel-art editor) and bundle it as its own frame inside the ICO alongside the 32 and 48 versions.
.exe icon?Yes — the output is a standards-compliant .ico that Visual Studio's resource compiler, Resource Hacker, Electron's electron-builder, and Tauri's tauri.conf.json will all accept. For an .exe icon Microsoft recommends including 16, 24, 32, 48, 64, 128, and 256 frames so Explorer can render every view mode without runtime scaling.
No. Conversion runs in your browser session and the resulting ICO is identical to what you'd get from a desktop tool — no embedded watermark, no metadata pollution, no expiring download link. Anonymous sessions have a per-session cap but no daily limit on the number of BMP-to-ICO conversions.
Use ICO to JPG or ICO to PNG to pull out individual frames. There is no direct ICO-to-BMP route on xconvert because the BMP frame inside an ICO is a fragment (missing the file header, with the appended AND mask), so we extract to a clean standalone format instead.