Convert JXL to JPG

Converting JXL to JPG trades a modern format for one that opens everywhere. JPEG XL is the better encoder — it was standardised as ISO/IEC 18181-1 in 2022 and can store the same picture in fewer bytes — but Chrome dropped support in 2023, so a JPG is what an upload form, a print shop or a colleague can actually see.

  • Where it runs In your browser. The file is never uploaded.
  • Lossy Some detail is traded for size. JPG cannot hold everything a JXL can.
  • File size limit Up to 100 MB per file, free, without an account.
  • Worth knowing Transparency is not supported by the target format and is filled with the background colour.

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

What JXL to JPG actually does

A generated landscape with a low sun and three ridges, used to show what JPEG does to continuous tone. Shown as JXL.

JXL7 KB

A generated landscape with a low sun and three ridges, used to show what JPEG does to continuous tone. Shown as JPG.

JPG9 KB23% larger

A photographic scene — smooth gradients, soft edges, grain. This is the case JPG 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.
A generated badge: a circular gradient on a transparent background with a white bar across it, used to show what each format does with transparency and with hundreds of shades. Shown as JXL.

JXL5 KB

A generated badge: a circular gradient on a transparent background with a white bar across it, used to show what each format does with transparency and with hundreds of shades. Shown as JPG.

JPG6 KB17% larger

A transparent background and a gradient across the shape. JPG 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.
A generated application window with a sidebar, a table and a bar chart, used to show what JPEG does to flat colour and hard edges. Shown as JXL.

JXL13 KB

A generated application window with a sidebar, a table and a bar chart, used to show what JPEG does to flat colour and hard edges. Shown as JPG.

JPG16 KB24% larger

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.

Why a JPEG XL file has to become a JPG at all

This is the one conversion on the site driven almost entirely by politics rather than by pixels. JPEG XL is technically the stronger format: same committee as JPEG, standardised as ISO/IEC 18181, lossless and lossy in one codec, up to 32 bits per channel, alpha, animation and wide colour. On the merits it should have replaced JPEG outright.

It did not. Chrome carried a JPEG XL decoder behind a flag and removed it in 2023; Safari shipped it in version 17 and still has it; Firefox has never enabled it by default. The registry files it under partial browser support and patchy support as a known problem, and that is the whole reason this page exists. Nobody converts away from JPEG XL because the picture is wrong. They convert because something refused to display it.

The JPEG hidden inside a JPEG XL, and why you do not get it back here

JPEG XL has a feature no other format has: it can take an existing JPEG and repack it losslessly, storing the same picture around twenty per cent smaller with the original coefficients intact. Nothing is re-compressed, and libjxl’s own decoder can rebuild the original JPEG byte for byte from that repacked file. A great deal of the JPEG XL in the wild was made this way.

This converter cannot do that, and saying so is more useful than pretending. The browser-side decoder here hands back a grid of pixels, not the JPEG reconstruction data, so the JPG you download is encoded fresh from those pixels — a second generation, with a second round of JPEG loss on top of the first. If the JXL was made from a JPEG you still have, that original is strictly better than anything this page can produce. If you do not have it, this is the right tool and the loss at quality 82 is small.

The quality setting, and when to move it off 82

Quality defaults to 82 on a 1 to 100 scale. That is a delivery setting: on a photograph at normal viewing size it is difficult to fault by eye, and it produces a file most people would call small. For a picture that is going into an email, a listing or a form, leave it alone.

Raise it when the JPG is not the last step. Every JPEG save quantises the image again, and because this conversion is already a second generation, an edit-and-resave makes it a third. Ninety and above keeps enough headroom for that. There is no value that makes JPG lossless — the format has no lossless mode at all — so if the picture will be edited repeatedly, PNG is the better target and the JPEG XL is the better thing to keep.

Transparency: what JPG does with a JPEG XL alpha channel

JPEG XL stores an alpha channel and JPG has never had one. Where the source is see-through, the converter fills those pixels with a background colour before encoding, and the colour picker for it appears on this pair specifically because there is a real decision to make. White is the default because white is what most pages, documents and forms sit on.

