Convert BMP to ICO

Converting BMP to ICO produces the icon container Windows and browsers expect, holding 16, 32 and 48 pixels in one file by default. Two things decide whether the result is usable: nothing in an ICO goes above 256 pixels, and the icon can only be transparent if the bitmap was — most are not. It runs in your browser.

  • Where it runs In your browser. The file is never uploaded.
  • Lossy Some detail is traded for size. ICO cannot hold everything a BMP can.
  • File size limit Up to 100 MB per file, free, without an account.
  • Worth knowing Scaled down to icon sizes; detail beyond 256 pixels is discarded.

Up to 100 files at once. Mixed formats are fine.

What BMP to ICO actually does

BMP 450 KBICO 139 KB 3.2× smaller

A photographic scene — smooth gradients, soft edges, grain. This is the case ICO is designed for or against, and the figures show which. Both images are drawn in code and encoded by the same converter that runs on this page, so the sizes are this site's own output.

BMP 450 KBICO 7 KB 64.4× smaller

A transparent background and a gradient across the shape. ICO either keeps both, keeps one, or fills the transparency with a solid colour — which is the difference that catches people out. Both images are drawn in code and encoded by the same converter that runs on this page, so the sizes are this site's own output.

BMP 450 KBICO 3 KB 175.2× smaller

Flat colour and hard edges, as in an interface, a chart or a logo. Very different behaviour from the photograph above, and the reason the answer is "it depends what is in the file". Both images are drawn in code and encoded by the same converter that runs on this page, so the sizes are this site's own output.

ICO and BMP started out as the same bytes

Both are Microsoft formats and they are close relatives: ICO dates from 1985, BMP from 1987, and an ICO originally was a bitmap with an index in front of it. The container exists to hold several images of different sizes so that Windows can pick the right one for a desktop, a menu or a taskbar.

That shared ancestry is why a bitmap is such a common starting point for an icon and why the conversion is so direct. It is also why the format’s constraints look old-fashioned — the size field is one byte wide, which is a decision from 1985 that the rest of this page keeps running into. The registry classes ICO as niche and BMP as legacy, and both descriptions are fair; what keeps ICO in use is that browsers still ask every site for a file called favicon.ico, and what keeps BMP in use is that Windows tools still write it.

The ICO you get holds 16, 32 and 48 pixels

The container holds a set, and a well-made favicon is a set — 16, 32 and 48 pixels in one file so that every context gets an image at its own size instead of scaling a large one. That is what the default here writes: three directory entries, three PNGs, largest first, all from the one bitmap you dropped in. "All common sizes" extends it to 64, 128 and 256; "256 px only" writes the single large entry a build tool sometimes asks for.

What no converter can do is redraw. The 16-pixel entry is your bitmap reduced to 16, not a mark somebody sat down and re-cut at that size with the strokes snapped to whole pixels — and at 16 pixels a letterform is four or five pixels tall, so the difference between legible and smudged is which pixels a person chose to keep. Getting the set out of one file is most of the benefit; the last part of it is still a design job, and GIMP or IcoFX will let you swap a hand-drawn 16 into the file this page produces.

The ceiling is 256 pixels on the longest edge

Anything larger is scaled down before it is written, and the detail beyond that point is discarded. This is the format’s limit rather than the converter’s: the width and height fields in an ICO directory entry are a single byte each, and 256 is stored as zero because the value does not fit in a byte.

So there is no benefit in starting from a 4000-pixel bitmap. The scaling is done in two smoothed canvas passes, down to 256 pixels and then to each requested size, which handles a large reduction reasonably, but nothing recovers the fact that fine detail simply cannot be seen at icon sizes. Artwork with thin lines and small text needs to be simplified by a person, not by a resampler.

A 24-bit bitmap gives you an opaque square

This is the most common disappointment in this conversion and it happens before the file ever reaches this page. The great majority of BMP files are 24 bits per pixel, and 24 bits per pixel has no room for an alpha channel — every pixel is opaque, including all the ones that look like background.

So a logo drawn on white in Microsoft Paint becomes an icon of a logo on a white square, and it will show as a white square against a dark taskbar or a dark browser tab. No conversion fixes this, because there is nothing in the file that says which white is the background and which white is part of the drawing — a rule that removed one would sooner or later remove the other. The transparency has to be created in an editor and the file saved as a 32-bit BMP or a PNG before this step. GIMP does it in a minute and is free; so does Paint.NET, which the registry lists for PNG.

Where the ICO carries transparency, it survives

The 32-bit BMP variants do hold an alpha channel, and ICO holds one too, so a bitmap that genuinely has a transparent background produces an icon that has one. Nothing on this path flattens the image or asks for a fill colour.

Soft edges survive as soft edges as well, which matters more at icon sizes than at any other. A 32-pixel icon is mostly edge, and the difference between an anti-aliased outline and a hard one is the difference between something that looks drawn and something that looks like a scaled-down screenshot.

What is actually inside the ICO file

A six-byte header, sixteen bytes of directory per size, then a PNG for each. The format allows a raw uncompressed bitmap instead — that is what an ICO originally contained — but every version of Windows since Vista reads a PNG inside an ICO, and the file comes out a fraction of the size.

It is worth knowing because it explains the file sizes. A 256 by 256 image at four bytes per pixel is about 262 KB as a raw payload, and the same image as a PNG is typically a small number of kilobytes — with no loss whatever, since PNG is lossless and the pixels are the ones the bitmap held. It also explains something counter-intuitive about the size sets: the three-size default is usually a smaller file than the single 256, because three small PNGs of a flat mark cost less than one large one. Measured on a logo, 1,062 bytes against 2,229. There is no reason to pick the single entry to save weight.

Choosing the size to start from

