Skip to content

v1.1.0 — TIFF transparency: correct by default, or exactly as the official tools read it

Choose a tag to compare

@physics515 physics515 released this 01 Oct 20:56
5b48c9b

Skidbladnir 1.1.0 is a free, open-source desktop app for Windows, Linux and macOS (experimental) that converts images to WebP, AVIF, JPEG XL and HEIC. Copies installed from 0.8.0 onwards offer it as an update, each to its own edition.

Download

Your computer File
Windows 10 or 11, 64-bit Skidbladnir_1.1.0_x64-setup.exe
Mac with Apple silicon (experimental) Skidbladnir_1.1.0_aarch64.dmg
Mac with an Intel processor (experimental) Skidbladnir_1.1.0_x64.dmg
Ubuntu 22.04+, Debian 12+, Linux Mint 21+ Skidbladnir_1.1.0_amd64.deb
Any other 64-bit Linux with glibc 2.35+ Skidbladnir_1.1.0_amd64.AppImage

Not sure which edition? Take the files above, the standard edition. The files named Skidbladnir-GPL_… are the GPL edition: the same app, with x265 writing its HEIC (-L lossless, 4:4:4 and 4:2:2 chroma, 10-bit). Both are free; the licence matters only if you redistribute the app (Editions).

The other files are not installers. The .app.tar.gz files are for the in-app updater on a Mac. Skidbladnir-1.1.0-source.tar.gz is the complete source with every submodule, which GitHub's own "Source code" archives leave out. GitHub shows each file's SHA-256 beside it, for checking a download.

Opening it the first time

Nothing is code-signed yet, so Windows and macOS warn before they open it.

  • Windows: SmartScreen says Windows protected your PC. Click More info, then Run anyway. It installs for your account only, without administrator rights. With Smart App Control turned on, Windows blocks unsigned apps and offers no way past.
  • macOS (experimental): drag Skidbladnir to Applications and open it. When macOS says it cannot verify the app, close the message, open System Settings > Privacy & Security and click Open Anyway. If it says the app is damaged, run xattr -dr com.apple.quarantine /Applications/Skidbladnir.app in Terminal. CI builds the Mac app and launches it, but nobody has opened it on a real Mac yet, so Mac reports are very welcome.
  • Linux: sudo apt install ./Skidbladnir_1.1.0_amd64.deb, or chmod +x the AppImage and run it (it needs FUSE; otherwise run it with --appimage-extract-and-run).

What it is

Each of these formats has an official encoder, and each is a command-line tool with dozens of options. For a still image, every option of cwebp, avifenc (with libaom), cjxl and heif-enc (with Kvazaar) is a control in Skidbladnir, labelled with the flag it sets, and Skidbladnir writes the same bytes those tools write, built from the same library versions. CI checks that on every change: 3,665 conversions run through both the tools and Skidbladnir and must come out identical.

It reads PNG, JPEG (including Photoshop's CMYK), TIFF, WebP, GIF, AVIF, JPEG XL, HEIC, PNM/PAM and PFM; converts animated GIF and WebP to animated WebP; keeps colour profiles, Exif and XMP the way each tool keeps them; and shows the result beside the original before anything is written. Conversion happens on your computer: the app's one network request is the update check at startup.

Where the claim stops

The README lists the limits under What "every option" means. In short:

  • Still images, plus animated WebP as img2webp and gif2webp write it. Their -mixed, -min_size, -kmin/-kmax, -loop and per-frame options are not offered yet, and neither are animated AVIF, JPEG XL or HEIC, or files built from several images.
  • The same encoders, built the same way: libwebp 1.6.0, libavif 1.4.2 with libaom 3.15.1, libjxl 0.12.0, libheif 1.23.5 with Kvazaar 2.3.2. A packaged avifenc usually links libyuv and writes other bytes.
  • Bytes are compared on Linux x86-64. The Windows and macOS builds link the same sources.
  • TIFF transparency is read correctly by default. cwebp darkens a TIFF with straight alpha, and heif-enc one with premultiplied alpha. To get exactly their results, turn on TIFF input → Read transparency as the official tool does.
  • The GPL edition's HEIC is checked by decoding it, not byte for byte.
  • Y4M, PGX, EXR and raw-pixel input are not read yet.

New since 1.0.0

  • TIFF transparency, your choice. Skidbladnir still reads a semi-transparent TIFF correctly by default. Two official tools misread it: cwebp darkens a TIFF with straight alpha, and heif-enc one with premultiplied alpha. The new setting TIFF input → Read transparency as the official tool does (beside Crop and Resize) reproduces their output byte for byte; with it, there is no cwebp or heif-enc TIFF result Skidbladnir cannot produce. AVIF and JPEG XL are unaffected (avifenc and cjxl do not read TIFF). It is off by default and saved with your presets.
  • 278 more byte-for-byte comparisons in CI cover it, for 3,665 in all.

Known gaps

  • Not code-signed on any platform.
  • macOS is experimental until a person has run it on a real Mac.
  • An AVIF, JPEG XL or HEIC encode cannot be cancelled mid-file.
  • No builds for 32-bit systems, Linux on ARM or Windows on ARM.