Skip to main content
PulsarKit

BMP Converter

Turn BMP files into JPG, PNG or WebP, or save any photo back out as a BMP. Palettes, RLE compression and transparency are all handled.

Drop your files here

.bmp, .dib, .jpg, .jpeg, .png, .webp · up to 100 MB

How to convert a BMP image

  1. 1

    Drop your BMP or photo

    Up to 100 files at once. Both directions accept a mixed pile; anything that does not match the chosen direction is reported by name rather than silently skipped.

  2. 2

    Pick a direction and format

    BMP to photo gives you JPG, PNG or WebP. Photo to BMP writes a 24-bit file for maximum compatibility, or a 32-bit one if the transparency has to survive.

  3. 3

    Download the converted file

    One file comes back on its own, several as pulsarkit-bmp.zip. A file that cannot be read is skipped and the rest of the batch finishes.

Why BMP still turns up in 2026

BMP has no place on a website. It stores pixels essentially raw, so a 1920×1080 image is about six megabytes where a PNG of the same picture is a fifth of that. What keeps it alive is everything that is not a website: CAD packages and measurement instruments that export it because their file writer was written decades ago, printer and scanner drivers that produce it as an intermediate, industrial software with a fixed import format, and Windows utilities that still save screenshots that way. This converter exists for those files specifically. If you are choosing a format for a new image, choose PNG; if something handed you a BMP and the next tool refuses it, this is the way out.

The awkward corners of the format, handled

BMP is a family of formats rather than one, and the differences are exactly where naive readers break. Row order is signalled by the sign of the height field: a positive value means the rows are stored bottom to top, which is the common case, and a negative one means top to bottom. Every row is padded to a multiple of four bytes, and that padding is not part of the image. Channels are stored blue, green, red, not the other way round. Colour can be one, four or eight bits per pixel indexed into a palette, sixteen bits packed by a bit mask, or twenty-four and thirty-two bits direct. Indexed images may also be run-length encoded. The header itself comes in seven known sizes from the twelve-byte OS/2 form to the 124-byte version 5. All of that is read here by purpose-written code, because every general-purpose BMP library available on npm stopped being maintained a decade ago and none of them handle the full set.

Writing a BMP that other programs will actually open

Going the other way, the choice of colour depth matters more than it looks. A 24-bit file uses the plain 40-byte header that every BMP reader ever written understands, and drops transparency because the format has nowhere to put it. A 32-bit file keeps the alpha channel, but only if it declares the channel layout explicitly, so this tool writes the 108-byte version 4 header with the red, green, blue and alpha masks spelled out. Without those masks a good many viewers ignore the fourth byte entirely and show whatever happened to be in it as colour. Rows are written bottom-up and padded to four bytes, resolution is stamped at the conventional 72 DPI, and the result is checked byte by byte against the specification in the test suite.

Files stay in your browser

Reading the BMP header, unpacking palettes and run-length data, encoding to JPG, PNG or WebP and writing a BMP back out all happen inside your browser tab. Nothing is uploaded and nothing is stored. Since BMP files are commonly exports from measurement equipment, scanners and internal systems, that is not a nicety. It is often the reason a browser tool is usable where an upload site is not.

Frequently asked questions

Why would anyone still need a BMP file?

Because older and specialised software insists on it. CAD systems, laboratory and measurement instruments, printer drivers and some industrial control software either export BMP or accept nothing else. Converting to and from it is usually about feeding one of those programs, not about the picture itself.

How much bigger is a BMP than a PNG?

Usually three to five times, because BMP stores pixels with no compression at all while PNG packs them losslessly. A 1920×1080 24-bit BMP is about 6 MB; the same image as a PNG is typically between 1 and 2 MB, with identical pixels.

Are compressed BMP files supported?

Run-length encoded ones are: both RLE8 and RLE4 are unpacked here, including the delta and absolute-mode escapes. The rare variant that embeds a whole JPEG or PNG inside a BMP container (some printer drivers produce these) is not, and is reported clearly instead of producing a broken image.

Will transparency survive?

Coming from a 32-bit BMP with an alpha mask, yes, into PNG and WebP, which both support it, though not into JPG, which cannot. Going the other way, choose 32-bit output to keep it. There is one common quirk handled automatically: some old encoders write a 32-bit file with every alpha byte set to zero, and taking that literally would produce a completely invisible image, so it is treated as fully opaque instead.

Which colour depth should I pick when saving a BMP?

24-bit unless you specifically need transparency. It is the form every BMP reader understands, and some older software renders 32-bit files incorrectly. Pick 32-bit only when the alpha channel has to survive and you know the program on the other end reads version 4 headers.

How many files can I convert at once?

Up to 100 files, 100 MB each and 500 MB combined, all with the same settings. They are processed one after another, and a file that cannot be read does not cancel the rest of the batch.

Does the file get uploaded to a server?

No. The BMP reader and writer are ordinary code running in your browser tab, and the JPG, PNG and WebP codecs are WebAssembly modules alongside them. Your files never leave the device and nothing is kept after you close the page.

Related tools