Skip to content

v0.6.0 · GUI overhaul: quality metrics, presets, sortable table & native AVIF EXIF

Choose a tag to compare

@github-actions github-actions released this 01 Oct 19:26
· 50 commits to main since this release
91100bc

One of the biggest byteshaver-gui update so far: six planned workstreams plus two
community-feedback rounds turn the GUI into a proper conversion workbench —
with compression-ratio feedback, perceptual quality metrics, presets, and a
fully reworked file table. On the CLI side, AVIF outputs now embed EXIF
natively
.

✨ Highlights

  • Quality measurement — right-click any converted file to measure DSSIM
    and PSNR (memory-bounded, computed off-thread), or open the visual
    difference inspector
    : side-by-side, swipe and amplified-difference
    heatmap views with synchronized zoom.
  • Presets — save your target-format + policy combinations as
    shareable files (title & description included), or start from built-in,
    literature-based profiles for AVIF, WebP, JPEG XL and oxipng.
  • File table — sortable columns, drag-to-reorder headers, configurable
    data fields (modified date, dimensions, EXIF camera/date-taken/ISO/
    exposure), target-format column, per-row "open converted file" /
    "open output folder" actions, and optional thumbnails.
  • Progress that tells the truth — a segmented bar shades finished files
    by their result and animates only the files currently being worked on;
    a successful, size-saving run earns a compression-ratio-scaled confetti
    burst right on the converted rows 🎉 (configurable, reduced-motion aware).
  • Native AVIF EXIF — avif targets embed EXIF via ravif ≥ 0.13 as a
    standard HEIF Exif item; the "metadata dropped" warnings for avif are gone.

🖥️ Desktop GUI

  • Compression ratio with subtle color hints in rows, footer and report
  • Options UX: quality-ladder chips (⚡ speed / ▤ size) per encoder, aligned
    option form, restore-defaults with undo, auto-sizing options panel that
    hands space back to the file table when collapsed
  • Independent OS windows: run report, about, difference inspector and the
    preset windows can be dragged outside the main window; the report window
    resizes properly and remembers its geometry
  • Windows integration: "show in folder" selects the written file (paths
    with spaces fixed), drag-and-drop unchanged
  • Output handling: "same as input" ↔ "directory:" toggle keeps your path,
    an empty directory is a start blocker instead of writing silently,
    state-colored Convert button

🧩 CLI & core

  • avif: EXIF embedding (follows the global --exif policy; pixels unaffected)
  • Job API: Outcome::Encoded/SkippedExisting now carry output_path
    (front-ends can open/reveal results); new public helpers
    input::decode_rgba and the typed ExifSummary reader
  • Encoder capability descriptions are identity-only; the option detail
    stays in the per-run "Using …" line

⚠️ Compatibility notes

  • JSON-lines event logs gain an output_path field (additive — existing
    parsers unaffected)
  • GUI settings.json migrates automatically (output mode is now explicit;
    old flat and embedded layouts both load)
  • New GUI-only dependencies (egui_extras, image, dssim) are pure Rust;
    the static musl / windows-gnu release builds are unchanged

📦 Artifacts

As always: CLI and GUI binaries for Linux (musl, static-pie) and
Windows per CPU target (x86-64-v3/v4) with .sha256
checksums; docker images (alpine + debian) with HEIC/HEIF/AVIF input support.