Cookies for analytics and advertising
We use cookies for analytics and advertising, both sent to Google. Refusing changes nothing you can see.Read the privacy page
Converting JXL to BMP unpacks a modern compressed image into raw pixels: 24-bit uncompressed bitmap, three bytes per pixel, no alpha channel. A JPEG XL of a few megabytes becomes a BMP of tens of megabytes, and that is the format working correctly rather than failing. It runs entirely in your browser.
Up to 100 files at once. Mixed formats are fine.
They convert one after another and download together as a ZIP.
JXL to BMP
JXL 7 KB → BMP 450 KB 63.7× larger
JXL 5 KB → BMP 450 KB 91.9× larger
JXL 13 KB → BMP 450 KB 34.8× larger
Microsoft published BMP in 1987 and it has been legacy for most of the time since, yet the demand does not go away. Firmware build scripts, LED panels and small displays, laboratory and machine-vision software, older Windows applications, emulator and game modding toolchains — a great deal of code was written to read a bitmap header and index straight into pixels, and none of it will ever learn a new format.
JPEG XL is the opposite of that. It was standardised as ISO/IEC 18181-1 in 2022, it is in almost no consumer software, and decoding it requires a modern codec that the machine on the other end of your workflow certainly does not have. Converting is not a preference here; it is the only way the pixels arrive in a shape the receiver can address. The gap between the two formats is thirty-five years, and the older one is the one that has to be accommodated.
The BMP written here has no compression of any kind. The file is a 14-byte file header, a 40-byte information header, and then the pixels — three bytes each, blue first. A 4,000 by 3,000 image comes to exactly 36,000,054 bytes, about 34 MiB, and it is the same 34 MiB whether the photograph is a detailed forest or a plain white field.
Against a JPEG XL of perhaps three megabytes that is a factor of eleven, and against the 46 MiB the same image would occupy as an uncompressed TIFF it is the one saving BMP offers, since BMP drops the alpha channel that TIFF keeps. Nothing on this page will make the file smaller except reducing the pixel count. Compress it afterwards if it has to be sent — a ZIP finds a great deal of redundancy in a raw bitmap, and on flat graphics it will recover most of the difference.
BMP predates every convention a modern format follows. The rows are stored from the bottom of the image upwards, the channels run blue, green, red rather than red, green, blue, and the header records the resolution as 2,835 pixels per metre, which is 72 dpi. All three are in the specification rather than the result of a shortcut here.
The variant produced is 24 bits per pixel with a BITMAPINFOHEADER, which is the oldest and most widely accepted combination — no colour table, no bitfield masks, no compression tag to interpret. If the software you are feeding was written against the Windows API at any point in the last thirty years, this is the shape it expects, and the odd conventions are precisely why it will work. The 72 dpi figure in the header is written because a zero there makes some older viewers reject the file outright; nothing reads it for any other purpose.
JPEG XL carries a full alpha channel and the 24-bit BMP has nowhere to put it. Before the file is written the image is composited onto a background colour, which you choose on this page, and once that is done the original edge information is gone.
Choose the colour the image will actually be displayed against rather than a default. White is right for a document or a print preview; black is right for a display panel or an overlay that runs on a dark surface; magenta is right if the receiving software treats a specific colour as a transparency key, which a surprising amount of older game and display tooling does. Getting this wrong shows up as a coloured fringe around every soft edge, and the only fix is to convert again from the JPEG XL.
Every row in a BMP is padded to a multiple of four bytes. At 24 bits per pixel a width divisible by four needs no padding at all, while a width of 1,001 pixels produces rows of 3,003 bytes and one padding byte each. The converter writes those bytes; they are part of the format, not slack.
This is the detail that breaks hand-written readers, and it is worth knowing if you are the one writing the code at the far end. Software that assumes the stride equals width times three will read a correct BMP as a progressively skewed image — the classic diagonal smear. If your output looks sheared, the padding is where to look, and choosing a width divisible by four sidesteps it entirely.
JPEG XL can hold EXIF, XMP and an ICC profile. BMP has no standard place for any of them, and this conversion decodes to raw pixels and writes them out, so the camera model, the capture date, the GPS coordinates and the colour profile all stop here. That is unconditional: the page has no switch that keeps any of it, because the encoder never sees it in the first place.
That is a privacy improvement and a colour hazard in the same step. There is no profile in the output, so whatever reads the BMP will interpret the numbers as ordinary sRGB — which is fine for a display panel or an instrument and wrong for a wide-gamut photograph you cared about. Where the colour is the point, keep the JPEG XL as the reference copy.
Every lossy target on this site offers a quality number. This one does not, and its absence is honest rather than an omission: BMP records the pixel values it was given, so there is no rate to set and no detail to spend. Two conversions of the same JPEG XL produce byte-identical files.
What that leaves is the pixel count, and the maximum-width control is therefore the only setting with any effect on the result. Halving the width quarters the file, from 34 MiB to about 8.6 MiB on the example above. If the destination is a 320 by 240 display, resize to 320 pixels and the whole conversation about size disappears.
PNG does everything BMP does and more: lossless, an alpha channel that survives, and a file typically a fraction of the size. It has been readable by everything since 1996 and there is no image-quality argument for BMP over it. If the software at the other end will take a PNG, that is the conversion to run instead of this one.
BMP wins in exactly one situation, and it is a real one: the receiving code wants to read a header and then treat the rest of the file as an addressable array of pixels, with no decoder in the loop. Firmware, embedded displays and instrument software are full of that pattern. When that is the constraint, the size is not a drawback, it is the specification. TIFF is the other candidate in that situation, and it is worth checking which of the two your tool prefers before assuming BMP.
BMP is a family rather than a single layout. It also defines 1-, 4- and 8-bit paletted images with a colour table, 16-bit packed forms, and a 32-bit variant that can carry an alpha channel through bitfield masks. This converter writes one member of that family — 24-bit, uncompressed, no colour table — because it is the one nothing refuses.
If the thing you are feeding demands a specific variant, say an 8-bit indexed bitmap for a small display or a 32-bit BMP that keeps transparency, this conversion will not satisfy it and no setting here will change that. Those are jobs for a tool that lets you name the pixel format outright, such as ImageMagick, and it is better to know that before you convert a folder than after the loader rejects the first file.
The decode, the flatten and the bitmap write all happen in your browser, so nothing is uploaded and there is no queue. Files up to 100 MB are accepted on the free tier, and that ceiling applies to the JPEG XL going in rather than to the bitmap coming out — a 100-megapixel source would produce a 300 MB BMP, which is a question of your machine's memory rather than of any limit here.
Drop a folder to convert a set in one pass; each file keeps its name with the extension swapped and the batch returns as a ZIP, which for uncompressed bitmaps is a considerably smaller download than the files themselves. Keep the JPEG XL originals: the BMP holds the pixels but not the transparency, the metadata or the depth that were in them.
| JXL | BMP | |
|---|---|---|
| Full name | JPEG XL | Windows Bitmap |
| File extension | .jxl | .bmp, .dib |
| Media type | image/jxl | image/bmp |
| Compression | Either, depending on the setting | Uncompressed |
| First published | 2021 | 1987 |
| Published by | Joint Photographic Experts Group | Microsoft |
| Specification | ISO/IEC 18181 | — |
| Licensing | Open standard | Published, not standardised |
| Standing today | Niche | Legacy, still read everywhere |
| Bit depth | 32 | 8 |
| Colour it can describe | RGB, greyscale, wide gamut | RGB, indexed palette |
| Opens in a browser | Some browsers | Every browser |
| Considered instead | AVIF, WebP, PNG | PNG, TIFF |
BMP has no alpha channel. A transparent JXL comes out with those areas filled in — white unless something else is set — and no setting in BMP brings the transparency back.
BMP holds a single still image. An animated JXL keeps its first frame and loses the rest, so a conversion is a way to take a still out of one, not a way to move it.
JXL carries up to 32 bits per channel and BMP stores 8. The extra precision is what survives heavy correction without banding, so the conversion is best made after the editing rather than before it.
BMP opens in every current browser. JXL has narrower browser support than that. If the file is going onto a web page or into a form, that is usually the whole reason for the conversion.
GIMP reads both JXL and BMP, so there is a way to check the result against the original without a second tool.
The two are aimed at different work: JXL at archiving and photography, BMP at moving data between programs. That is worth weighing before converting, because the reason one exists is usually the reason the other is awkward.
JXL is Joint Photographic Experts Group's format, published in 2021. It records 32 bits per channel.
BMP comes from Microsoft and dates from 1987. Microsoft Paint, GIMP and IrfanView all read it.
BMP was published in 1987 and JXL in 2021. The older one is generally the safer file to hand to somebody; the newer one usually does the job in fewer bytes.
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.
Because BMP stores every pixel literally. There is no compression in the file this converter writes: three bytes per pixel plus a 54-byte header. A 4,000 by 3,000 image is 36,000,054 bytes, about 34 MiB, whatever the picture shows.
24-bit uncompressed, with a BITMAPINFOHEADER, rows stored bottom to top and channels in blue-green-red order. That is the variant every BMP reader ever written accepts, which is the entire reason for choosing it.
No. The output is 24-bit with no alpha channel, so transparent areas of the JPEG XL are filled with the background colour you choose before converting. Pick the colour the image will actually sit on, because the fill is permanent.
From the decoded pixels onward, yes — the BMP holds exactly the values the decoder produced. The reduction happens earlier: JPEG XL allows up to 32 bits per channel and the decoder returns 8, so a high-bit-depth original is cut down before the BMP is written.
Because there is nothing to trade. BMP writes the pixels as they are, so the only control over the file size is the number of pixels — which is what the maximum-width setting changes.
If the receiving software accepts PNG, yes, without hesitation. PNG is lossless too, keeps the alpha channel, and is typically a small fraction of the size. BMP is the right answer only when the reader genuinely cannot handle anything else.