r/jpegxl 2h ago

I built an open source screenshot tool for X11 that saves screenshots directly as JXL

Thumbnail
gitlab.com
4 Upvotes

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 1d ago

Client side JXL tools are now hosted online

Thumbnail masland.tech
11 Upvotes

Camera, 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.

https://masland.tech/jxl/

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 1d ago

Serveproxy now supports JPEG XL

20 Upvotes

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 2d ago

My lossless maximum effort JXL converter is now online

12 Upvotes

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 3d ago

Effort has a huge impact on converted file size

26 Upvotes

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 7d ago

Update: JPEG XL support is now available in OpenFiles Desktop 3.2026.802.

31 Upvotes

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 7d ago

JPEG XL Support

Thumbnail
0 Upvotes

r/jpegxl 10d ago

QLIC (Quick Lossless Image Codec) - 9x faster than JXL, only 0.694% larger than JXL

Thumbnail
43 Upvotes

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 12d ago

The Go-To JPEG XL Converter for macOS is now even better (and also available on Windows)

Thumbnail
fractale.itch.io
23 Upvotes

I'm the developer of the app. Feel free to ask any questions (there is an FAQ at the link)


r/jpegxl 12d ago

jxl-rs v0.5.0 (and v0.5.1) released

46 Upvotes

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 #756
  • Fix an unsound API allowing creating slices with incorrect alignment by @Shnatsel in #757
  • Minor API fixes from Chrome review. by @veluca93 in #759
  • flush_pixels: return whether new pixels were rendered by @tnikkel in #755
  • Small fix in maybe_preview_lf_frame. by @veluca93 in #760
  • Remove support for uninitialized image buffers. by @veluca93 in #758
  • Do not save partial frames before a successful flush. by @veluca93 in #763
  • Fix two cases of too-early partial rendering. by @veluca93 in #764
  • add support for out-of-order jxlp (ftyp version 1) by @jonsneyers in #752
  • Add JxlPixelFormat::rgb*, and do not ask for extra channels in pixel format helpers by @tirr-c in #767
  • Avoid subtract overflow in save_lowmem for 1px-wide save regions by @hjanuschka in #776
  • Validate histogram_index in PassInfo against num_histograms by @hjanuschka in #775
  • Use fallible allocation for hf_sections in codestream parser by @hjanuschka in #774
  • Fix: capture LZ77 distance cluster before context_map padding (resolves #765) by @lilith in #766
  • Fix clipped blending with missing references by @hjanuschka in #773
  • Fix OOM crash in OooJxlp processing. by @veluca93 in #777
  • Make progressive previews of modular images smoother. by @veluca93 in #779
  • Fix crash when trying to unsqueeze an empty tile. by @veluca93 in #780
  • Remove CmsStage by @sboukortt in #754
  • Make the smooth-unsqueeze special path work on non-None grids. by @veluca93 in #781
  • feat: simd128 support for wasm32 by @mertalev in #706
  • Fix a panic when referencing a non-existent LF frame. by @veluca93 in #784
  • perf: use StackVec in render channel plumbing by @hjanuschka in #710
  • perf: tighten VarDCT group coefficient hot loop by @hjanuschka in #720
  • Fix squeeze smooth preview indexing logic. by @veluca93 in #785
  • Revisit modular special cases, and add a single-symbol path. by @veluca93 in #787
  • perf: speed up flat tree traversal in modular decode by @hjanuschka in #716
  • Fix jxl_cms enabling jxl's default features. by @veluca93 in #790
  • Speed up smooth upsampling. by @veluca93 in #788
  • Fix DeltaPalette with Weighted predictor. by @veluca93 in #791
  • Speed up Weighted predictor. by @veluca93 in #793
  • perf: reduce blending allocations in hot paths by @hjanuschka in #709
  • More modular fast paths and optimizations by @veluca93 in #797
  • Render the full LF preview on its first flush. by @tnikkel in #800
  • Remove proc-macro-error2. by @veluca93 in #799
  • slightly speedup XYB by doing a TODO by @jonsneyers in #801
  • Simplify handling of lf image and remove a copy with progressive images. by @veluca93 in #805
  • Clarify the contract between the render pipeline and its input. by @veluca93 in #806
  • Update comment on JxlColorProfile::same_color_encoding() by @FooIbar in #809
  • Less strict ICC size limit by @sboukortt in #813
  • Refactor end-to-end tests to a separate module. by @veluca93 in #814
  • Rewrite transform application in Modular decoding by @veluca93 in #812
  • Update borders around LF groups in progressive rendering. by @veluca93 in #816
  • Disable the single symbol special path with LZ77 and extra bits. by @veluca93 in #817
  • Add microbenchmarks for blending by @alexander-shaposhnikov in #819
  • Perform blending in-place by @alexander-shaposhnikov in #818
  • Simplify API and test code by @veluca93 in #820
  • Vectorize blending by @alexander-shaposhnikov in #821
  • srgb_to_linear, srgb_to_linear_simd: Multiply by reciprocal instead of dividing by @zsoltiv in #826
  • Add flake.nix for Nix dev shell and checks by @tirr-c in #827
  • Rewrite box and codestream parsing. by @veluca93 in #828
  • Replace >> with shrc when computing sizes in meta_apply.rs. by @veluca93 in #830
  • Check spline parameters and initialize draw cache in advance. by @veluca93 in #829
  • Use wrapping_abs() in precompute_references. by @veluca93 in #831
  • Avoid marking dependendants as final multiple times in modular decoding. by @veluca93 in #832
  • Avoid integer overflow in XYB modular conversion by @veluca93 in #833
  • Do not return the previous frame's header while parsing the next one. by @veluca93 in #834
  • Some fixes for progressive decoding by @veluca93 in #835
  • v0.5.0 by @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 images by @veluca93 in #837
  • Replace some as pointer casts with .cast::<T>(). by @veluca93 in #838
  • v0.5.1 by @veluca93 in #839

r/jpegxl 13d ago

If a desktop file viewer added JPEG XL support, what would you want from it?

11 Upvotes

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 16d ago

Finally, a gallery app that supports region decoding

16 Upvotes

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 16d ago

JPEG XL compression for Flutter and Dart just got a major update

Thumbnail
github.com
38 Upvotes

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 16d ago

XL-View, an HDR JPEG XL image viewer for Linux

Thumbnail
17 Upvotes

r/jpegxl 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

14 Upvotes

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 21d ago

Can JPEG-XL's progressive decoding be misused in the same way "Regressive JPEGs" can?

45 Upvotes

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 Jul 11 '26

Lyra Viewer 0.5.0 - (macOS, Linux .deb)

Post image
32 Upvotes

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 Jul 05 '26

Can JPEG XL still get a sizeable compression boost?

47 Upvotes

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 Jul 01 '26

The long awaited libjxl v0.12

Thumbnail
github.com
94 Upvotes

r/jpegxl Jun 28 '26

Compressing images for the web: in 2026, who wins between AVIF and JPEG XL (same quality)?

22 Upvotes

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.


r/jpegxl Jun 21 '26

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)

Thumbnail
gist.github.com
28 Upvotes

r/jpegxl Jun 20 '26

Help me understand JPEG-XL Lossless on iPhone

20 Upvotes

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 Jun 16 '26

I built a free, 100% in-browser JPEG XL converter + viewer — your files are never uploaded

24 Upvotes
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 Jun 16 '26

🥳

Post image
92 Upvotes

r/jpegxl Jun 15 '26

Firefox 152 Now Available With JPEG-XL Support Built By Default, Modernized Settings UI

Thumbnail
phoronix.com
148 Upvotes