#!/bin/sh # hwmax = HTML or PNG hwmax=400 # pwmax = EPS pwmax=350 a="0.75" usage() { echo "use: $0 [-p width] [-h width] [ -a aspect ratio ] [files]" echo " -h width - set the PNG or HTML width (default $hwmax)" echo " -p width - set the PostScript or EPS width (default $pwmax)" echo " -a aspect ratio - set the height to width aspect ration (default $a)" echo " files - default *.png" } while [ "$1" != "" ] ; do case "$1" in -h ) hwmax="$2"; shift ;; -p ) pwmax="$2"; shift ;; -a ) a="$2"; shift ;; -* ) usage;; * ) break;; esac shift done if [ "$1" = "" ] ; then set -- *.png ; fi echo FILES "$@" echo "using hwmax $hwmax, pwmax $pwmax, aspect ratio $a" scale(){ # echo "scale $1 $2 $3" f=`echo $1 | sed -e 's/\.png//'` w=$2 h=$3 s=100 t=100 hmax=`perl -e "print int ( $a * $hwmax ); "` if [ $w -gt $hwmax ] ; then s=`expr "$hwmax" "*" "100" "/" "$w"`; echo "$1 width scale $s"; fi if [ $h -gt $hmax ] ; then t=`expr "$hmax" "*" "100" "/" "$h"`; echo "$1 height scale $t"; fi if [ $s -gt $t ] ; then s=$t; fi echo "HTML $1 scale by $s"; convert -frame 6x6 -mattecolor "#ccc" -geometry "$s%" $1 x_$f.png s=100 t=100 hmax=`perl -e "print int ( $a * $pwmax ); "` if [ $w -gt $pwmax ] ; then s=`expr "$pwmax" "*" "100" "/" "$w"`; echo "$1 width scale $s"; fi if [ $h -gt $hmax ] ; then t=`expr "$hmax" "*" "100" "/" "$h"`; echo "$1 height scale $t"; fi if [ $s -gt $t ] ; then s=$t; fi echo "EPS $1 scale by $s"; convert -frame 6x6 -mattecolor "#ccc" -geometry "$s%" $1 x_$f.eps } for i in "$@" ; do case $i in x_*.png ) ;; *.png ) echo $i; scale `identify -format "%f %w %h" $i` ;; esac done