v1.1 — JPEG XL, one decode path, fewer dependencies.
Three new things, one architectural change, and a half-dozen fewer direct dependencies. The default WebP output is still byte-identical to v1.0.
JPEG XL · in and out
JPEG XL (.jxl) is now a first-class
input and output format. It's a royalty-free modern codec with
excellent compression and full alpha support — the format every
browser has politely refused to ship for the last three years, but
which is great when you control the pipeline.
Quality and effort knobs are exposed in the options panel. The
default effort of 7 matches libjxl's own default
(highest compression, slow). For everyday batches, turn it down to
4 — encodes get roughly 4× faster and files stay close in size.
Strip metadata · Preserve color profile
Two new global toggles live in the Privacy section.
Strip metadata is on by default. It scrubs EXIF, GPS coordinates, camera info, XMP and other personal data from converted outputs. Sharp-native formats (JPEG, PNG, WebP, AVIF, GIF, TIFF) respect the toggle directly.
Preserve color profile pairs with it: drop personal data but keep the ICC profile so colors don't shift after conversion. Useful when you're sharing photos publicly but want them to look right in color-managed apps. Disabled when Strip metadata is off — redundant in that case.
Hybrid decode/encode architecture
This is the change that took the most time and shows the least.
sharp continues to handle the hot path — JPEG, PNG,
WebP, AVIF, GIF, TIFF — at native libvips speed. Everything else
(HEIC, PSD, BMP, JPEG XL, and future additions like JP2, EXR,
RAW) now routes through a single
magick-wasm
dependency instead of one bespoke JS library per format.
The cost: ~7 MB net bundle increase. The win: adding a new format is now one dispatch entry, not a new dependency.
Removed direct deps:
ag-psd, heic-decode,
libheif-js, bmp-js.
32-bit BMP output
BMP output is now 32-bit RGBA instead of 24-bit RGB. It preserves source transparency at the cost of ~33% larger files on transparent sources. Every modern tool — Preview, Photoshop, GIMP, Paint.NET, Windows Paint on Win10+ — handles 32-bit BMPs without issue.
What stayed identical
WebP output is byte-identical to every previous LocalPix and LocalConvert release, all the way back to the original WEBPConvert app. Default WebP at quality 80, effort 4 produces the same bytes as v1.0.0. If you're hashing outputs in a pipeline, nothing needs to change.
All v1.0 features remain: drag-and-drop, segmented format selector, dark mode, ⌘O / ⌘⇧O menu actions, Electron folder picker, ICO multi-size output, SVG density control, JPEG alpha background fill, animated source flattening.
Known limitations
-
PDF input is not yet supported. Magick-wasm
relies on a system Ghostscript binary for PDF rasterization,
which we can't ship in a packaged Electron app. PDF support
requires a separate decoder (e.g.
mupdf-js) — planned for v1.1.x. - RAW input (DNG, CR2, NEF, ARW) is advertised by magick-wasm but hasn't been validated against real camera files yet. Planned for v1.2.
- Metadata toggle only fully applies to sharp-native outputs (see callout above).
How to upgrade
Download the v1.1 .dmg or .exe from the downloads page and replace your existing install. LocalPix has no settings file outside the OS defaults system — your output folder choice persists across the upgrade.