]> Sergey Matveev's repositories - galgen.git/commitdiff
No WebP support anymore. JPEG XL is superior everywhere
authorSergey Matveev <stargrave@stargrave.org>
Sat, 12 Aug 2023 14:04:24 +0000 (17:04 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sat, 12 Aug 2023 14:10:53 +0000 (17:10 +0300)
README
galgen.zsh

diff --git a/README b/README
index 5dfe7f190068a3c8771c7394ae91396e4ff5fee8..b49439589cef11121a30a1cad7d565a5b2972188 100644 (file)
--- 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
 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.
 
 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,
 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.
index 34fa14451861b54a5334f17de4fd81b038ff0877..548b50aed7b69398c01653fdf99b2ae30b6c6428 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env zsh
 # Copyright (C) 2022-2023 Sergey Matveev <stargrave@stargrave.org>
 
 #!/usr/bin/env zsh
 # Copyright (C) 2022-2023 Sergey Matveev <stargrave@stargrave.org>
 
-VERSION=0.4.0
+VERSION=0.5.0
 
 set -e
 
 
 set -e
 
@@ -26,19 +26,12 @@ setopt EXTENDED_GLOB
 imgs=()
 for img (*.jxl(N)) { [[ -r .info/$img.img ]] || imgs=($imgs $img) }
 [[ ${#imgs} == 0 ]] || {
 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=()
     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 ]] || {
 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
 }
 
     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 ))
 
 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=()
 
 jpgs=()
 pngs=()
-pams_jxl=()
-pams_webp=()
+pams=()
 for img ($imgs) {
     [[ -r .info/$img.img ]]
 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 ]] || {
 }
 
 [[ ${#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"
 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]}
 
 for (( i=1 ; i <= ${#imgs} ; i++ )) {
     local img=${imgs[$i]}