Convert JXL to GIF

Converting JXL to GIF is a downgrade in every direction and sometimes the only option a system leaves you: 256 colours instead of millions, a flat background colour instead of an alpha channel, and often a larger file than the JPEG XL it came from. It runs entirely in your browser.

  • Where it runs In your browser. The file is never uploaded.
  • Lossy Some detail is traded for size. GIF cannot hold everything a JXL can.
  • File size limit Up to 100 MB per file, free, without an account.
  • Worth knowing Reduced to 256 colours, which is visible on photographs, and transparent areas are filled with the background colour rather than kept.

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

What JXL to GIF 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 GIF.

GIF36 KB5.1× larger

A photographic scene — smooth gradients, soft edges, grain. This is the case GIF 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 GIF.

GIF8 KB53% larger

A transparent background and a gradient across the shape. GIF 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 GIF.

GIF6 KB2.1× 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.

Who converts a JXL to GIF, and who should not

There is one good reason and it is external: the place the image has to go accepts GIF and refuses everything else. Old forum software, internal tools written a decade ago, some ticketing systems, a few email signature editors and a surprising number of embedded web interfaces are all in that category, and no argument about codecs helps you against an upload validator.

If your destination will take anything else, take anything else. WebP is smaller, keeps full colour and real transparency and is read by every browser; PNG is the lossless option where the receiving system is old but not ancient. This page is written for the constrained case, and being honest about that is more useful than pretending GIF is a reasonable target for a JPEG XL.

Two hundred and fifty-six colours, out of what a JXL held

GIF stores an indexed image: every pixel is a number pointing into a palette of at most 256 entries, and that limit is in the GIF89a specification rather than in any setting. JPEG XL comes from the opposite end — up to 32 bits per channel, wide-gamut colour, and no palette anywhere in the design.

On a photograph the collapse is visible immediately. A sky that ran through two hundred shades of blue gets a dozen, and the boundaries between them become bands rather than gradients. Flat material survives far better: a diagram, a screenshot of an interface, a logo on a plain background may use fewer than 256 distinct colours already and convert with no visible loss at all. If your JPEG XL is a screenshot of a form or a chart with six colours in it, none of the warnings on this page will apply to you.

A 1987 container holding 2021 material

GIF was published by CompuServe in 1987 and its current revision, GIF89a, dates from 1989. It predates the web, colour management, alpha channels as they are now understood, and every assumption a modern codec makes. JPEG XL was standardised in 2021 as ISO/IEC 18181 by the committee that wrote the original JPEG specification.

Thirty-four years separate them and it is not a gap that compression cleverness closes. The formats do not overlap in intent at any point: one was designed to move small graphics over a dial-up connection, the other to store photographs at archival quality. Everything on this page follows from that mismatch, and no converter can argue a photograph into a palette of 256 entries without something visible happening to it.

The GIF will probably be larger than the JXL was

This is the part people do not expect from a format with 256 colours. Before compression, a paletted image is one byte per pixel, so a 12-megapixel photograph is twelve million bytes of palette indexes. GIF then applies LZW, which finds runs of repeated values — abundant in flat graphics, almost absent in photographic noise.

The result is that a JPEG XL of two or three megabytes routinely becomes a GIF several times that size while looking substantially worse. If file size is any part of your reason for converting, stop here: this pair moves in the wrong direction on size and on quality at once, which is unusual even among lossy conversions. The one exception is the flat-graphic case: a diagram with large areas of a single colour is exactly what LZW was built for, and there a GIF can be genuinely small.

A flat fill, where the JXL had a channel

GIF transparency is a single palette entry flagged as invisible, with no in-between value for the row of half-transparent pixels that makes a cut-out edge look smooth. The encoder here goes one step further and flags no entry at all, so nothing in the GIF is transparent: the alpha channel is resolved before the palette is chosen, by filling the see-through areas with the background colour set above the drop zone.

That makes the result depend on one decision. Set the colour to the one the image will sit on and the anti-aliased edge blends into it exactly as it did in the JPEG XL; leave it at white over a dark page and the cut-out arrives inside a white rectangle. Where the transparency is the reason the image exists — a logo that has to work on backgrounds you do not control — WebP or PNG is the target that keeps it and GIF is the one that resolves it for you.

Only the first frame of an animated JXL reaches the GIF

Both formats can hold animation, which makes this a limit of the converter rather than of GIF. The JPEG XL decoder used here returns a single image, so an animated source yields a one-frame GIF with the remaining frames dropped by the codec before anything on this page sees them.

That is worth knowing before you start, because a still GIF is exactly the file nobody wants. If the sequence is the point, MP4 or WebM is both the correct format and a far smaller one — an animation that runs to several megabytes as a GIF is typically a tenth of that as video, and it plays with hardware decoding on any phone. The systems that still insist on GIF are usually the same ones that will not accept a video file either, which is worth establishing before you spend an evening on the conversion.

How the palette gets chosen when a JXL becomes a GIF

Something has to decide which 256 colours survive, and doing it badly is what produces the banded, posterised GIFs the format is remembered for. The converter builds the palette from the image itself, clustering the colours that actually appear rather than rounding each channel to a fixed grid, which is the same family of approach ImageMagick uses.

