Convert BMP to JXL

Converting BMP to JXL puts an uncompressed bitmap into JPEG XL, the 2022 format from the JPEG committee. One thing to settle before you start: the encoder here writes the lossy variant, so if the point was an exact archival copy of the BMP, this is not the page for it.

  • Where it runs In your browser. The file is never uploaded.
  • Lossy Some detail is traded for size. JXL cannot hold everything a BMP can.
  • File size limit Up to 100 MB per file, free, without an account.

Up to 100 files at once. Mixed formats are fine.

What BMP to JXL actually does

BMP 450 KBJXL 7 KB 63.7× smaller

A photographic scene — smooth gradients, soft edges, grain. This is the case JXL is designed for or against, and the figures show which. Both images are drawn in code and encoded by the same converter that runs on this page, so the sizes are this site's own output.

BMP 450 KBJXL 5 KB 91.9× smaller

A transparent background and a gradient across the shape. JXL either keeps both, keeps one, or fills the transparency with a solid colour — which is the difference that catches people out. Both images are drawn in code and encoded by the same converter that runs on this page, so the sizes are this site's own output.

BMP 450 KBJXL 13 KB 34.8× smaller

Flat colour and hard edges, as in an interface, a chart or a logo. Very different behaviour from the photograph above, and the reason the answer is "it depends what is in the file". Both images are drawn in code and encoded by the same converter that runs on this page, so the sizes are this site's own output.

JXL was designed for the job people bring a BMP to

JPEG XL came out of the JPEG committee and was standardised as ISO/IEC 18181-1 in 2022. It compresses losslessly as well as lossily, handles up to 32 bits per channel, carries alpha and animation, and was explicitly aimed at being the format you keep an image in rather than the one you serve.

That is a good description of what somebody with a large uncompressed bitmap wants. A BMP is a master by accident — it is uncompressed because nothing writes the run-length modes the format defines, not because anyone chose fidelity — and moving it into something that keeps the pixels and stops costing three bytes each is a sensible instinct. The registry lists archival and photography as JPEG XL’s uses, and largeFiles as BMP’s known problem, so on paper the two were made for each other. The rest of this page is about the distance between that reading and what this converter can actually give you.

The JXL this page writes is the lossy one

The encoder here produces lossy JPEG XL at quality 82, the same default every lossy target on this site uses. It does not write the lossless mode, and there is no setting on the page that switches to it.

So the instinct above lands on the wrong page. What you get is a small, modern, well-compressed image that is not the bitmap you started with, in a container most software still cannot open. That combination is worse than either problem on its own, and it is the reason this section is second rather than last. Saying it here rather than in a footnote is the point: a conversion that quietly did the lossy thing while the reader believed they were archiving would produce exactly the outcome an archive exists to prevent, and they would not find out for years.

For an archival copy of a BMP, use PNG

PNG is lossless, it has been standardised since 1996, every browser and every editor reads it, and on the flat material that BMP files usually contain it compresses hard. A 960 by 640 photograph measured here came to 468 KB as a PNG against 1.84 MB as a BMP, and flat artwork does considerably better than that.

It is not as efficient as lossless JPEG XL would be. It is available, it is exact, and in thirty years it will still open — which is the only property an archival format is actually judged on. The bitmaps being converted here are themselves evidence of that: they survive because the format is simple and everything reads it, not because it was ever good. Choose PNG for the master and come back to a lossy format when you know where the image is going.

If the bitmap is a scanned document, this is not the page

A large share of BMP files are pages rather than pictures — scans and faxes written by imaging software that had no other option. JPEG XL has nothing to offer them. A lossy encode of a page of type is exactly the wrong operation, and the container is one that no records system, no colleague and no regulator will accept.

For those, PDF is the deliverable and TIFF is what an archive specification usually names, both of which this site converts a bitmap into directly. If the words are what matters rather than the image of them, the BMP to TXT conversion reads the page with optical character recognition. Deciding which of those three you actually want takes less time than converting the folder twice.

JPEG XL support is partial, and that is the registry’s word

The registry marks browser support for JXL as partial, next to the "all" it gives PNG, JPEG, GIF and WebP. That is not a temporary state of a new format; JPEG XL has had an uneven reception since it was standardised, and the situation has been unsettled for years rather than months.

The practical consequence is that a JXL is not a file to send anybody or to put on a page without an alternative. It is a file you keep for yourself, on machines whose software you control — which is a legitimate use, and a much narrower one than the format’s technical merits suggest. The registry marks the format’s status as niche and names patchy support as its known problem, and both of those are editorial judgements about adoption rather than about engineering. On the engineering, JPEG XL is the strongest still-image format in this registry.

What opens a JXL once you have made one

The registry names GIMP and ImageMagick. Both read it properly and both are free, so the format is not locked away — but neither is what most people have in front of them when they double-click a file.

Operating system previewers, stock photo managers and several mainstream editors still show nothing. That is worth testing on your own machine before converting a folder, because a directory of files that will not preview is a genuinely annoying thing to discover a month later.

What a BMP gives JXL, and what it withholds

It gives clean, unprocessed pixels. A BMP has been through no lossy encoder, so nothing in it is an artefact of a previous compression, and that is the best possible input for any encoder — there is no noise to spend bits describing that was not in the original scene.