Somewhere between 256 and 512 pixels square is the useful range for a source bitmap. Below the largest size you asked for, the image is enlarged to fill it — a 90-pixel bitmap converted with "256 px only" is a 90-pixel bitmap blown up, and it looks like one. The default set never runs into that, since almost every bitmap is larger than 48 pixels. Far above 512 you are handing the resampler more detail than it can keep, which does not improve the outcome either.

Square matters too, though not for the reason it used to. Every entry is square, and a 1000 by 400 bitmap is centred on that square at the largest scale that fits, with transparency filling the space above and below — so it is not stretched and not cropped. It is drawn small: two fifths of the height of the icon, in a slot where the neighbours fill theirs. Crop or pad the artwork to a square in an editor first, with transparency rather than white unless you are certain what will sit behind it. A wide wordmark almost never works as an icon at all; the usual answer is to use the initial or the symbol from it instead.

Where the finished ICO has to sit

For a website, the root of the domain as favicon.ico is still fetched by browsers whether or not the page links to it, and a link element in the head points at it explicitly. For a Windows application the ICO goes into the resources the build embeds; for a shortcut it can live anywhere the shortcut can reach.

The registry classes ICO as niche and lists its use as the web, which is the honest description in 2026: it is a format kept alive by one filename and one operating system convention. Everywhere else, a PNG is the icon.

Start from vector artwork when there is any

If the logo exists as an SVG, that is the better source and it is a different page. Vector artwork is rendered rather than resampled on the way in, so the 256-pixel image every size is made from has clean, once-antialiased edges instead of the edges of whatever exported the bitmap — and that difference is still visible after the reduction to 32.

The bitmap route is right when the vector does not exist — the artwork was drawn in a raster tool, or the only copy is what an old toolchain exported. That is a common situation and this page exists for it, but it is worth thirty seconds of looking for the vector first.

Nothing about the icon leaves your machine

The bitmap is decoded by the browser, scaled in a canvas once per size, encoded as a PNG each time and wrapped in the ICO container, all in the same tab. There is no upload, no account and no daily allowance, and the whole thing finishes faster than a server-based converter would take to receive the file.

It matters more than the size of the job suggests, because icons are branding work and branding work is routinely under embargo. A logo for an unannounced product is exactly the kind of file that should not be handed to a third party in exchange for a scaling operation your browser can do.

How to make an ICO from a BMP

  1. Make sure the artwork is square and, if it needs a transparent background, that the bitmap actually has one.
  2. Drop the BMP onto this page and pick the size set — the default is 16, 32 and 48.
  3. Download the ICO and place it at the site root or in your application’s resources.

BMP and ICO: two Microsoft formats that used to be one

BMP compared with ICO
BMPICO
Full nameWindows BitmapWindows Icon
File extension.bmp, .dib.ico
Media typeimage/bmpimage/x-icon
CompressionUncompressedLossless — nothing is discarded
First published19871985
Published byMicrosoftMicrosoft
LicensingPublished, not standardisedPublished, not standardised
Standing todayLegacy, still read everywhereNiche
Bit depth88
Colour it can describeRGB, indexed paletteRGB, indexed palette
Largest image256 px per side
Opens in a browserEvery browserEvery browser
Considered insteadPNG, TIFFPNG, SVG

What the target format adds

ICO supports transparency and BMP does not. That is room the result has and the original never used — converting does not create a transparent background, it only makes one possible afterwards.

Opening the result

GIMP reads both BMP and ICO, so there is a way to check the result against the original without a second tool.

File size and quality

ICO packs the same samples into roughly half the space. Nothing is discarded — decode it and you get the BMP back bit for bit — which makes it the better shelf for anything you intend to keep.

What each format is for

The two are aimed at different work: BMP at moving data between programs, ICO at the web. That is worth weighing before converting, because the reason one exists is usually the reason the other is awkward.

BMP is Microsoft's format, published in 1987. It records 8 bits per channel.

ICO comes from Microsoft and dates from 1985. GIMP and IcoFX all read it.

BMP to ICO: sizes, transparency and where the file goes

Are my BMP files uploaded anywhere?

No. This conversion runs entirely inside your browser, so the file never leaves your device. You can confirm it yourself: open the network tab of your browser's developer tools and convert something. You will see the page load, plus the analytics and advertising the site is paid for with — and nothing carrying your file. The engine behind this particular pair is jSquash, WebAssembly builds of the reference image codecs; your browser fetches it once and caches it.

How many sizes does the ICO contain?

As many as you ask for. The "Icon sizes" control defaults to the classic three — 16, 32 and 48 pixels, written into one file as three separate images — and also offers all six common sizes up to 256, or a single 256-pixel entry for a build tool that wants one.

What is the largest icon I can make?

256 pixels on the longest edge. That is the ceiling in the ICO format itself — the size field is a single byte, and 256 is written as zero because it does not fit. Anything larger is scaled down and the extra detail is discarded.

Why does my icon have a white square behind it?

Because the bitmap did. Most BMP files are 24-bit and hold no transparency at all, so whatever the artwork was sitting on is part of the picture. A converter cannot separate a logo from its background; that has to be done before the file becomes a BMP.

Does the ICO keep transparency if the BMP has it?

Yes. The 32-bit BMP variants carry an alpha channel and ICO carries one too, so a bitmap that genuinely has a transparent background produces an icon that does.

What is actually inside the .ico file?

A PNG per size, behind a directory that says where each one starts. The format also allows a raw bitmap payload — that is what it originally meant — but every Windows since Vista reads a PNG inside an ICO and the file comes out a fraction of the size.

Is the bitmap uploaded to make the icon?

No. The decode, the scaling and the PNG that goes inside the ICO all happen in your browser. An icon is a small job, so the whole thing is finished before a server-based converter would have finished the upload.

More about these formats