Guide

How to Convert Images to BMP: A Practical Guide

Convert PNG and other images to uncompressed BMP for legacy software, microcontroller projects, and pixel-perfect workflows.

By Sorawi Tools Team · Published July 15, 2026 · Updated July 29, 2026

Why Anyone Still Uses BMP

BMP, short for bitmap, is one of the oldest image formats still in regular use. Introduced with Windows, it stores images with no compression by default, so every pixel takes up exactly the space it needs and nothing is lost. That straightforwardness keeps it alive in a surprising number of places, long after formats like JPEG and PNG took over the web. The biggest users of BMP today are embedded systems and microcontrollers. Small TFT and OLED display libraries written for Arduino, ESP32, and similar boards often accept only uncompressed bitmaps, because decoding a PNG on a chip with a few hundred kilobytes of memory is impractical. A BMP can be written straight into a framebuffer with almost no code. BMP also survives in legacy software. Older Windows applications, some industrial and medical equipment, and a long tail of custom business tools expect BMP files for icons, logos, and scanned forms. If you are migrating data out of such a system, converting your modern images to BMP may be required for compatibility. The format has one more niche: pixel-perfect work. Because BMP is uncompressed, every pixel is preserved bit for bit, with no artifacts and no color shifts. Sprite editors, emulator projects, and people creating assets for retro-style games sometimes prefer BMP precisely because it is deterministic. If a pixel is the value you set, that value is what comes back out.

How the BMP Format Is Structured

To use BMP correctly, it helps to know how the bytes are laid out. A BMP file starts with a file header, then a bitmap information header called BITMAPINFOHEADER, and then the actual pixel data. The file header is 14 bytes and records the format identifier and the total file size. The BITMAPINFOHEADER is 40 bytes and records the width, height, color depth, and whether the pixel rows are stored top-down or bottom-up. The most common variant is the 24-bit BMP, which stores three bytes per pixel: one for blue, one for green, and one for red, in that order. This BGR ordering surprises developers who expect RGB, and it is a classic source of bugs when you inspect the raw bytes. To read a 24-bit BMP correctly, the first byte of each pixel is blue, the second is green, and the third is red. Two layout rules trip people up. First, BMP rows are stored bottom-up by default: the first row of pixel data in the file is the bottom row of the image. Second, each row is padded so its length is a multiple of four bytes. A 1001-pixel-wide 24-bit image uses 3003 bytes per row of real data, which is not a multiple of four, so three padding bytes are appended to every row. These details matter for a converter, which is exactly why the PNG to BMP converter writes a correct 24-bit uncompressed BMP with a standard BITMAPINFOHEADER: every BMP reader on every platform can open the result without special handling.

How to Convert an Image to BMP

Converting an image to BMP is the right move when a specific tool demands it, and the process is fast. The converter decodes your source image and re-encodes it as a 24-bit uncompressed BMP with the standard header described above, so the output is compatible with display libraries and legacy software alike. As with every tool on this site, the conversion happens entirely in your browser, and the image is never uploaded to a server.

  1. 1Open the PNG to BMP converter.
  2. 2Drag and drop your image onto the upload area, or click to browse and select it.
  3. 3Wait for the converter to decode the image and build the BMP; this is instant for typical sizes.
  4. 4Download the .bmp file.
  5. 5Confirm your target software opens it, and if it needs a different bit depth or orientation, adjust accordingly.

Real-World Use Cases for BMP

BMP shows up in very specific corners of development. The most common is microcontroller graphics. Driver libraries for popular LCD panels, from 0.96-inch OLEDs to larger TFT screens, ship with example code that reads uncompressed images. When you are building an embedded UI, you often pre-convert your PNG assets to BMP so the firmware can draw them without a decompression library. Embedded work also uses BMP for sprites. A sprite sheet exported as a BMP can be sliced in code with simple pointer arithmetic, which keeps the rendering loop tight and predictable on low-power hardware. Game development in the retro space relies on the same property: an uncompressed format means no decoding hitches in the middle of a frame. Legacy business software is a quieter but very real consumer. Invoice scanners, ticket printers, and point-of-sale systems from the early 2000s frequently still run on Windows workstations and expect BMP for logos and signature images. Conversion is often a one-time migration task, but it is a genuine one. Finally, BMP is a solid interchange format when you need an exact pixel buffer. If you are writing a tool that needs to hand raw RGB data to another system, exporting a BMP and parsing it is often less error-prone than defining your own custom binary format.

