Skip to content

v1.4.0 — EXR and raw YUV input, JPEG XL re-encoded as cjxl does, per-frame animation options

Choose a tag to compare

@physics515 physics515 released this 03 Oct 05:14
f58ea79

Skidbladnir 1.4.0 adds the last input formats the official encoders read, re-encodes JPEG XL files the way cjxl does, and lets an animation change its settings partway through.

New

  • OpenEXR input. .exr files convert to every format. Half and float RGB, RGBA and gray are supported, including a named layer's channels, and every compression except HTJ2K.
    • To JPEG XL the result is byte for byte what cjxl writes from the same file: linear light, the file's chromaticities and white luminance, premultiplied alpha, and its other channels as named extra channels.
    • The other formats get the image with the sRGB curve, clipped at white.
  • Raw YUV input (.yuv, 8-bit I420), as cwebp -s reads it. Set the size under Raw YUV input in the settings. To WebP the result is byte for byte what cwebp -s writes.
  • JPEG XL to JPEG XL matches cjxl. A .jxl is now decoded as cjxl decodes one: its own colour, extra channels, Exif (with the orientation reset once the pixels are turned upright), XMP, IPTC and other boxes. Re-encoding it at any setting gives cjxl's file. JPEG XL files with several frames or layers are still converted from their pixels.
  • Change an animation's settings from any frame on, as img2webp's frame options do. Under Animation, add a change from a frame: lossy or lossless, quality, method, exact, frame duration.
  • SVG cropped and resized now draws only the crop, at the new size, so its edges stay sharp.

Licences

  • The third-party notices in every installer (and in About) now list the Rust crates and JavaScript packages compiled into the app, with their licence texts.
  • The Linux AppImage now carries the licence of every library it bundles. Earlier AppImages left out the copyright files of 10 of the 110 Ubuntu packages they bundle, such as GLib's networking module, dconf, libdbus and libcap. The release build now adds them and checks that none is missing.

Byte-for-byte parity

4,270 tested cases against cwebp, img2webp, gif2webp, avifenc, cjxl and heif-enc, up from 3,831. Every one runs in CI on Linux x86-64, Linux ARM64 and macOS (Apple silicon). New: Windows too, for all of WebP's and animated WebP's cases and nearly all of JPEG XL's, against reference tools built there.

Known gaps

  • JPEG XL files with several frames or layers, and the other multi-image features of the official tools (animated AVIF and HEIC, grids from several files), are not converted as those tools convert them yet.
  • heif-enc --raw has nothing to match in this build: its HEVC encoders cannot write raw samples.
  • The macOS and Windows builds are built and tested in CI, but the gpui window on those systems has not yet been opened by a person.