From e82a9e679182c490e715b962c36964a6697684ef Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 11 Aug 2023 23:14:56 +0300 Subject: [PATCH] Less temporary files --- djxl2ppm | 10 ---------- galgen.zsh | 39 ++++++++++++++++++--------------------- 2 files changed, 18 insertions(+), 31 deletions(-) delete mode 100755 djxl2ppm diff --git a/djxl2ppm b/djxl2ppm deleted file mode 100755 index ba64cd3..0000000 --- a/djxl2ppm +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env zsh - -set -e -djxl --quiet $1 $1.ppm || { - djxl --quiet $1 $1.pgm - mv $1.pgm $1.ppm -} -[[ -r ${1}-ec0.ppm ]] || return 0 -mv ${1}-ec0.ppm $1.ppm -rm ${1}-ec1.pgm diff --git a/galgen.zsh b/galgen.zsh index c86ffad..34fa144 100755 --- a/galgen.zsh +++ b/galgen.zsh @@ -1,7 +1,7 @@ #!/usr/bin/env zsh # Copyright (C) 2022-2023 Sergey Matveev -VERSION=0.3.0 +VERSION=0.4.0 set -e @@ -55,8 +55,8 @@ trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT jpgs=() pngs=() -ppms_jxl=() -ppms_webp=() +pams_jxl=() +pams_webp=() for img ($imgs) { [[ -r .info/$img.img ]] if [[ $img:e = jxl ]] ; then @@ -64,9 +64,9 @@ for img ($imgs) { grep -q "JPEG bitstream reconstruction" .info/$img.img && jpgs=($jpgs $img) || pngs=($pngs $img) } - [[ -r preview/$img.webp ]] || ppms_jxl=($ppms_jxl $img) + [[ -r preview/$img.webp ]] || pams_jxl=($pams_jxl $img) else - [[ -r preview/$img.webp ]] || ppms_webp=($ppms_webp $img) + [[ -r preview/$img.webp ]] || pams_webp=($pams_webp $img) fi } @@ -76,31 +76,28 @@ for img ($imgs) { } jpgs=() +djxl2pam="( djxl --quiet {} ppm:- || djxl --quiet {} pgm:- )" [[ ${#pngs} == 0 ]] || { echo PNG generation... >&2 - parallel "${0:h}/djxl2ppm {}" ::: $pngs - parallel "pamtopng < {}.ppm > {}.png && rm {}.ppm" ::: $pngs + parallel "$djxl2pam | pamtopng > {}.png" ::: $pngs parallel "pngcrush -warn -rem alla -rem allb -z 2 {}.png alt/{}.png && rm {}.png" ::: $pngs parallel "advpng --quiet --recompress -4 alt/{}.png && touch -r {} alt/{}.png" ::: $pngs } pngs=() -[[ ${#ppms_jxl} == 0 ]] || { - echo JPEG XL decompression for preview... >&2 - parallel "${0:h}/djxl2ppm {}" ::: $ppms_jxl +mkpreview="pnmscale -w 100" +mkpreview="$mkpreview | cwebp -quiet -pass 10 -alpha_filter best -m 6 -o preview/{}.webp -- -" +mkpreview="$mkpreview && touch -r {} preview/{}.webp" +[[ ${#pams_jxl} == 0 ]] || { + echo JPEG XL previews... >&2 + parallel "$djxl2pam | $mkpreview" ::: $pams_jxl } -[[ ${#ppms_webp} == 0 ]] || { - echo WebP decompression for preview... >&2 - parallel "dwebp {} -ppm -o {}.ppm" ::: $ppms_webp +[[ ${#pams_webp} == 0 ]] || { + echo WebP previews... >&2 + parallel "dwebp {} -ppm -o - | $mkpreview" ::: $pams_webp } -ppms=($ppms_jxl $ppms_webp) -[[ ${#ppms} == 0 ]] || { - echo Preview scaling and WebP compression... >&2 - parallel "pnmscale -w 100 < {}.ppm > {}.ppm.ppm && mv {}.ppm.ppm {}.ppm && cwebp -quiet -pass 10 -alpha_filter best -m 6 -o preview/{}.webp {}.ppm && rm {}.ppm && touch -r {} preview/{}.webp" ::: $ppms -} -ppms_jxl=() -ppms_webp=() -ppms=() +pams_jxl=() +pams_webp=() for (( i=1 ; i <= ${#imgs} ; i++ )) { local img=${imgs[$i]} -- 2.44.0