Skip to main content

ICO to BMP converter

Convert ICO images to BMP format

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

There is a genuine family resemblance here: the payload inside a classic icon entry is a device-independent bitmap, the same info header and bottom-up BGR rows a .bmp uses, so this conversion is largely unwrapping. The one real difference is alpha. Icon entries reserve a byte for it, and the bitmap this page writes is 24-bit with no alpha at all, so transparency is discarded and the pixels behind it come out black. That is the fact to plan around.

Key facts about ICO to BMP converter

Key facts about ICO to BMP converter
Format relationshipAn icon directory entry wraps a DIB with a 40-byte info header, which is what a .bmp contains after its 14-byte file header. The unwrapping is close to lossless.
Alpha discarded to blackThe writer stores 24 bits per pixel and copies only blue, green and red. A transparent canvas pixel reads back as zero everywhere, so those areas land solid black.
Output size for a 32 pixel iconExactly 3,126 bytes: a 54-byte header plus 32 padded rows of 96 bytes. A 256 pixel entry gives 196,662 bytes.
Size formula54 bytes plus the height times the row width rounded up to a multiple of four. Icon widths are powers of two, so no padding is ever wasted.
Pixel fidelityExact. No lossy codec is involved, so every colour value the browser decoded from the icon entry is written unchanged.
Which entryOne image per icon file. A container holding 16, 32, 48 and 256 pixel versions yields a single bitmap, chosen by the browser.
Bit depth of the outputAlways 24-bit with no colour table, even when the icon entry was a 4-bit or 8-bit palette image that would fit in far fewer bytes.
Opens the resultWindows Paint and Photos, Visual Studio resource editors, legacy Delphi and Visual Basic image controls, GIMP, Photoshop and ImageMagick.

What happens to your file

The bitmap is built in your tab from start to finish. Your icon becomes an object URL, the browser's own icon decoder resolves the container and produces pixels for an Image element, and those pixels are drawn onto a canvas this page created. The page reads the canvas back with getImageData and walks the rows in reverse, writing blue, green and red bytes into an ArrayBuffer through a DataView. No request leaves the browser.

About this tool

  1. 1

    Load the icon file

    Drag a .ico onto the drop area or click to browse. Twenty files per batch, well beyond what any icon set needs.

  2. 2

    Decide about the background

    If the preview shows checkerboard, flatten the icon onto the colour you want first, because the bitmap makes those areas black.

  3. 3

    Convert

    Press Convert. There is no encoder to run, so the write is essentially instantaneous even for a full batch.

  4. 4

    Download the bitmap

    Save the .bmp, or take converted-bmp-files.zip which is assembled inside the browser for multi-file runs.

Specs & compatibility
Input and outputTakes .ico only (image/x-icon) and returns .bmp with the image/bmp type; any other extension is refused before decoding.
Conversion pathICO to BMP runs in three steps: an <img> element decodes the icon and the browser picks one entry from a multi-size file; the pixels land on a 2D canvas in this tab; then getImageData feeds a 24-bit BI_RGB writer that assembles the file in page memory.
Browser supportThe icon side decodes in Chrome, Edge, Firefox and Safari, while writing the BMP needs nothing from the browser, the bytes being assembled in the page.
Controls for this pairNo quality slider, BMP not being a lossy target here, so the max-dimension presets from 3840 down to 200 px are the only way to hold the BMP down in size against the ICO.
Batch, caps and namingTwenty ICO files per run at 500 MB each; one result downloads as a single BMP, several as converted-bmp-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 ICO fails before any BMP bytes exist.
  • Icons are tiny, so the usual warning about huge uncompressed bitmaps does not apply: a 32-pixel icon makes a three kilobyte file.
  • Legacy toolchains asking for a bitmap often want a specific size, so check before converting a 256-pixel entry.
  • Black edges around your artwork are the discarded alpha showing; no setting here changes the fill colour.
  • Keep the .ico itself for anything Windows loads as an icon resource, since a bitmap cannot serve that role.
  • Uncompressed 24-bit BGR bitmap output
  • Bottom-up rows padded to four bytes
  • Exact pixel pass-through with no codec
  • Twenty icons per run, zipped in the tab
  • Supplying an image to a legacy Windows application or installer that loads only .bmp resources.
  • Getting icon artwork into an embedded toolchain that reads raw bitmaps.
  • Preparing a splash or button graphic for an old Visual Basic or Delphi form.
The bitmap written here is 24-bit with no alpha channel, and the writer copies only the colour bytes from each canvas pixel. A pixel the icon declared transparent arrives as zero in all four channels, and zero RGB is black. Composite the icon over your desired background in an editor before converting.
Not from this page. The writer is fixed at 24 bits per pixel with compression set to none, which is the most widely readable bitmap layout. Thirty-two-bit bitmaps with a real alpha channel exist but support is inconsistent. PNG is the target that keeps transparency reliably.
Small, because icons are small. A 32 by 32 entry produces exactly 3,126 bytes and a 256 by 256 entry produces 196,662. The formula is 54 header bytes plus three bytes per pixel with rows padded to a four-byte boundary, and icon dimensions are powers of two so the padding costs nothing.
Just one, chosen by your browser rather than this page. An icon can hold several resolutions and the decoder surfaces a single image, with different browsers picking differently. Extract the size you want with an editor such as GIMP.
No. Both formats store raw pixel values with no lossy compression, so colours are reproduced exactly. What is lost is structural: the alpha channel, the other entries in the container, and the palette organisation. The picture is otherwise unchanged.
View all

Need the opposite? Try BMP to ICO

Updated

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