The palette is built in a reduced colour space to keep the work fast, which costs a little accuracy on subtle gradients in exchange for not spending several seconds on a large photograph. For a format that ends at 256 colours the trade is heavily worth making: the quantisation step, not the arithmetic precision inside it, is what dominates the result.

Nothing on this page trades detail against size

GIF has no quality parameter, which is why no quality setting is offered here at all. There is no rate to trade against detail the way there is in WebP or AVIF — the file is exactly as large as the palette indexes and the LZW dictionary make it, and the only lever with any effect on either is the number of pixels.

That makes the maximum-width control the one setting worth touching here. Halving the width of an image quarters the pixel count and therefore roughly quarters the GIF, and on a destination that only accepts GIF there is usually a size limit attached as well. Resize first, convert second, and check the result at the size it will actually be displayed at. GIF itself allows up to 65,535 pixels on a side, so the ceiling you hit will always be the destination's rather than the format's.

A GIF cannot record what the JXL knew about the photograph

JPEG XL carries EXIF, XMP and an ICC profile. GIF has nowhere to put any of them — no standard metadata block, no colour management, no capture information. The camera, the lens, the date, the coordinates and the colour space all end at this conversion, and there is no option that would keep them.

Whether that is a loss or a feature depends on why you are converting. Posting to a public forum, it is the outcome you would have asked for, and it is one fewer thing to remember to strip. Filing the same image as a record, it means the GIF is not the copy to file: the JPEG XL is, because it is the only one of the two that still knows where the picture came from.

Converting to GIF locally, with the JXL never leaving

The decode, the palette build and the GIF write all run in your browser, so nothing is uploaded and there is no per-file wait. Files up to 100 MB are accepted on the free tier, and a folder of JPEG XL files converts in one pass and comes back as a ZIP.

Keep the JPEG XL. This is the most lossy conversion in the set — colour, transparency, animation and often size all move the wrong way — and there is no route back from the GIF to what the original held. If the constrained system ever accepts a modern format, you want to still have the file to give it, and a second conversion from the master costs you nothing but the drop.

How to convert a JXL image into a GIF

  1. Drop your JXL files onto this page, or click to choose them.
  2. Set a maximum width if the destination has a size limit.
  3. Download the GIF files, or take the whole batch as a ZIP.

JXL versus GIF: 2021 material in a 1987 container

JXL compared with GIF
JXLGIF
Full nameJPEG XLGraphics Interchange Format
File extension.jxl.gif
Media typeimage/jxlimage/gif
CompressionEither, depending on the settingLossless — nothing is discarded
First published20211987
Published byJoint Photographic Experts GroupCompuServe
SpecificationISO/IEC 18181GIF89a
LicensingOpen standardOpen standard
Standing todayNicheLegacy, still read everywhere
Bit depth328
Colour it can describeRGB, greyscale, wide gamutindexed palette
Largest image65,535 px per side
Opens in a browserSome browsersEvery browser
Considered insteadAVIF, WebP, PNGWebP, MP4

What is lost

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

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

GIF stores at most 256 colours per frame. A photograph converted into one is reduced to a palette, which is what makes the sky look stepped rather than smooth — it is the format, not a quality setting.

JXL carries up to 32 bits per channel and GIF 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

GIF 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 and ImageMagick read both JXL and GIF, 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: JXL at archiving and photography, GIF at the web. 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.

GIF comes from CompuServe and dates from 1987, specified as GIF89a. GIMP, Adobe Photoshop and ImageMagick all read it.

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

JXL to GIF: colours, transparency and file size

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.

How much quality does a JPEG XL lose as a GIF?

A great deal on a photograph. GIF holds 256 colours in total, while the JPEG XL may describe millions and up to 32 bits per channel. Skies, skin tones and gradients are the first casualties, and they show as visible steps rather than as softness.

Will the GIF be smaller than the JPEG XL?

Usually not. A 12-megapixel image becomes twelve million palette indexes before GIF compression touches it, and LZW does poorly on photographic noise. It is common for the GIF to be several times the size of the JPEG XL it came from.

Does transparency survive?

No. The GIF format can mark one palette entry as transparent and the encoder here marks none, so the file you download is opaque throughout. The alpha channel becomes a flat fill: the see-through areas take the background colour set above the drop zone, white unless you change it, and the soft edges blend into it.

Can I convert an animated JPEG XL into an animated GIF?

Not here. The decoder returns a single image, so an animated source produces a one-frame GIF. If you need the motion, convert to MP4 or WebM, which will also be far smaller than the equivalent GIF.

Why is there no quality setting on this page?

Because GIF has no quality parameter to set. The size and the appearance are decided entirely by which 256 colours the palette ends up holding, which the converter chooses from the image itself rather than from a number you supply, so there is no number for you to supply either.

Is there something better than GIF I could use instead?

Almost always. WebP is smaller, keeps every colour and real transparency, and is read by every browser. PNG is the lossless choice where the destination is old but not that old. GIF is right only when the receiving system genuinely accepts nothing else.

More about these formats

Where these figures come from

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