Skip to content

v0.15.0 — PNM and PFM input, metadata for animations, four conversions brought to parity

Pre-release
Pre-release

Choose a tag to compare

@physics515 physics515 released this 01 Oct 18:04
4bf3a01

Skidbladnir 0.15.0 adds new input formats, keeps metadata for animations, and fixes four conversions so their output matches the official encoder byte for byte. It is a prerelease, like every release since the move to Tauri.

New

  • PNM input: binary PGM, PPM and PAM, 8 or 16 bits, with or without alpha.
    • Converted to WebP exactly as cwebp reads them.
    • Converted to JPEG XL exactly as cjxl reads them, at the file's own bit depth.
  • PFM input: floating-point images.
    • Converted to JPEG XL exactly as cjxl does, floats and all.
    • Other formats get the image clamped to its nominal range.
  • Metadata in animations.
    • GIF → animated WebP: a GIF's colour profile and XMP are kept when you ask, as gif2webp -metadata keeps them.
    • Animated WebP re-encoded: its colour profile, Exif and XMP are kept when you ask. Before, they were always dropped.

Fixed (output now matches the official tool)

  • TIFF with premultiplied alpha → WebP came out darker than cwebp's conversion wherever the image was semi-transparent. It now matches cwebp exactly.
  • Still GIF → JPEG XL:
    • now converts as cjxl does;
    • lossless when no quality is set, as cjxl defaults for GIF.
  • Lossy WebP → HEIC now converts as heif-enc does: straight from the WebP's own YCbCr planes, with no RGB round trip.
  • HEIC → HEIC:
    • now converts as heif-enc does;
    • keeps the source's Exif and XMP, which were dropped before.

Under the hood

  • Tauri 2.12.1, plus current dependencies.
  • The Windows build now links a single C runtime (the static one) instead of a mix of static and dynamic. CI builds and drives it; it has not been run on a machine outside CI.
  • Byte-for-byte parity tests against the official encoders now number 3,387 cases, up from 2,861.

Known gaps (unchanged unless noted)

  • macOS: the .dmgs are built by CI but have never been launched.
  • No code signing on any platform.
  • TIFF alpha, two deliberate differences from the official tools:
    • A TIFF with straight alpha keeps its true colours, where cwebp darkens it.
    • A TIFF with premultiplied alpha converted to HEIC keeps its true colours, where heif-enc would not un-multiply it. This one is pending a decision.
  • Animations: AVIF, JPEG XL and HEIC output take still images only.
  • Inputs not yet read: Y4M, raw pixels, PGX and EXR.