ToolFeather
Image & MediaRuns in your browser

BMP to RAW Converter

Decode a BMP and export its pixels as headerless RAW bytes — choose the channel order, row order and output (.raw, C/C++ header or hex text).

Quick presets

BMP to RAW Converter

Pixel layout
Download

–

Width × height
–
–
Bytes per pixel
–
–
Output size
–
–
vs BMP
–
–
First bytes
Load an image to see its first 64 bytes.
Read it back
–
RAW files have no header — whatever reads them needs the width, height and pixel layout shown above. Note them down (they're also in the file name).

Runs in your browser — nothing you enter is uploaded or stored.

ToolFeather · BMP → RAW pixels
Scratchpad auto-saved
Stored in this browser (localStorage)
Step-by-step~40s read

How it works — in four simple steps

No signup and nothing to install — it all runs in your browser.

1

Drop a BMP

It's decoded in your browser.

2

Choose the pixel layout

RGBA, RGB, BGR, RGB565… plus row order and premultiplied alpha.

3

Pick the output

Binary .raw, a C header or hex text.

4

Download and note the size

Width, height and layout are in the file name; RAW has no header.

Pro tip

RGB565 little-endian is what most SPI TFT displays (ILI9341, ST7789) and LVGL expect.

Features

Eight pixel layouts

RGBA, RGB, BGRA, BGR, ARGB, grayscale, gray + alpha and RGB565 — as .raw, a C header or hex.

Nothing uploaded

Decoding and encoding run in your browser tab; the files never leave your device.

About the BMP to RAW Converter

BMP already stores raw pixels, but behind a header, with rows stored bottom-up and padded to 4 bytes, in BGR order. Firmware and GPU code usually want tightly packed, top-down pixels in a specific order — this strips the header and padding and writes exactly that.

The BMP is decoded by your browser, which reads 1- to 32-bit bitmaps.

After decoding, the pixels are read from a canvas and written in the layout you choose — channel order, top-down or bottom-up rows, optional premultiplied alpha — with no header or padding. Snippets for NumPy, FFmpeg and ImageMagick show how to read the file back.

BMP vs RAW pixels compared

PropertyBMPRAW pixels
Origin / standardMicrosoft Windows / OS/2 (1980s)No standard — a plain pixel dump
CompressionUsually none (RLE4/RLE8 optional)None
TransparencyOnly 32-bit with V4/V5 headers; support variesIf the layout includes it (RGBA, BGRA, ARGB, YA)
Colour depth1, 4, 8, 16, 24 or 32 bits per pixel8-bit channels, RGB565, grayscale
Animation / pagesNoNo
Maximum sizeSigned 32-bit width/height (memory-bound)Any
Typical useWindows apps, embedded displays, machine toolsFirmware, GPU uploads, NumPy, FFmpeg rawvideo
Opens inEvery Windows program, browsers, most editorsCode, FFmpeg, ImageMagick (with size given)

RAW file sizes

RAW output has no compression, so its size depends only on the dimensions and the pixel layout — exactly width × height × bytes per pixel:

ImageRGBA / BGRA / ARGBRGB / BGRRGB565 · gray + alphaGrayscale
320 × 240307,200230,400153,60076,800
800 × 4801,536,0001,152,000768,000384,000
1920 × 10808,294,4006,220,8004,147,2002,073,600

Sizes in bytes. A C header (.h) is about 6× larger as text, hex text about 3×.

Things to know

Frequently asked questions

3 answers
How big is the RAW file?
Exactly width × height × bytes per pixel — for example a 320 × 240 image is 153,600 bytes as RGB565 and 307,200 as RGBA.
What's the difference from camera RAW?
Camera RAW (CR2, NEF, ARW, DNG) holds unprocessed sensor data. This RAW is simply decoded pixels with no header.
Is my image uploaded?
No. BMP files are decoded and the RAW pixels is created entirely in your browser — nothing is sent to a server, and EXIF/GPS metadata isn't copied.