The fill is skipped entirely when the picture is already opaque, which is nearly every photograph, so the option costs you nothing when it is irrelevant. It matters for logos, icons, product cut-outs and anything exported with a cleared background — and there the right question is whether JPG is the target at all. A cut-out flattened onto white is only correct until somebody puts it on a coloured slide, and the fringe of half-transparent pixels around an anti-aliased edge gets blended into the fill colour too, which is what produces the pale halo people notice on a dark background afterwards. If the picture will be composited, set the background to whatever it is landing on, or use a format with an alpha channel and avoid the question.

Thirty-two bits down to eight on the way to JPG

JPEG XL can hold up to 32 bits per channel and a wide colour gamut. JPG is an eight-bit format and always has been. The pipeline here decodes to eight-bit RGBA before it encodes anything, so a high-bit-depth or HDR JPEG XL is reduced to ordinary eight-bit sRGB whichever target you pick.

For a normal photograph this is invisible, because the source was eight bits to begin with. It shows on gradients in a wide-gamut file — a sky, a studio backdrop, a flat brand colour — where the extra precision was doing the work of hiding banding. If the file came out of a camera or an editor in HDR and the banding matters, the JXL is the master and the JPG is a copy for other people.

Metadata does not cross from the JPEG XL into the JPG

The registry lists EXIF, XMP and ICC as the metadata a JPEG XL can carry, and JPG can carry all three plus IPTC. None of it survives this conversion. Every browser-side image path here decodes to raw pixels and encodes again, and a pixel grid has no room for a camera model, a capture date, a GPS coordinate or a colour profile.

The “remove metadata” switch is on by default and is honest rather than decorative: it describes what happens either way. Treat that as a feature when you are sending a picture out — the coordinates of the place it was taken do not travel with it — and as a warning when you are not. If the EXIF matters, keep the JPEG XL alongside the JPG rather than replacing it.

An animated JPEG XL cannot survive as a JPG

JPEG XL supports animation. JPG holds exactly one still image and has no mechanism for a second frame, no matter what the source contained. There is no option that changes this, because there is nothing in the JPG specification for the option to set.

That makes JPG the wrong target for anything that moves. If the JPEG XL is animated and the animation is the point, the honest answers are formats that can hold frames rather than a still that discards them. If you only need one frame — a thumbnail, a preview, a still for a document — then a single image is what you wanted anyway and the conversion does exactly the right thing.

Expect the JPG to be larger than the JXL you started with

This is the uncomfortable half of the trade and it should be said before you download. JPEG XL is a 2022 codec and JPEG is a 1992 one, standardised as ITU-T T.81. The newer encoder reaches the same visible quality with fewer bytes, so going backwards costs bytes almost every time.

How many depends entirely on the picture and on the quality you choose, and any single percentage quoted here would be a guess dressed up as a fact. There is one case where it goes the other way: a JXL that is a losslessly repacked JPEG is about a fifth smaller than the JPEG it came from, so a fresh lossy encode at quality 82 can undercut it. The comparison worth making is the one on your own file: convert it, look at the two sizes, and decide whether the increase matters. For an email attachment or a form upload it almost never does. For a library of ten thousand images it is the whole argument for keeping the JPEG XL.

The JXL never leaves your device on the way to JPG

Both halves of this conversion are WebAssembly running in the tab: libjxl decodes the source, the JPEG encoder writes the result, and neither one makes a network request carrying your picture. There is no queue, no account and no server-side copy waiting to be deleted, because nothing was ever sent.

The practical consequences are worth more than the principle. A folder converts as fast as your processor manages rather than as fast as your upload allows, the free ceiling is 100 MB per file rather than a plan tier, and a photograph of something private stays private without anyone having to take a promise on trust. The network tab is the proof, and it is a better proof than a policy page.

When to keep the JPEG XL and not make a JPG at all