Size Trade-Offs and When Not to Use BMP

The honest trade-off with BMP is file size. A 24-bit BMP uses three bytes per pixel, plus row padding and headers. A 1000 by 1000 pixel image therefore occupies about 3 MB on disk. A 4000 by 3000 photo becomes about 36 MB. That is why BMP never took off on the web: the same image as a JPEG is typically fifty to a hundred times smaller. When size matters, choose differently. For photographs, JPEG delivers excellent quality at a fraction of the size, and modern JPEG encoders can produce visually lossless results at surprisingly small sizes. For graphics with flat color, text, or transparency, PNG is the right choice: it is lossless and compresses large uniform areas dramatically. For web delivery, WebP often beats both. None of these formats preserve raw pixels exactly the way BMP does, but they preserve what people actually see. The practical rule is simple. Use BMP when a downstream system requires it, when you need the exact bytes of a framebuffer, or when you want zero ambiguity about pixel values. Use a compressed format when the destination is a website, an email, a document, or any storage you plan to keep for a long time. If you are unsure, PNG is almost always the safer default.

Common Mistakes to Avoid

A few BMP pitfalls account for most of the head-scratching around the format. The first is byte order. A 24-bit BMP stores pixels as blue, green, red, not red, green, blue. If you read the file as RGB, every pixel comes out with swapped channels and the image looks wrong in a way that is surprisingly hard to notice on some content. Write a tiny test image with a known color and verify your reader against it. The second is the bottom-up row order. If you paste the pixel block into a buffer that assumes top-down rows, the image appears vertically flipped. Only the negative-height flag in the BITMAPINFOHEADER signals top-down storage; the default is bottom-up. The third is row padding. Rows are aligned to four-byte boundaries, so you cannot simply multiply the width by three and walk the buffer. Skipping the padding bytes will walk your pointer into the middle of the next row. A fourth mistake is assuming BMP preserves transparency. A 24-bit BMP has no alpha channel, so transparent areas must be flattened onto a background color first. If you need transparency, look for a 32-bit BMP, which carries an alpha channel, and verify that the software on the other end actually reads it.

BMP vs. Other Formats at a Glance

Choosing a format is usually a matter of three questions: do you need lossless data, how much do you care about size, and does the destination have a hard requirement? BMP is uncompressed and lossless, which makes it the heavyweight champion of predictability. PNG is lossless too, but compresses intelligently, so it wins whenever you control the reading side. JPEG is lossy and excels at photos. WebP is the modern web default, offering both lossless and lossy modes with the best size-to-quality ratios. For grayscale or monochrome embedded work, also consider the Netpbm family. A PGM file is simpler than BMP and popular in scientific and computer-vision pipelines, while PPM is the color equivalent. These formats trade the easy reading tools that Windows provides for even simpler parsing. If you are producing assets for a microcontroller display, stay with BMP unless you know the driver library handles PNG. Most do not. If you are preparing images for a website, forget BMP entirely. If you are migrating old data, convert into BMP only the images the legacy system actually needs, and keep the originals in a compressed archive. When in doubt, the PNG to BMP converter here gives you a valid, universally readable BMP in seconds, and because processing happens locally, sensitive images never leave your device.

BMP Bit Depth and When It Matters

The 24-bit BMP this converter produces covers the overwhelming majority of compatibility needs, but it is worth understanding the other depths you may encounter. An 8-bit BMP stores a palette of up to 256 colors and references each pixel by an index into that palette, which keeps files small on memory-constrained devices but caps the color range. A 1-bit BMP stores only black and white and is used for very simple monochrome displays and fax-style imaging. A 32-bit BMP adds an alpha channel for transparency, though many legacy readers ignore the alpha bytes and render the image as opaque. If your target software rejects the 24-bit output, the usual culprits are either that it expects an indexed palette (8-bit) or that it needs the bottom-up row order corrected. The converter emits the standard bottom-up, BGR, 24-bit layout that matches what the vast majority of readers expect, so start there and only reach for another depth when the receiving application documents a specific requirement. When in doubt, convert one small test image and open it in the target program before committing to a large batch.

PNG to BMP Converter

Convert PNG images into classic BMP (bitmap) files with uncompressed 24-bit pixels for maximum compatibility.

Use the tool