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