it* Simple Justified Gallery Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/mkpicindex URL:git://git.codevoid.de/mkpicindex codevoid.de 70 1Log /git/mkpicindex/log.gph codevoid.de 70 1Files /git/mkpicindex/files.gph codevoid.de 70 1Refs /git/mkpicindex/refs.gph codevoid.de 70 1README /git/mkpicindex/file/README.gph codevoid.de 70 i--- Err codevoid.de 70 1commit 209afeae9c5d3c0e521f7622c756822b78a6cb75 /git/mkpicindex/commit/209afeae9c5d3c0e521f7622c756822b78a6cb75.gph codevoid.de 70 1parent 3c6a6b14ca2cd0ceed96f8e4e99fee6c032c0542 /git/mkpicindex/commit/3c6a6b14ca2cd0ceed96f8e4e99fee6c032c0542.gph codevoid.de 70 hAuthor: Stefan Hagen URL:mailto:sh+git[at]codevoid[dot]de codevoid.de 70 iDate: Sat, 26 Oct 2019 15:25:55 +0200 Err codevoid.de 70 i Err codevoid.de 70 iQuotes are <3 Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M mkpicindex-static.sh | 54 +++++++++---------------------- Err codevoid.de 70 i Err codevoid.de 70 i1 file changed, 15 insertions(+), 39 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/mkpicindex-static.sh b/mkpicindex-static.sh /git/mkpicindex/file/mkpicindex-static.sh.gph codevoid.de 70 it@@ -27,7 +27,7 @@ MORE=1 # trigger next loop Err codevoid.de 70 i cleanup() { Err codevoid.de 70 i # DELETE BROKEN IMAGES Err codevoid.de 70 i printf '%s\n' "Removing incomplete thumbnails." >&2 Err codevoid.de 70 i- find $THUMB_PATH -name "*_tmp.*" -exec rm -v "{}" \; Err codevoid.de 70 i+ find "$THUMB_PATH" -name "*_tmp.*" -exec rm -v "{}" \; Err codevoid.de 70 i exit 1 Err codevoid.de 70 i } Err codevoid.de 70 i trap cleanup 1 2 3 6 Err codevoid.de 70 it@@ -42,11 +42,11 @@ console() { printf '%s\n' "$1" >&2; } Err codevoid.de 70 i # CALCULATORS Err codevoid.de 70 i get_width_by_height() { Err codevoid.de 70 i # returns aspect ratio calculated width Err codevoid.de 70 i- local F=$1 # image file Err codevoid.de 70 i- local TH=$2 # target height Err codevoid.de 70 i+ local F="$1" # image file Err codevoid.de 70 i+ local TH="$2" # target height Err codevoid.de 70 i local WH="$(identify -format ' %w %h ' "$1" | awk '{ printf("%.3f %.3f",$1,$2) }')" Err codevoid.de 70 i- R="$(printf "$WH" | awk -vTH=$TH '{ printf("%.0f", TH*($1/$2)) }')" Err codevoid.de 70 i- printf '%.0f' "$(($R))" Err codevoid.de 70 i+ local R="$(printf "$WH" | awk -vTH=$TH '{ printf("%.0f", TH*($1/$2)) }')" Err codevoid.de 70 i+ printf '%.0f' "$R" Err codevoid.de 70 i debug "get_width_by_height: FILE=$F TARGET_HEIGHT=$TH FILE_WxH=$WH RET_WIDTH=$R" Err codevoid.de 70 i } Err codevoid.de 70 i get_height_by_width() { Err codevoid.de 70 it@@ -54,7 +54,7 @@ get_height_by_width() { Err codevoid.de 70 i local F=$1 # image file Err codevoid.de 70 i local TW=$2 # target width Err codevoid.de 70 i local WH="$(identify -format ' %w %h ' "$1" | awk '{ printf("%.3f %.3f",$1,$2) }')" Err codevoid.de 70 i- R="$(printf "$WH" | awk -vTW=$TW '{ printf("%.0f", TW*($2/$1)) }')" Err codevoid.de 70 i+ local R="$(printf "$WH" | awk -vTW=$TW '{ printf("%.0f", TW*($2/$1)) }')" Err codevoid.de 70 i printf '%.0f' "$R" Err codevoid.de 70 i debug "get_height_by_width: FILE=$F TARGET_WIDTH=$TW FILE_WxH=$WH RET_HEIGHT=$R" Err codevoid.de 70 i } Err codevoid.de 70 it@@ -90,7 +90,7 @@ create_thumb() { Err codevoid.de 70 i Err codevoid.de 70 i # ADD IMAGE LOOP Err codevoid.de 70 i add_image() { Err codevoid.de 70 i- local F=$1 # image file Err codevoid.de 70 i+ local F="$1" # image file Err codevoid.de 70 i Err codevoid.de 70 i # How wide would the image be when we rescale it to $ROW_HEIGHT? Err codevoid.de 70 i local NW=$(get_width_by_height "$F" "$ROW_HEIGHT") Err codevoid.de 70 it@@ -107,7 +107,7 @@ add_image() { Err codevoid.de 70 i Err codevoid.de 70 i # calculate how much we need to stretch images to fill the Err codevoid.de 70 i # whole row. Err codevoid.de 70 i- RFH=$(printf "$G_ROW_WIDTH $WIDTH $ROW_HEIGHT" \ Err codevoid.de 70 i+ local RFH=$(printf "$G_ROW_WIDTH $WIDTH $ROW_HEIGHT" \ Err codevoid.de 70 i | awk '{ printf("%.0f",$3*($2/$1)) }') Err codevoid.de 70 i debug "RFH=$RFH" Err codevoid.de 70 i Err codevoid.de 70 it@@ -123,11 +123,11 @@ add_image() { Err codevoid.de 70 i Err codevoid.de 70 i # output HTML for image Err codevoid.de 70 i console "Adding Image: $RF" Err codevoid.de 70 i- printf "
\n" Err codevoid.de 70 i- printf " \n" Err codevoid.de 70 i- printf " " Err codevoid.de 70 i- printf " \n" Err codevoid.de 70 i- printf "
\n" Err codevoid.de 70 i+ printf '
\n' Err codevoid.de 70 i+ printf ' \n' Err codevoid.de 70 i+ printf ' ' Err codevoid.de 70 i+ printf ' \n' Err codevoid.de 70 i+ printf '
\n' Err codevoid.de 70 i done Err codevoid.de 70 i Err codevoid.de 70 i # we're done with this row now. Err codevoid.de 70 it@@ -139,7 +139,7 @@ add_image() { Err codevoid.de 70 i else Err codevoid.de 70 i # add more items... Err codevoid.de 70 i debug "add_image: width has not been reached, continue loop." Err codevoid.de 70 i- G_ROW_WIDTH=$(( $G_ROW_WIDTH + $NW )) Err codevoid.de 70 i+ G_ROW_WIDTH="$(( $G_ROW_WIDTH + $NW ))" Err codevoid.de 70 i G_ROW_FILES="$F|$G_ROW_FILES" Err codevoid.de 70 i fi Err codevoid.de 70 i } Err codevoid.de 70 it@@ -179,13 +179,12 @@ printf '%s\n' \ Err codevoid.de 70 i Err codevoid.de 70 i
Err codevoid.de 70 i ' Err codevoid.de 70 i- Err codevoid.de 70 i ### MAIN LOOP ########################################################## Err codevoid.de 70 i for F in *.*; Err codevoid.de 70 i do Err codevoid.de 70 i if [ -f "$F" ]; Err codevoid.de 70 i then Err codevoid.de 70 i- case $(printf '%s' ${F##*.} | tr '[:upper:]' '[:lower:]') in Err codevoid.de 70 i+ case "$(printf '%s' ${F##*.} | tr '[:upper:]' '[:lower:]')" in Err codevoid.de 70 i jpg|jpeg|png|gif) add_image "$F" ;; Err codevoid.de 70 i *) console "Ignoring: $F" ;; Err codevoid.de 70 i esac Err codevoid.de 70 it@@ -198,26 +197,3 @@ printf '%s\n' \ Err codevoid.de 70 i '
Err codevoid.de 70 i Err codevoid.de 70 i ' Err codevoid.de 70 i- Err codevoid.de 70 i- Err codevoid.de 70 i- Err codevoid.de 70 i- Err codevoid.de 70 i- Err codevoid.de 70 i- Err codevoid.de 70 i-### MAIN LOOP ########################################################## Err codevoid.de 70 i- Err codevoid.de 70 i-#for file in *.*; Err codevoid.de 70 i-#do Err codevoid.de 70 i-# if [ -f "$file" ]; Err codevoid.de 70 i-# then Err codevoid.de 70 i-# case $(printf '%s' ${file##*.} | tr '[:upper:]' '[:lower:]') in Err codevoid.de 70 i-# jpg|jpeg|png) Err codevoid.de 70 i-# add_image "$file" "${file%%.*}" "jpeg" ;; Err codevoid.de 70 i-# gif) Err codevoid.de 70 i-# add_image "$file" "${file%%.*}" "gif" ;; Err codevoid.de 70 i-# *) printf '%s\n' "Ignoring: $file" >&2 ;; Err codevoid.de 70 i-# esac Err codevoid.de 70 i-# fi Err codevoid.de 70 i-#done Err codevoid.de 70 i- Err codevoid.de 70 i-### MAIN LOOP END ###################################################### Err codevoid.de 70 .