It withholds everything else. Eight bits per channel against the format’s 32, plain RGB with no wide-gamut information, no colour profile, no EXIF, no capture data — the registry records no metadata containers for BMP at all. JPEG XL’s headroom stays empty because there is nothing in the source to put in it, and the file will be read as sRGB by whatever opens it. If the bitmap came off a calibrated instrument or a colour-managed scanner, that assumption is worth checking rather than inheriting.

Transparency carries over; there is no animation to carry

JPEG XL holds an alpha channel, and nothing on this path flattens the image or asks for a background colour, so the see-through areas of a 32-bit bitmap survive. The 24-bit files that make up most BMP output have no alpha in the first place.

JXL also supports animation, and BMP does not, so that capability has nothing to receive. It is worth stating only because it is one more line in the specification that a bitmap source cannot make use of, which is the running theme of converting from a format that predates all of them.

What the JXL will weigh next to the bitmap

Very much less, because almost anything is very much less than three bytes per pixel. A 1920 by 1080 bitmap is 6.2 MB before a single decision is made about the picture, and a lossy JPEG XL of it will be a small fraction of that.

Against WebP and AVIF the comparison is much closer and depends on the image. If the file size is the thing you are optimising, convert the same bitmap to two or three targets and compare the actual byte counts — that takes a minute here and settles a question no general rule answers reliably. And if the three come out within a few per cent of each other, which they often do, the decision should be made on support rather than on bytes. On that axis JPEG XL is last of the three, and it is not close.

Converting bitmaps to JXL without uploading them

The bitmap is decoded by the browser and encoded by a WebAssembly build of the JPEG XL encoder in the same tab. Nothing is sent anywhere, there is no account, and the ceiling is 100 MB per file — about 33 megapixels of uncompressed bitmap.

Drop a folder and the files convert one after another, keep their names with the extension swapped, and come back as a ZIP. Given everything above, converting two or three files first and checking that your own software opens them is time better spent than converting the folder twice. Keep the bitmaps until that check has been done. This conversion is lossy and there is no way back from the JXL to the pixels the bitmap held, so deleting the originals is the one step in the process that cannot be undone.

How to convert a BMP into a JXL

  1. Decide whether you need lossless — if so, convert the BMP to PNG instead.
  2. Drop the BMP here and set the quality, or leave it at 82.
  3. Download the JXL and confirm your own software can open it.

BMP and JXL: thirty years apart, and what carries across

BMP compared with JXL
BMPJXL
Full nameWindows BitmapJPEG XL
File extension.bmp, .dib.jxl
Media typeimage/bmpimage/jxl
CompressionUncompressedEither, depending on the setting
First published19872021
Published byMicrosoftJoint Photographic Experts Group
SpecificationISO/IEC 18181
LicensingPublished, not standardisedOpen standard
Standing todayLegacy, still read everywhereNiche
Bit depth832
Colour it can describeRGB, indexed paletteRGB, greyscale, wide gamut
Opens in a browserEvery browserSome browsers
Considered insteadPNG, TIFFAVIF, WebP, PNG

What the target format adds

JXL supports transparency and BMP does not. That is room the result has and the original never used — converting does not create a transparent background, it only makes one possible afterwards.

JXL can hold animation; a BMP is one frame. The result is a single-frame file in a format that could hold more.

Opening the result

Only some browsers read JXL. It is the less portable of the two, so it is worth being sure the program at the other end accepts it before sending one.

GIMP reads both BMP and JXL, so there is a way to check the result against the original without a second tool.

What each format is for

The two are aimed at different work: BMP at moving data between programs, JXL at archiving and photography. That is worth weighing before converting, because the reason one exists is usually the reason the other is awkward.

BMP is Microsoft's format, published in 1987. It records 8 bits per channel.

JXL comes from Joint Photographic Experts Group and dates from 2021, specified as ISO/IEC 18181. GIMP and ImageMagick 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.

BMP to JXL: lossless, support and what opens the result

Are my BMP files uploaded anywhere?

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.

Is the JXL produced here lossless?

No. The encoder on this page writes lossy JPEG XL at quality 82. The format is fully capable of lossless and that is the main reason people want it, so if an exact copy of the bitmap is the goal, use PNG instead — it is lossless and opens everywhere.

What can open a JXL file?

The registry lists GIMP and ImageMagick as the software that reads it. Support elsewhere is thinner than the format deserves: many operating system previewers, photo managers and editors still do not.

Do browsers display JXL?

Partially. The registry marks JPEG XL as partial rather than universal support, which is the honest description of a format standardised in 2022 that has had an uneven reception. Do not put one on a web page without a fallback.

Is JXL smaller than WebP or AVIF?

On photographic material the three are close, and which wins depends on the picture and the settings more than on the format. JPEG XL’s strongest arguments are lossless compression and very high bit depths, neither of which this page exercises.

Does a BMP benefit from JPEG XL’s 32-bit depth?

No. JPEG XL can describe up to 32 bits per channel; a BMP holds eight. The extra precision has nothing to store, so the conversion collects the compression and none of the fidelity headroom.

Is the file uploaded?

No. The bitmap is decoded by the browser and the JPEG XL encoder runs in the same tab as WebAssembly, so the file stays on your machine throughout.

More about these formats