BASH - математический размер изображения - PullRequest
0 голосов
/ 17 января 2012

Я пытаюсь найти доли размера изображения, используя это

w=$(identify -format "%w" $1)
h=$(identify -format "%h" $1)
w16=$(($w/16))
w2=$(($w/2))
h16=$(($h/16))
h2=$(($h/2))

, который возвращает эту ошибку

identify: unable to open image `1323728291642.jpg': ��� @ error/blob.c/OpenBlob/2489.
identify: unable to open image `1323728291642.jpg':  @ error/blob.c/OpenBlob/2489.
identify: unable to open image `1323728291642.jpg': �8� @ error/blob.c/OpenBlob/2489.
identify: unable to open image `1323728291642.jpg':  @ error/blob.c/OpenBlob/2489.
bash: /16: syntax error: operand expected (error token is "/16")

это использовалось в этом контексте

for i in `cat ../list`; do . ~/base64ensize.sh "$i" jpg|gpaste add;read -p "Press [Enter] key to start backup..."; done

list - список файлов изображений в текущем каталоге

если необходимо, это оставшаяся часть base64ensize.sh

w=$(identify -format "%w" $1)
h=$(identify -format "%h" $1)
w16=$(($w/16))
w2=$(($w/2))
h16=$(($h/16))
h2=$(($h/2))
#echo $w $w2 $w15 $h $h2 $h16
echo -n "<img height='$h16' width='$w16' onclick="
echo -n '"this.height='
echo -n "'$h2';this.width='$w2'"
echo -n '" ondblclick="this.height='
echo -n "'$h16';this.width='$w16'"
echo -n '"'

echo -e "src='data:image/EXT;base64,"$(base64 $1)"'>" >> temp
sed s/"EXT"/$2/ temp
rm temp

1 Ответ

0 голосов
/ 12 февраля 2012
for i in `cat list`; 
do  
   ./base64ensize.sh "$i" jpg |tee >(wc 1>&2 ); # use gpaste add and not wc 1>&2 here 
   read -p "Press [Enter] key to start backup..."; 
done

base64ensize.sh:

w=$(identify -format "%w" $1)
   h=$(identify -format "%h" $1)
   w16=$((w/16))
   w2=$((w/2))
   h16=$((h/16))
   h2=$((h/2))
   #echo $w $w2 $w15 $h $h2 $h16
   echo -n "<img height='$h16' width='$w16' onclick="
   echo -n '"this.height='
   echo -n "'$h2';this.width='$w2'"
   echo -n '" ondblclick="this.height='
   echo -n "'$h16';this.width='$w16'"
   echo -n '" '

   echo -e "src='data:image/$2;base64,"$(base64 -w 0 $1)"'>"
   echo
   #sed s/"EXT"/$2/ temp
   #rm temp

вы можете поместить цикл for в run.sh, а затем сгенерировать ваш html следующим образом:

bash run.sh > images.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...