The format that replaces JPEG
JPEG turns thirty-four this year. JPEG XL is the standard built to succeed it: the same picture at a noticeably smaller size, and it finally shipped in browsers. Convert your images to .jxl and see the difference in bytes — or drop a .jxl someone sent you and get a PNG back.
Your images are never uploaded. The encoder is WebAssembly, running on your own machine.
Drop your images here
JPG, PNG, WebP or GIF to convert — or a .jxl file to turn back into PNG. Up to 20 at once.
Will the file I get actually open?
Not everywhere yet. Safari has read JPEG XL since version 17, and Chrome and Firefox only switch it on in their newest releases — around one browser in six worldwide today, climbing fast. If a picture has to work for everyone right now, WebP is still the safer choice. If you receive a .jxl you can't open, drop it in above and you'll get a PNG.
What “keep every pixel” does
It encodes losslessly from the image's pixels. That is not the same as JPEG recompression — the trick where an existing JPEG is repacked about 20% smaller and can be restored bit-for-bit. libjxl can do that, but the WebAssembly build behind this tool encodes from pixels only, so that mode isn't offered here rather than half-offered.
How this works
libjxl, the reference JPEG XL encoder, compiled to WebAssembly and run in a Web Worker so the page stays responsive while it works. The codec is fetched only when you convert your first file, and your images are read into memory and never sent anywhere.