From: Sergey Matveev Date: Thu, 14 Sep 2023 11:00:43 +0000 (+0300) Subject: Ability to omit alternative formats X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;ds=sidebyside;h=9b69bab187548d7cc3b1a464f4606d8b30df3056;p=galgen.git Ability to omit alternative formats --- diff --git a/README b/README index b494395..137305c 100644 --- a/README +++ b/README @@ -15,8 +15,9 @@ You can set the following environment variables: * STYLE (URL to CSS file, by default is none, no stylesheet link is set) If it is JPEG XL, then, for compatibility reason with non-bleeding edge -software, alternative format is generated too: either JPEG (if JPEG XL -contains losslessly transcoded JPEG), or PNG (leaving off the alpha channel). +software, alternative format is generated too (unless NOALT environment +variable is set): either JPEG (if JPEG XL contains losslessly transcoded +JPEG), or PNG (leaving off the alpha channel). If image file has corresponding .txt/.html, then it will be included on HTML page. diff --git a/galgen.zsh b/galgen.zsh index 548b50a..7c82821 100755 --- a/galgen.zsh +++ b/galgen.zsh @@ -1,7 +1,7 @@ #!/usr/bin/env zsh # Copyright (C) 2022-2023 Sergey Matveev -VERSION=0.5.0 +VERSION=0.6.0 set -e @@ -46,32 +46,36 @@ pages=$(( ${#imgs} / $pagesize )) local tmp=`mktemp` trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT -jpgs=() -pngs=() -pams=() -for img ($imgs) { - [[ -r .info/$img.img ]] - [[ -r alt/$img.jpg ]] || [[ -r alt/$img.png ]] && : || { - grep -q "JPEG bitstream reconstruction" .info/$img.img && - jpgs=($jpgs $img) || pngs=($pngs $img) +[[ -n "$NOALT" ]] || { + echo HERE + exit + jpgs=() + pngs=() + pams=() + for img ($imgs) { + [[ -r .info/$img.img ]] + [[ -r alt/$img.jpg ]] || [[ -r alt/$img.png ]] && : || { + grep -q "JPEG bitstream reconstruction" .info/$img.img && + jpgs=($jpgs $img) || pngs=($pngs $img) + } + [[ -r preview/$img.webp ]] || pams=($pams $img) } - [[ -r preview/$img.webp ]] || pams=($pams $img) -} -[[ ${#jpgs} == 0 ]] || { - echo JPEG reconstruction... >&2 - parallel "djxl --quiet {} alt/{}.jpg && touch -r {} alt/{}.jpg" ::: $jpgs -} -jpgs=() - -djxl2pam="( djxl --quiet {} ppm:- || djxl --quiet {} pgm:- )" -[[ ${#pngs} == 0 ]] || { - echo PNG generation... >&2 - 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 + [[ ${#jpgs} == 0 ]] || { + echo JPEG reconstruction... >&2 + parallel "djxl --quiet {} alt/{}.jpg && touch -r {} alt/{}.jpg" ::: $jpgs + } + jpgs=() + + djxl2pam="( djxl --quiet {} ppm:- || djxl --quiet {} pgm:- )" + [[ ${#pngs} == 0 ]] || { + echo PNG generation... >&2 + 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=() } -pngs=() mkpreview="pnmscale -w 100" mkpreview="$mkpreview | cwebp -quiet -pass 10 -alpha_filter best -m 6 -o preview/{}.webp -- -" @@ -123,15 +127,17 @@ EOF echo "
" >> $tmp
     cat .info/$img.img >> $tmp
     echo "
" >> $tmp - if [[ $img:e = jxl ]] ; then - echo "Alternative formats:" >> $tmp - [[ -r alt/$img.jpg ]] && { - echo "JPEG" >> $tmp - } || { - echo "PNG" >> $tmp - } - fi - echo "
" >> $tmp + [[ -n "$NOALT" ]] || { + if [[ $img:e = jxl ]] ; then + echo "Alternative formats:" >> $tmp + [[ -r alt/$img.jpg ]] && { + echo "JPEG" >> $tmp + } || { + echo "PNG" >> $tmp + } + fi + echo "
" >> $tmp + } [[ -r .info/$img.exif ]] cat .info/$img.exif >> $tmp echo "" >> $tmp