#!/usr/bin/env zsh setopt ERR_EXIT tmp=`mktemp` trap "rm -f $tmp.pnm $tmp.jxl" HUP PIPE INT QUIT TERM EXIT case $1:e in pnm) cp $1 $tmp.pnm ;; gif) giftopnm < $1 > $tmp.pnm ;; png) pngtopnm < $1 > $tmp.pnm ;; webp) dwebp -mt -quiet -o $tmp.pnm $1 ;; *) print unknown extension >&2 exit 1 esac common=(--quiet --distance=0 --effort=9 --brotli_effort=11) prev=$(( 1 << 62 )) best="" zmodload -F zsh/stat b:zstat for g (0 1 2 3) { opts=(--modular_group_size=$g) cjxl $common $opts $tmp.pnm $tmp.jxl zstat -A cur +size $tmp.jxl [[ $cur -gt $prev ]] || { prev=$cur best=($opts) } } zstat -A cur +size $1 [[ $cur -lt $prev ]] && { print $1 is smaller : $cur vs $prev exit 2 } cjxl $common $best $tmp.pnm $1:r.jxl