If the file is an archive master, the conversion is the wrong move. JPEG XL is listed for archival and photography use precisely because it holds more and loses less, and a JPG made from it is strictly smaller in information than the file you already have. Convert a copy for the person who needs it and leave the original where it is.

The case for converting is delivery, and it is a strong one: somebody has to open this, and JPG opens on every device made in the last thirty years with no codec, no flag and no browser version to check. The rule of thumb is that the JXL is what you store and the JPG is what you send. Deleting the JXL afterwards is the only genuinely irreversible mistake available on this page.

How to convert a JXL file to JPG

  1. Drop the JXL file here, or click to choose one.
  2. Set the quality — 82 is fine for sending, 90 or more if it will be edited again.
  3. Download the JPG. The JXL is untouched; keep it if it is your only copy.

JXL and JPG: the same committee, thirty years apart

JXL compared with JPG
JXLJPG
Full nameJPEG XLJPEG Image
File extension.jxl.jpg, .jpeg, .jpe
Media typeimage/jxlimage/jpeg
CompressionEither, depending on the settingLossy — file size is bought with quality
First published20211992
Published byJoint Photographic Experts GroupJoint Photographic Experts Group
SpecificationISO/IEC 18181ITU-T T.81
LicensingOpen standardOpen standard
Standing todayNicheCurrent
Bit depth328
Colour it can describeRGB, greyscale, wide gamutRGB, greyscale, YCbCr
Largest image65,535 px per side
Opens in a browserSome browsersEvery browser
Considered insteadAVIF, WebP, PNGWebP, AVIF, HEIC

What is lost

JPG has no alpha channel. A transparent JXL comes out with those areas filled in — white unless something else is set — and no setting in JPG brings the transparency back.

JPG 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 JPG 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.

Opening the result

JPG 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 JPG, so there is a way to check the result against the original without a second tool.

File size and quality

The file gets substantially smaller, and it gets smaller by discarding detail. JXL keeps everything; JPG keeps what the eye is poor at noticing. On a photograph that trade is close to free; on text, a screenshot or a line drawing it is visible as haloing around the edges.

What each format is for

JXL is Joint Photographic Experts Group's format, published in 2021. It records 32 bits per channel.

JPG comes from Joint Photographic Experts Group and dates from 1992, specified as ITU-T T.81. Adobe Photoshop, GIMP and Preview all read it.

JPG was published in 1992 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.

JXL to JPG: quality, transparency and the JPEG inside

Are my JXL 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.

Why will my JXL file not open?

Because browser support went backwards. Chrome shipped JPEG XL behind a flag and then removed the decoder in 2023; Safari added it in version 17 and kept it; Firefox has never shipped it outside a flag. On Windows the format needs a codec installed before Photos or Explorer will show a thumbnail. JPG has none of those conditions attached.

My JXL was made from a JPEG — do I get the original file back?

Not here. JPEG XL can carry a losslessly repacked JPEG inside it, and libjxl’s own command-line decoder can reconstruct those original bytes exactly. This converter decodes to pixels and encodes a new JPEG, which is a second generation. If you still have the JPEG the JXL was made from, use that file rather than this conversion.

What quality should I use?

The default is 82, which is a normal delivery setting and hard to fault by eye. Raise it to 90 or above if the picture will be edited or re-saved afterwards, because every further JPEG save compounds the loss. There is no setting that makes a JPEG lossless.

What happens to a transparent background?

JPG cannot store transparency, so anything see-through is filled with the background colour — white unless you change it. The fill only happens when the picture actually contains non-opaque pixels; a normal photograph is untouched.

Will the JPG be bigger than the JXL?

Usually yes, and that is the trade. JPEG XL was designed two decades after JPEG and typically needs fewer bytes for the same picture, so converting for compatibility costs size. It is the price of the file opening everywhere.

Is the file uploaded anywhere?

No. Both the JPEG XL decoder and the JPEG encoder are WebAssembly modules that run inside your own browser tab, so the picture stays on your machine and there is no server copy to delete afterwards.

More about these formats

Where these figures come from

The claims this page makes about JXL and JPG are checkable, and these are the documents that settle them.