v0.14.0 — every option of the official encoders, byte for byte
Pre-releaseSkidbladnir 0.14.0 is a prerelease of the Tauri app. Copies installed from 0.8.0 onwards will offer it as an update, each to its own edition.
Every option of the official encoders
For a still image, any file the official command-line encoder can write, Skidbladnir can now write too, byte for byte: cwebp for WebP, avifenc (with libaom) for AVIF, cjxl for JPEG XL and heif-enc with Kvazaar for HEIC. Every option those tools have for one image is a control in the window, and each control's help names the flag it sets.
-
WebP gains every remaining
cwebpflag:-exact,-z,-qrange,-pre,-jpeg_like,-alpha_method,-noalpha,-blend_alpha,-resize_mode, crop, and fractional quality. -
AVIF now encodes with libavif and libaom, replacing
ravif, so everythingavifencoffers is available:- bit depths from 8 to 12 and the 16-bit extension
- 4:4:4, 4:2:2, 4:2:0 and 4:0:0 chroma
- CICP and range, target size, progressive layers, grids, tiling and scaling
- quantizers and libaom's own options
- pixel aspect, clean aperture, rotation and mirroring, content light level
- ICC, Exif and XMP, each kept, dropped or read from a file
-
JPEG XL exposes every
cjxloption, including the modular, progressive, filter, colour-space, metadata and container ones, with effort up to 11. -
HEIC exposes every
heif-encoption Kvazaar can honour:- Kvazaar's lossless coding and chroma downsampling
- the colour-profile presets and custom code points
- thumbnails, premultiplied alpha, rotation and mirroring
- tiles, 360° projection, a description, compatible brands and the compact
miniformat
The GPL edition's x265 controls sit in the same panel, as
heif-enc's-Land-poptions. -
JPEG input is decoded the way each tool decodes it: libjpeg-turbo 3.2.0, with
avifenc's andheif-enc's own JPEG readers built in. -
PNG gamma is corrected as
cwebp's libpng corrects it. -
Metadata follows each tool:
- WebP keeps it only when asked, as
cwebp -metadatadoes. - AVIF, JPEG XL and HEIC keep it by default, as
avifenc,cjxlandheif-encdo. - Settings saved by 0.12 and 0.13 load into these per-format options.
- WebP keeps it only when asked, as
The evidence
2,861 conversions are compared byte for byte against the real tools on every change, each tool built from the same source as the library the app links:
| Output | Reference | Cases |
|---|---|---|
| WebP | cwebp |
2,254, through PNG, JPEG, TIFF and WebP files, and -metadata |
| Animated WebP | img2webp, gif2webp |
67 |
| AVIF | avifenc |
191 |
| JPEG XL | cjxl |
202 |
| HEIC | heif-enc -e kvazaar |
147 |
Where the claim stops
- Still images:
- Animated WebP and GIF convert to animated WebP, as
img2webpandgif2webpwrite them. - Animated AVIF, HEIC and JPEG XL, and multi-image files, are not offered yet (ROADMAP Phase 8).
- Animated WebP and GIF convert to animated WebP, as
- Input formats: PNG, JPEG, TIFF, WebP, AVIF, JPEG XL, HEIC and GIF. PNM, Y4M, EXR and the like are not read yet.
- AVIF: with libaom,
avifenc's default codec. - HEIC: with Kvazaar in the standard edition, where
heif-enc -Lcannot work, so lossless is Kvazaar's own. The GPL edition's x265 output is checked by decoding it, not byte for byte. - One deliberate exception:
cwebpreads a TIFF with straight alpha premultiplied and darkens its semi-transparent pixels. Skidbladnir keeps the colours.
Known gaps
- Unsigned app: the app is not code-signed, and the macOS build has never been launched by a person.
- Cancel: an AVIF, JPEG XL or HEIC encode cannot be cancelled mid-file.