anyjxl

Turn ANY image into JPEG XL. Free and private.

Drop images here
or click to select files

Conversion Settings

Presets

Four starting points, each one a set of the controls below. Picking one changes those controls and nothing else, so anything you adjust afterwards stays adjusted — the chip simply stops being highlighted.

Quality

Higher = better quality, larger file. 100 is lossless; 75-90 is a good range for photos.

85

Encoder Effort

Higher effort usually makes smaller files and takes longer.

7

Advanced Settings

You most likely do not need to touch anything below. If you get lost, reset back to the defaults anytime.

JPEG XL Mode

Lossy is best for photos. Lossless preserves decoded pixels and is larger.

Lossy Transform

VarDCT is a frequency transform built for photographs. Modular predicts each pixel from its neighbours and stores the difference, which suits flat colour and hard edges: screenshots, diagrams, line art, pixel art. Measured on a 1280×800 screenshot at the default quality, Modular is 45% smaller — 77 KB against 42 KB — while on a photograph it is a wash and up to twice as slow. libjxl never chooses it for a lossy encode on its own, so it has to be asked for.

Decode Speed

0 gives best density and quality. Higher values favor faster decoding.

0

JPEG Inputs

A JPEG's coefficients move into JPEG XL untouched, so the picture is re-packed rather than re-encoded: identical pixels, no generation loss, and 13% to 34% smaller across the JPEGs measured here.

Off, the transcode keeps the picture and drops the file: the original JPEG cannot be rebuilt. On, the JXL also carries what it takes to reproduce that file byte for byte — every marker, all metadata, and anything stored after the image. It usually costs under 1%, but an iPhone HDR photo, whose gain map is a second image hidden in the file, spent 24% of the output on it.

Animation

JPEG XL stores animation natively, so an animated GIF, APNG or WebP becomes one animated JXL. Every frame is a full encode, so long animations take a while.

Progressive Mode

Progressive shows a quick preview that sharpens as it loads. Useful when the file will be served over a network; it costs roughly 13% more file size and 39% more memory to encode.

Transparency

JPEG XL supports transparency. Alpha is preserved by default.

Grayscale

Metadata

Turning these off saves space and improves privacy.

Download

Rasterization

DPI for converting PDFs and SVGs to pixels.

150

PDF & TIFF (multi-page)


Output mode:

SVG Rasterization

2048

How it works

libjxl runs in your browser via WebAssembly. You get compact JPEG XL files with lossy, lossless, alpha, metadata options, and support for 18 input formats.

Encoder: libjxl 0.12.0 (WebAssembly).

Nothing uploads. Your images stay in your browser.

Privacy

Your images never leave your device. Conversion happens locally in this browser.

Animated GIF, APNG and WebP

JPEG XL stores animation in the format itself, so an animated source converts to a single animated JXL rather than a still. Frame timing and the loop count come across with it.

Every frame is a full JPEG XL encode, so a long animation takes proportionally longer than a single image. Use the frame limit in Settings, or "First frame only", if you just want a still.

18 Input Formats We Convert to JPEG XL

JPG/JPEG: Recompress photos into JPEG XL for much smaller files, or use reversible transcode when possible.

PNG: Move screenshots, artwork, and transparent images into JPEG XL for lossless or high-quality smaller files.

WebP: Convert web images into JPEG XL when you want one efficient archive format with stronger quality controls.

AVIF: Re-encode AVIF sources to JPEG XL for fast local workflows, alpha support, and adjustable effort/quality.

HEIC: Turn iPhone photos into JPEG XL for compact storage without staying tied to Apple's container.

HEIF: Convert HEIF camera files into JPEG XL for a modern still-image format built for archival efficiency.

PDF: Rasterize pages to pixels, then encode them as JPEG XL when you want image files instead of documents.

TIFF/TIF: Replace bulky scans and archival TIFFs with JPEG XL while keeping lossless options available.

SVG: Rasterize vector art at your chosen size, then save it as a compact JPEG XL image.

SVGZ: Decode compressed SVG artwork, rasterize it, and encode the result to JPEG XL.

GIF: Convert the first frame of GIFs into a still JPEG XL with far better compression.

BMP: Shrink uncompressed bitmap files dramatically by encoding them as JPEG XL.

TGA: Convert game and graphics-source TGA files into smaller JPEG XL images.

ICO/CUR: Extract icon imagery and save it as a normal JPEG XL image.

PNM: Convert portable anymap images into compact JPEG XL output.

PPM: Encode raw color portable pixmaps as much smaller JPEG XL files.

PGM: Convert grayscale portable graymaps into efficient JPEG XL images.

PBM/PAM: Turn monochrome bitmaps and arbitrary portable maps into JPEG XL files that are easier to store and share.

Re-encoding JPEGs

JPEG inputs use libjxl's coefficient-lossless transcode when settings permit, avoiding another lossy pixel re-encode. Exact original JPEG reconstruction is a separate opt-in.

Terms

Free, as-is, no warranties.