From a8465ea49cbd29d740c30281547eaf843e2bd42d Mon Sep 17 00:00:00 2001 From: Toke Eskildsen <te@ekot.dk> Date: Sat, 1 Feb 2014 20:50:55 +0100 Subject: [PATCH] Optimization: Slightly faster image size lookup --- analyze.sh | 8 ++++++++ quack_helper_imagepage.sh | 30 ++++++++++++++++++------------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/analyze.sh b/analyze.sh index 0ebd360..d39fffe 100755 --- a/analyze.sh +++ b/analyze.sh @@ -12,6 +12,13 @@ if [ "." == ".$ASSUME_GREY" ]; then ASSUME_GREY=true fi +# Prints width and height of the given image, separated by space +# Input: Image +function isize() { + identify -format "%w %h" "$1" +} +export -f isize + # TODO: Accept destination for identify-file as input # TODO: If FORCE_HISTOGRAM is true, cached identify-files should be deleted # to ensure CROP_PERCENT is used @@ -59,6 +66,7 @@ function im_identify() { } export -f im_identify + # TODO: Accept destination for grey-stats-file as input # Input: image diff --git a/quack_helper_imagepage.sh b/quack_helper_imagepage.sh index 3bdf7ef..2f3061d 100755 --- a/quack_helper_imagepage.sh +++ b/quack_helper_imagepage.sh @@ -288,21 +288,27 @@ function makePreviewPage() { exit fi - local IDENTIFY=`identify "$DEST_IMAGE" | grep -o " [0-9]\+x[0-9]\\+ "` - IMAGE_WIDTH=`echo $IDENTIFY | grep -o "[0-9]\+x" | grep -o "[0-9]\+"` - IMAGE_HEIGHT=`echo $IDENTIFY | grep -o "x[0-9]\+" | grep -o "[0-9]\+"` + set -- junk `isize "$DEST_IMAGE"` + shift + IMAGE_WIDTH=$1 + IMAGE_HEIGHT=$2 IMAGE_MP=`echo "scale=1;x=$IMAGE_WIDTH*$IMAGE_HEIGHT/1000000; if(x<1) print 0; x" | bc` - local TIDENTIFY=`identify "$THUMB_IMAGE" | grep -o " [0-9]\+x[0-9]\\+ "` - THUMB_WIDTH=`echo $TIDENTIFY | grep -o "[0-9]\+x" | grep -o "[0-9]\+"` - THUMB_HEIGHT=`echo $TIDENTIFY | grep -o "x[0-9]\+" | grep -o "[0-9]\+"` - local HIDENTIFY=`identify "$HIST_IMAGE" | grep -o " [0-9]\+x[0-9]\\+ "` - HISTOGRAM_WIDTH=`echo $HIDENTIFY | grep -o "[0-9]\+x" | grep -o "[0-9]\+"` - HISTOGRAM_HEIGHT=`echo $HIDENTIFY | grep -o "x[0-9]\+" | grep -o "[0-9]\+"` + + set -- junk `isize "$THUMB_IMAGE"` + shift + THUMB_WIDTH=$1 + THUMB_HEIGHT=$2 + + set -- junk `isize "$HIST_IMAGE"` + shift + HISTOGRAM_WIDTH=$1 + HISTOGRAM_HEIGHT=$2 if [ ".true" == ".$PRESENTATION" ]; then - local PIDENTIFY=`identify "$PRESENTATION_IMAGE" | grep -o " [0-9]\+x[0-9]\\+ "` - PRESENTATION_WIDTH=`echo $PIDENTIFY | grep -o "[0-9]\+x" | grep -o "[0-9]\+"` - PRESENTATION_HEIGHT=`echo $PIDENTIFY | grep -o "x[0-9]\+" | grep -o "[0-9]\+"` + set -- junk `isize "$PRESENTATION_IMAGE"` + shift + PRESENTATION_WIDTH=$1 + PRESENTATION_HEIGHT=$2 fi local CREATED_PAGES=`addGetCounter $PAGE_COUNTER` -- GitLab