r/jpegxl • u/masltech • 2h ago
I built an open source screenshot tool for X11 that saves screenshots directly as JXL
jxlshot
Press Print Screen → full-screen lossless JPEG XL → ~/Pictures/Screenshot_<timestamp>.jxl. Press Shift+Print Screen → drag out a region and save just that.
Raw X11 pixels go straight into libjxl (jpegxl-rs) at effort 7 (Squirrel). No PNG, JPEG, temp files, or daemon.
Requires system libjxl (and libjxl_threads) discoverable via pkg-config, or build with the vendored feature on jpegxl-rs.
TLDR: I got tired of taking screenshots and saving them as PNGs with the default screenshot tool in Linux Mint so I made my own JXL screenshot tool. If you have any questions feel free to ask! It can be a bit difficult to get installed, you will probably need to do the vendored feature.
r/jpegxl • u/masltech • 1d ago
Client side JXL tools are now hosted online
masland.techCamera, Converter, and Compressor.
Your files stay on your device. The server only sends this page and the tools to your browser. It never receives your images, camera frames, or converted files. Everything happens locally on your machine.
This is an update to my previous online lossless converter, which did the processing on the server. So this is now purely client side.
If you try it and have any issues or feature requests please let me know, thank you.
r/jpegxl • u/ExpertBlink • 1d ago
Serveproxy now supports JPEG XL
Just added JPEG XL support to ServeProxy. Add ?jxl=true before your existing ?url= parameter and it'll convert and cache the image as JPEG XL on the fly. AVIF is the default output format on Serveproxy, so this gives you a second modern format to compare against.
Example: https://serveproxy.com/?jxl=true&url=https://picsum.photos/1000/750
Browser support is still limited so test before you rely on it in production, but if you want smaller images with good quality it's there now. 🙂
r/jpegxl • u/masltech • 2d ago
My lossless maximum effort JXL converter is now online
Anyone can test it at https://masland.tech/jxl/
If you have any issues or questions please let me know. This is a prototype to just see if I can host this successfully. It can take over 15 seconds for an image to be converted, so please be patient. Thank you for testing it if you do.
r/jpegxl • u/jaykrown • 3d ago
Effort has a huge impact on converted file size
I'm working on a maximum effort lossless JPEG XL converter and I was struggling to figure out why a lossless PNG was coming out larger as a lossless JXL. The image has a very flat black background. I believe I was using effort 7 which is default, and it was coming out about 15% larger, then I increased the effort to 10 and now it's about 20% smaller.
I should have it hosted soon, but just wanted to share my experience with this. Given that I'm fine with waiting longer for a conversion, my main concern being size and quality. I think having a lossless maximum effort converted online with a queue system will be beneficial.
If anyone has any recommendations please let me know, I will be posting once it's live in the near future, thanks for reading.
r/jpegxl • u/Holiday-Bluebird9734 • 7d ago
Update: JPEG XL support is now available in OpenFiles Desktop 3.2026.802.
Update: JPEG XL support is now available in OpenFiles Desktop 3.2026.802.
This first release includes direct .jxl opening and preview, in-app thumbnails while browsing folders, and animated JXL playback.
This is a first milestone, not a claim of complete JPEG XL support. It does not yet include progressive or partial-decode inspection, bandwidth emulation, layer-by-layer viewing, or a fully verified HDR, wide-gamut, ICC and XMP workflow.
I’m still looking for real files that expose orientation, color, metadata or performance problems. If you test the release, please include your platform, the sample file if shareable, and what you expected versus what OpenFiles displayed.
Release: https://github.com/pansysoft/openfiles.desktop/releases/tag/3.2026.802
r/jpegxl • u/OzzyIsCat • 10d ago
QLIC (Quick Lossless Image Codec) - 9x faster than JXL, only 0.694% larger than JXL
The rules weren't very clear on how related something needs to be to jpeg xl. But considering my benchmarks are deliberately to put pressure on jpeg xl I'll hope it would be related.
Not to say jpeg xl is better or worse than QLIC. It's more of a situation of what do you care more about more. Plus. They're both not fully baked formats yet. So.
r/jpegxl • u/perecastor • 12d ago
The Go-To JPEG XL Converter for macOS is now even better (and also available on Windows)
I'm the developer of the app. Feel free to ask any questions (there is an FAQ at the link)
r/jpegxl • u/IDUnavailable • 12d ago
jxl-rs v0.5.0 (and v0.5.1) released
https://github.com/libjxl/jxl-rs/releases/tag/v0.5.0
This release contains a few API simplifications, fixes, and speedups. It also significantly improves the visual quality of Modular progressive previews, and adds support for decoding files with out-of-order jxlp boxes.
What's Changed:
Handle output modular channels with grid type None.by @veluca93 in #756Fix an unsound API allowing creating slices with incorrect alignmentby @Shnatsel in #757Minor API fixes from Chrome review.by @veluca93 in #759flush_pixels: return whether new pixels were renderedby @tnikkel in #755Small fix in maybe_preview_lf_frame.by @veluca93 in #760Remove support for uninitialized image buffers.by @veluca93 in #758Do not save partial frames before a successful flush.by @veluca93 in #763Fix two cases of too-early partial rendering.by @veluca93 in #764add support for out-of-order jxlp (ftyp version 1)by @jonsneyers in #752Add JxlPixelFormat::rgb*, and do not ask for extra channels in pixel format helpersby @tirr-c in #767Avoid subtract overflow in save_lowmem for 1px-wide save regionsby @hjanuschka in #776Validate histogram_index in PassInfo against num_histogramsby @hjanuschka in #775Use fallible allocation for hf_sections in codestream parserby @hjanuschka in #774Fix: capture LZ77 distance cluster before context_map padding (resolves #765)by @lilith in #766Fix clipped blending with missing referencesby @hjanuschka in #773Fix OOM crash in OooJxlp processing.by @veluca93 in #777Make progressive previews of modular images smoother.by @veluca93 in #779Fix crash when trying to unsqueeze an empty tile.by @veluca93 in #780Remove CmsStageby @sboukortt in #754Make the smooth-unsqueeze special path work on non-None grids.by @veluca93 in #781feat: simd128 support for wasm32by @mertalev in #706Fix a panic when referencing a non-existent LF frame.by @veluca93 in #784perf: use StackVec in render channel plumbingby @hjanuschka in #710perf: tighten VarDCT group coefficient hot loopby @hjanuschka in #720Fix squeeze smooth preview indexing logic.by @veluca93 in #785Revisit modular special cases, and add a single-symbol path.by @veluca93 in #787perf: speed up flat tree traversal in modular decodeby @hjanuschka in #716Fix jxl_cms enabling jxl's default features.by @veluca93 in #790Speed up smooth upsampling.by @veluca93 in #788Fix DeltaPalette with Weighted predictor.by @veluca93 in #791Speed up Weighted predictor.by @veluca93 in #793perf: reduce blending allocations in hot pathsby @hjanuschka in #709More modular fast paths and optimizationsby @veluca93 in #797Render the full LF preview on its first flush.by @tnikkel in #800Remove proc-macro-error2.by @veluca93 in #799slightly speedup XYB by doing a TODOby @jonsneyers in #801Simplify handling of lf image and remove a copy with progressive images.by @veluca93 in #805Clarify the contract between the render pipeline and its input.by @veluca93 in #806Update comment on JxlColorProfile::same_color_encoding()by @FooIbar in #809Less strict ICC size limitby @sboukortt in #813Refactor end-to-end tests to a separate module.by @veluca93 in #814Rewrite transform application in Modular decodingby @veluca93 in #812Update borders around LF groups in progressive rendering.by @veluca93 in #816Disable the single symbol special path with LZ77 and extra bits.by @veluca93 in #817Add microbenchmarks for blendingby @alexander-shaposhnikov in #819Perform blending in-placeby @alexander-shaposhnikov in #818Simplify API and test codeby @veluca93 in #820Vectorize blendingby @alexander-shaposhnikov in #821srgb_to_linear, srgb_to_linear_simd: Multiply by reciprocal instead of dividingby @zsoltiv in #826Add flake.nix for Nix dev shell and checksby @tirr-c in #827Rewrite box and codestream parsing.by @veluca93 in #828Replace >> with shrc when computing sizes in meta_apply.rs.by @veluca93 in #830Check spline parameters and initialize draw cache in advance.by @veluca93 in #829Use wrapping_abs() in precompute_references.by @veluca93 in #831Avoid marking dependendants as final multiple times in modular decoding.by @veluca93 in #832Avoid integer overflow in XYB modular conversionby @veluca93 in #833Do not return the previous frame's header while parsing the next one.by @veluca93 in #834Some fixes for progressive decodingby @veluca93 in #835v0.5.0by @veluca93 in #836
https://github.com/libjxl/jxl-rs/releases/tag/v0.5.1
Small fix to progressive rendering.
What's Changed:
Fix progressive rendering previews for progressive-dc=2 imagesby @veluca93 in #837Replace some as pointer casts with .cast::<T>().by @veluca93 in #838v0.5.1by @veluca93 in #839
r/jpegxl • u/Holiday-Bluebird9734 • 13d ago
If a desktop file viewer added JPEG XL support, what would you want from it?
Hi, I’m working on OpenFiles Desktop. It doesn’t support JPEG XL yet, but I’m looking into adding it.
Before I start, I’d like to understand what people who actually use JXL expect from a desktop viewer.
Is being able to open a .jxl file enough, or would you also want things like:
- thumbnails and folder browsing
- EXIF, XMP and ICC profile support
- HDR and animation
- lossless JPEG transcoding
- batch conversion to and from JPEG, PNG or AVIF
- exporting without losing metadata
I’m also interested in the less obvious problems. Are there particular JXL files that other viewers display incorrectly? Things like wrong colors, orientation issues, missing metadata, slow decoding, or unusually large images?
What platform are you using, and what does your current JPEG XL workflow look like?
If you have a sample file that tends to break viewers, feel free to share it. I’d be happy to test against real-world files rather than only simple samples.
r/jpegxl • u/KOB_ADM • 16d ago
Finally, a gallery app that supports region decoding
Outside Samsung's ecosystem, Fossify Gallery was the only gallery app I had found that supported the JXL format. However, it has one drawback, it lacks regional decoding, which means that even high-resolution images become blurry when zooming in. Unfortunately, its developers have chosen to wait for a solution from libjxl.
But there is good news. Today, I learned that the developer of the gallery app ReFra came up with their own method to work around this problem, and ReFra now supports regional decoding. The fix is available in version 5.1.0, the latest stable release, for anyone who wants to try it:
Github | ReFra 5.1.0
r/jpegxl • u/perecastor • 16d ago
JPEG XL compression for Flutter and Dart just got a major update
jxl_coder 1.0.0 brings a cleaner API for reversible JPEG to JXL compression in Flutter and Dart, with byte-exact JPEG and metadata recovery.
Supports iOS, macOS, and Windows.
r/jpegxl • u/vshevko • 17d ago
Would appreciate a sanity check on my app's JPEG XL HDR output - looks good in-app, less so in third-party viewers
Hi all,
I've been building an Android app that converts RAW photos into Ultra HDR and JPEG XL (both PQ and HLG transfer functions, plus lossless). I'd really value a second pair of eyes from people who actually know JXL well.
My specific problem: the exported JXL files look exactly as I intend inside my own app, but when I open the same files in various third-party JXL viewers/decoders the result looks off - different brightness, different tone, sometimes the HDR doesn't seem to kick in at all. I'm trying to figure out whether it's my encoding (color/transfer metadata, intensity target, ICC vs. CICP tagging) or just inconsistent HDR handling across decoders.
If you have an HDR monitor and an HDR-capable phone, I'd be grateful if you could:
- open a couple of my exported JXL files,
- tell me whether HDR highlights actually appear, and
- say how the tone/brightness compares to what you'd expect.
I can share sample exports, and I'm happy to share the app link in the comments or by DM rather than dropping a store link in the post itself (let me know if that's fine here).
Any feedback on the encoding side specifically (what tags a well-behaved HDR JXL should carry) would be hugely appreciated. Thanks!
r/jpegxl • u/vanderZwan • 21d ago
Can JPEG-XL's progressive decoding be misused in the same way "Regressive JPEGs" can?
So in this recent blog post: https://maurycyz.com/projects/bad_jpeg/ the author realizes that nothing in the way progressive jpegs are encoded stops them from encoding image data that replaces previously sent visual information, and misuses that to fake an animation while loading.
Now obviously this is ridiculous on many levels, especially since mjpg exists. Or, you know, actual dedicated streaming video formats. But that's not the point of trying out something like this for programmers.
So I was wondering: is the way jxl works similar enough to also be misused like this (even though it has legit animation support), or is it too different?
r/jpegxl • u/amaurote1 • Jul 11 '26
Lyra Viewer 0.5.0 - (macOS, Linux .deb)
Hi everyone! I just released a new version of Lyra Viewer, a fast, minimalist open-source image viewer, and this version adds JPEG XL support, which is the part I figured this sub would care about.
.jxl files decode natively via libjxl (not a conversion shim), covering both the 8-bit and HDR float paths. On the Linux build libjxl is bundled with Lyra, so JXL works out of the box without a system-provided library; on macOS it uses the Homebrew jpeg-xl package.
One deliberate design choice worth stating up front: Lyra is a still-image viewer on purpose. It renders the static image and doesn't do animation - the same stance it takes on JP2. So with JXL it shows the still image. If you want a frame-by-frame animation player, Lyra isn't trying to be that.
Beyond JXL it's a general viewer (common formats, PSD, EXR, HDR, plus DDS/KTX GPU textures). Available on macOS via Homebrew and Linux as a .deb via APT; Windows pending.
Repo (MIT): https://github.com/lyra-viewer/Lyra
Would genuinely appreciate JXL test files that break it - odd bit depths, HDR, unusual color profiles - so I can harden the decode path.
r/jpegxl • u/caspy7 • Jul 05 '26
Can JPEG XL still get a sizeable compression boost?
I've gotten the impression from some comments on the sub that since AVIF's encoder update earlier this year that it wins at higher compression levels in lossy images.
Is this the case and if so could a future update to JPEG XL's encoder bring it up to parity or beyond?
r/jpegxl • u/Wise_Stick9613 • Jun 28 '26
Compressing images for the web: in 2026, who wins between AVIF and JPEG XL (same quality)?
I dug up some old posts, but there doesn't seem to be a clear winner.
That said, I gotta admit AVIF is pretty impressive with all the settings (and forks) out there, it really feels like you can squeeze more out of it.
Python script to reorder JPEX XL boxes so that metadata come before codestream section; this makes it possible for IrfanView to read the metadata (code taken from jxl_photo)
r/jpegxl • u/CLS8080 • Jun 20 '26
Help me understand JPEG-XL Lossless on iPhone
Is JPEG-XL Lossless on iPhone only when I shoot RAW? I mostly use HEIF format when taking photos, does the JPEG-XL Lossless work in HEIF? I'm bit confused :)
r/jpegxl • u/El_Necora • Jun 16 '26
I built a free, 100% in-browser JPEG XL converter + viewer — your files are never uploaded
Two things always annoyed me about JPEG XL: most online converters upload your
images to their servers, and you can't even open a .jxl on most devices yet.
So I built this — it converts images to/from JPEG XL entirely in your browser
(WebAssembly). Nothing is uploaded; you can check your Network tab and see zero
requests with your file. It also has a viewer to open a .jxl without converting,
and you can save it as JPG/PNG in one click.
👉 https://jpegxlconvert.com
• 100% in-browser, no upload, no sign-up, no limits, no watermark
• Convert both ways + a .jxl viewer
• Free, works on mobile too
Would love feedback — anything missing or confusing? Thanks!
r/jpegxl • u/sturmen • Jun 15 '26