From: Sergey Matveev Date: Sat, 12 Aug 2023 14:04:24 +0000 (+0300) Subject: No WebP support anymore. JPEG XL is superior everywhere X-Git-Url: http://www.git.stargrave.org/?p=galgen.git;a=commitdiff_plain;h=ec679d2f3959c5b4d5b461772a13c263bc121f73 No WebP support anymore. JPEG XL is superior everywhere --- diff --git a/README b/README index 5dfe7f1..b494395 100644 --- a/README +++ b/README @@ -1,12 +1,11 @@ galgen -- static images gallery generator That generator is written on zsh and is aimed only to deal with JPEG XL -and WebP image formats solely. JPEG XL is superior to any other format -both in lossy and lossless modes. WebP just can not be losslessly -transcoded to JPEG XL, so it is left for backward compatibility. +image format solely. JPEG XL is superior to any other format both in +lossy and lossless modes. -Just run that script inside the directory with .jxl/.webp files. For -each file the small preview will be generated in lossy WebP format. Also +Just run that script inside the directory with .jxl files. For each file +the small preview will be generated in lossy WebP format. Also corresponding HTML file is generated too, containing information about the picture and its metadata. @@ -27,4 +26,4 @@ them together. If directory contains ".txt"/".html", then it will be included on the first page. Following external utilities are called: djxl, jxlinfo, exiftool, -pamtopng, pnmscale, pngcrush, advpng, webpinfo, dwebp, cwebp, parallel. +pamtopng, pnmscale, pngcrush, advpng, cwebp, parallel. diff --git a/galgen.zsh b/galgen.zsh index 34fa144..548b50a 100755 --- a/galgen.zsh +++ b/galgen.zsh @@ -1,7 +1,7 @@ #!/usr/bin/env zsh # Copyright (C) 2022-2023 Sergey Matveev -VERSION=0.4.0 +VERSION=0.5.0 set -e @@ -26,19 +26,12 @@ setopt EXTENDED_GLOB imgs=() for img (*.jxl(N)) { [[ -r .info/$img.img ]] || imgs=($imgs $img) } [[ ${#imgs} == 0 ]] || { - echo JPEG XL info... >&2 + echo Infos... >&2 parallel "jxlinfo {} > .info/{}.img" ::: $imgs } imgs=() -for img (*.webp(N)) { [[ -r .info/$img.img ]] || imgs=($imgs $img) } -[[ ${#imgs} == 0 ]] || { - echo WebP info... >&2 - parallel "webpinfo {} > .info/{}.img" ::: $imgs -} - -imgs=() -src=((*.jxl|*.webp)) +src=(*.jxl) for img ($src) { [[ -r .info/$img.exif ]] || imgs=($imgs $img) } src=() [[ ${#imgs} == 0 ]] || { @@ -46,7 +39,7 @@ src=() parallel "exiftool -escapeHTML -htmlFormat -groupHeadings --${=${(j/ --/)exifTagsOmit}} {} > .info/{}.exif" ::: $imgs } -imgs=((*.jxl|*.webp)($ordering)) +imgs=((*.jxl)($ordering)) pages=$(( ${#imgs} / $pagesize )) [[ $(( $pages * $pagesize )) -lt ${#imgs} ]] && pages=$(( $pages + 1 )) @@ -55,19 +48,14 @@ trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT jpgs=() pngs=() -pams_jxl=() -pams_webp=() +pams=() for img ($imgs) { [[ -r .info/$img.img ]] - if [[ $img:e = jxl ]] ; then - [[ -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_jxl=($pams_jxl $img) - else - [[ -r preview/$img.webp ]] || pams_webp=($pams_webp $img) - fi + [[ -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) } [[ ${#jpgs} == 0 ]] || { @@ -88,16 +76,11 @@ pngs=() 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 -} -[[ ${#pams_webp} == 0 ]] || { - echo WebP previews... >&2 - parallel "dwebp {} -ppm -o - | $mkpreview" ::: $pams_webp +[[ ${#pams} == 0 ]] || { + echo Generating previews... >&2 + parallel "$djxl2pam | $mkpreview" ::: $pams } -pams_jxl=() -pams_webp=() +pams=() for (( i=1 ; i <= ${#imgs} ; i++ )) { local img=${imgs[$i]}