JPG to JXL
Write a JPG out as JPEG XL. This goes through pixels, so what lands is a fresh encode, not the lossless repack of the original JPEG bytes.
Runs on your device. The file is never uploaded.
JPG to JXL reads the file as pixels and encodes them from scratch, which is not the trick JPEG XL is known for. Packing an existing JPEG whole and giving the identical bytes back needs the box container and its reconstruction data. What lands here is a bare codestream with no way back to the original bytes.
Questions
Does JPG to JXL upload my files?
No. JPG to JXL runs inside this browser tab, in a Web Worker on your own machine, and no part of your file is sent anywhere. There is no upload step to skip — the tool cannot reach a server even if it wanted to, and the counter on the homepage shows the number of outbound requests the page has made: zero.
How many files can I use at once?
Drop as many as you like. Each file is handled separately and comes back as its own result, so twenty files in means twenty results out.
What can I change about the result?
One setting: quality (Quality 1-100). Defaults are filled in, so it runs without changing anything.
Is JPG to JXL free, and do I need an account?
It is free and there is no account, no sign-in and no quota. Nothing is metered because nothing runs on a server — the only limit is your own device's memory, which is what decides how large a file it can handle.
Does it work offline?
Yes. The whole site is stored in your browser after the first visit, so JPG to JXL keeps working with the network off. Tools that use a machine-learning model download that model once, on first use, and run offline afterwards.
Can I use JPG to JXL outside the browser?
Yes. Every tool here is the same code on three surfaces: this page, a CLI command, and an MCP tool an AI agent can call. `jpg-to-jxl` is the name it goes by on all three.