BMP Converter
BMPs at exactly the bit depth your display, machine or old program needs — and back again.
Preview
Settings
Files
About the BMP Converter
Turn JPG, PNG, WebP, HEIC, GIF or BMP images into Windows bitmaps with exactly the format you need: 1-bit monochrome (by threshold or dithering), 4-bit or 8-bit with a colour table, 16-bit RGB565 or RGB555, 24-bit, or 32-bit with alpha — stored bottom-up (the usual order) or top-down, with the header and resolution you choose. That is what embedded displays, older Windows software, label printers and machine controllers often insist on.
It also works the other way: open any BMP — including RLE-compressed, 16-bit, OS/2 and 32-bit files — and save it as PNG, JPG or WebP. The page reads and writes the BMP bytes itself, shows the header details of every file, and previews exactly what the saved file contains. Many files at once, with a ZIP download; nothing is uploaded.
How to use it
- Choose Convert to BMP or BMP to PNG/JPG/WebP at the top.
- Drop your images onto the box or choose them (up to 100 at a time).
- To make BMPs, pick the bit depth. For 1-bit choose a threshold or a dithering method; for 4- and 8-bit choose the palette; optionally set the row order, header, resolution and an exact output size.
- Check the preview — it is decoded back from the saved bytes — and the header line under it.
- Select Download, or Download all as ZIP for a batch.
Examples
logo.png · 1-bit monochrome · Threshold 128 · Resize to 128 × 64, fit
logo.bmp: 1,086 bytes — 62 bytes of header and 2-colour table, then 64 rows of 16 bytes.
Each row is 128 bits = 16 bytes, already a multiple of 4, so no padding is needed.
splash.jpg · 16-bit RGB565 · bottom-up · BITMAPINFOHEADER
153,666 bytes: 66 bytes of header with the three bit masks (0xF800, 0x07E0, 0x001F), then 240 rows of 640 bytes.
1920 × 1080 photo.jpg · 24-bit
6,220,854 bytes: 1920 × 3 = 5,760 bytes per row, 1,080 rows, plus the 54-byte header.
Common uses
- Splash screens and icons for microcontroller displays and SD-card image viewers that read only BMP.
- Monochrome bitmaps for thermal and label printers, laser engravers and CNC software.
- Images for old Windows programs, games and installers that need 8-bit or 24-bit BMPs.
- Converting folders of BMP scans or screenshots to PNG (lossless, much smaller) or JPG.
- Checking what kind of BMP a device produced: header, bit depth, compression, row order and DPI.
Which bit depth do I need?
- 1-bit: two colours, 8 pixels per byte — monochrome displays, label printers, engravers. Choose white-as-index-0 if your device reads the colour table the other way round.
- 4-bit / 8-bit: 16 or 256 colours from a colour table (an optimised palette from your image, greys, or the standard Windows 16 colours).
- 16-bit RGB565: 5 bits red, 6 green, 5 blue — the native format of many TFT controllers. RGB555 (5-5-5) is what 16-bit BMPs without bit masks mean.
- 24-bit: full colour, no transparency — the most widely supported BMP.
- 32-bit: full colour with an alpha channel, written with a BITMAPV5HEADER and an alpha mask so readers know it is transparency.
Transparent areas are filled with the background colour for every depth except 32-bit.
Rows, padding and headers
Every row of a BMP is padded to a multiple of 4 bytes: stride = ((width × bits per pixel + 31) ÷ 32) × 4, rounded down. Rows are stored bottom-up (last row first) when the height in the header is positive — the default — and top-down when it is negative, which some displays and libraries prefer because they can stream rows straight to the screen. Top-down BMPs cannot be compressed.
BITMAPINFOHEADER (40 bytes) is understood by almost everything. BITMAPV5HEADER (124 bytes) adds an alpha mask and the colour space (sRGB), which tells readers that the fourth byte of a 32-bit pixel is transparency. Automatic (the default) writes the V5 header for 32-bit and the 40-byte header for every other depth; choose BITMAPINFOHEADER for 32-bit only if a device rejects V5 headers (the alpha byte is then written, but most readers ignore it). Layout and rules: Microsoft Learn — BITMAPINFOHEADER, BITMAPV5HEADER and Bitmap Compression.
Monochrome: threshold or dithering?
Grey is computed as BT.709 luma (0.2126 R + 0.7152 G + 0.0722 B). A threshold makes every pixel at or above the level white — best for logos, text and line art; Auto picks the level with Otsu’s method. For photos, Floyd–Steinberg and Atkinson error diffusion and Bayer 8 × 8 ordered dithering turn shades into dot patterns. The same diffusion is available for 4-, 8- and 16-bit output to reduce banding in gradients.
Limitations
- Images up to 50 megapixels; output sizes up to 16,384 px per side.
- BMPs are written uncompressed (RLE output is not offered, and top-down BMPs cannot be compressed). RLE4/RLE8 BMPs are read.
- BMPs with embedded JPEG or PNG data (printer formats) are read with your browser’s own JPEG and PNG decoder. OS/2 bitmaps with Huffman or RLE24 compression and 64-bit BMPs are not supported — the page says so.
- Animated GIFs and WebPs are converted as their first frame. Embedded colour profiles are not copied; colours are kept as sRGB values.
- HEIC photos open directly in Safari; other browsers download the HEIC decoder (1.4 MB) from this site the first time, then decode the photo on your device.
Privacy
Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.
Frequently asked questions
Why is a BMP so much bigger than the PNG or JPG?
BMP normally stores every pixel uncompressed: a 24-bit image takes width × height × 3 bytes plus row padding, so a 1920 × 1080 photo is about 6.2 MB. Use a lower bit depth if your device allows it, or keep PNG for sharing. Downloading a batch as ZIP compresses the BMPs inside.
Does BMP support transparency?
Only 32-bit BMPs, and only readers that understand the alpha mask of a V4/V5 header (browsers, Windows, most editors). Many older programs and devices ignore the alpha byte. For anything else, choose a background colour and save 24-bit.
My device shows the image upside down or mirrored. What do I change?
Upside down: switch the row order between bottom-up and top-down. Colours inverted on a monochrome screen: switch Colour table to “0 = white” or tick Invert. Mirrored left-to-right is not a BMP setting — your device draws the rows in the other direction; mirror it first with Rotate & Flip Image.
How do I convert a BMP to PNG or JPG?
Choose BMP to PNG/JPG/WebP, drop the BMP files and pick the format. PNG keeps the pixels exactly (and the alpha channel of 32-bit BMPs); JPG is smaller for photos.
Are my images uploaded?
No. Images are decoded and converted in your browser, and BMP files are written byte by byte on your device. The page works offline once it has loaded.