]> Sergey Matveev's repositories - dotfiles.git/blob - img/bin/my-jxll
Make zathura configuration file aware
[dotfiles.git] / img / bin / my-jxll
1 #!/usr/bin/env zsh
2
3 setopt ERR_EXIT
4 tmp=`mktemp`
5 trap "rm -f $tmp.pnm $tmp.jxl" HUP PIPE INT QUIT TERM EXIT
6 case $1:e in
7 pnm) cp $1 $tmp.pnm ;;
8 gif) giftopnm < $1 > $tmp.pnm ;;
9 png) pngtopnm < $1 > $tmp.pnm ;;
10 webp) dwebp -mt -quiet -o $tmp.pnm $1 ;;
11 *)
12     print unknown extension >&2
13     exit 1
14 esac
15
16 common=(--quiet --distance=0 --effort=9 --brotli_effort=11)
17 prev=$(( 1 << 62 ))
18 best=""
19 zmodload -F zsh/stat b:zstat
20 for g (0 1 2 3) {
21     opts=(--modular_group_size=$g)
22     cjxl $common $opts $tmp.pnm $tmp.jxl
23     zstat -A cur +size $tmp.jxl
24     [[ $cur -gt $prev ]] || {
25         prev=$cur
26         best=($opts)
27     }
28 }
29 zstat -A cur +size $1
30 [[ $cur -lt $prev ]] && {
31     print $1 is smaller : $cur vs $prev
32     exit 2
33 }
34 cjxl $common $best $tmp.pnm $1:r.jxl