Skip to main content

BMP to ICO converter

Convert BMP images to ICO format

No watermarkFree & unlimited
All processing happens in your browser. No data is sent to any server.

This pair is closer than it looks. An ICO is a directory header wrapped around what is essentially a bitmap: the same BITMAPINFOHEADER, the same bottom-up rows, the same BGRA layout. Converting is mostly rescaling to icon dimensions and rewriting the header. This page does that at a fixed 32 by 32 pixels in 32-bit colour, the classic Windows shell icon size and the size a browser asks for when it wants a favicon. It produces one image entry, not a multi-resolution icon set.

Key facts about BMP to ICO converter

Key facts about BMP to ICO converter
Output dimensionsAlways 32 by 32. Whatever the bitmap measures, it is scaled to that square, and the resize presets are hidden because the size is not adjustable.
Output file sizeExactly 4,158 bytes every time: a 6-byte directory, a 16-byte entry, a 40-byte info header and 4,096 bytes of uncompressed BGRA.
Colour depth32 bits per pixel. Unlike the source bitmap, which is normally 24-bit BGR, the icon reserves a full byte for alpha on every pixel.
TransparencyThe alpha byte is written from the canvas, so a 32-bit bitmap that decoded with alpha keeps its soft edges. A standard 24-bit bitmap yields a solid square.
Icon entriesOne. Real Windows icons often pack 16, 32, 48 and 256 pixel versions together; this writer emits a single 32-pixel entry, so Windows scales it up for large-icon views.
CompressionNone. The payload is raw pixels, not the PNG-compressed entry that modern 256-pixel icons use.
Aspect ratioNot preserved. A wide bitmap is squashed into the square rather than letterboxed, so crop to a square first if proportions matter.
Opens the resultWindows Explorer, the taskbar and shortcut properties, Visual Studio resource editors, GIMP, and every browser as a favicon at the site root.

What happens to your file

Everything happens in the tab you are looking at. The bitmap becomes an object URL, your browser's own BMP decoder turns it into pixels, and those pixels are drawn twice: into a working canvas and then into a 32 by 32 canvas that supplies the icon payload. The icon is assembled byte by byte with a DataView in this page's JavaScript, writing the directory and header fields little-endian before appending the BGRA rows bottom-up. No server call occurs anywhere in that sequence.

About this tool

  1. 1

    Crop to a square first

    Optional but worth it, since the icon is written at 32x32 regardless of the source aspect ratio.

  2. 2

    Load the bitmap

    Drag the .bmp onto the drop area or browse for it. Up to twenty bitmaps queued gives twenty icons.

  3. 3

    Convert

    Press Convert. There is no quality slider and no size choice, only the notice confirming the fixed 32x32 output.

  4. 4

    Download and place it

    Save the .ico. For a website, put it at the site root as favicon.ico; for Windows, point a shortcut or application resource at it.

Specs & compatibility
Input and outputTakes .bmp only (image/bmp) and returns .ico with the image/x-icon type; any other extension is refused before decoding.
Conversion pathBMP to ICO runs in three steps: an <img> element decodes the bitmap, 24-bit and 32-bit variants alike; the pixels land on a 2D canvas in this tab; then the canvas is redrawn at 32x32 and an icon writer in the page emits the directory and the DIB.
Browser supportThe bitmap side decodes in every current browser, while writing the ICO needs nothing from the browser, the icon being assembled in the page.
Controls for this pairNo quality slider and no resize presets: BMP to ICO is pinned to 32x32 pixels, which the page says above the convert button.
Batch, caps and namingTwenty BMP files per run at 500 MB each; one result downloads as a single ICO, several as converted-ico-files.zip, zipped by JSZip 3.10 in page memory.
Device ceilingThe canvas caps it: past roughly 16,384 px a side Chromium refuses the bitmap and iPhone Safari gives up sooner, so an oversized BMP fails before any ICO bytes exist.
  • Bold high-contrast shapes survive the shrink to 32 pixels; thin outlines and small lettering do not, so simplify before converting.
  • A bitmap that already measures 32x32 or 64x64 scales cleanly and the icon will match the source almost exactly.
  • Windows caches icons aggressively, so a shortcut still showing the old picture is usually a shell cache issue, not a bad file.
  • A 32-pixel favicon looks soft on a high-density display next to a PNG declared at 180 pixels for touch icons.
  • Fixed 32x32 single-entry icon output
  • Full 32-bit BGRA with an alpha byte per pixel
  • Icon bytes written with DataView in the page
  • Up to twenty bitmaps converted in one run
  • Turning a bitmap logo from an old brand kit into a favicon.ico for a site root.
  • Giving a compiled Windows application or a desktop shortcut a custom icon resource.
  • Producing an icon for a legacy internal tool whose build script expects an .ico path.
Not here. The writer is hard-coded to a single 32 by 32 entry, the size Windows uses for shell icons and the size browsers historically request. A true multi-resolution icon packs several images plus a PNG-compressed 256-pixel entry, which needs an icon editor.
Because the payload is uncompressed and the dimensions are fixed. 32 times 32 pixels at four bytes each is 4,096, plus a 6-byte directory, a 16-byte entry and a 40-byte header, giving 4,158 bytes. A photo and a blank square produce identically sized files.
Only if the bitmap genuinely has an alpha channel and your browser decoded it. Most .bmp files are 24-bit with no alpha, so the icon is an opaque square. For a transparent icon, start from a PNG, which stores alpha reliably and is decoded with alpha everywhere.
It converts fine, but the browser scales roughly two million pixels into 1,024. Everything except large shapes and strong colour blocks disappears. Crop to the one element you want recognisable at icon size first.
Yes. The file is a standard single-entry ICO with a 32-bit DIB payload, the most widely supported icon layout there is, and Chrome, Firefox, Safari, Edge and Windows Explorer all read it. The only thing missing is a crisper retina variant.
View all

Need the opposite? Try ICO to BMP

Updated

We use anonymous analytics to improve ToolChamp. No personal data is stored or sold. Privacy Policy