#!/bin/sh
MAXW=${3:-${MAXW:-1024}}
MAXH="${4:-$MAXH}"
tmpf=$(mktemp /tmp/.$(basename "$0").XXXXXXXX).ps
gs -q -dBATCH -dNOPAUSE -sDEVICE=bbox $1 2>&1 | grep "^%%BoundingBox" | {
read n x1 y1 x2 y2
w=$(( ($x2-$x1)+1 ))
h=$(( ($y2-$y1)+1 ))
SCALEW=$(( $MAXW/$w ))
if test -z "$MAXH"; then SCALEH="$SCALEW"; else SCALEH=$(( $MAXH/$h )); fi
if [ $SCALEW -eq 0 ]; then SCALEW=1; fi
if [ $SCALEH -eq 0 ]; then SCALEH=1; fi
W=$(( $w*$SCALEW ))
H=$(( $h*$SCALEH ))
echo "$SCALEW $SCALEH scale
$((1-$x1)) $((1-$y1)) translate" > $tmpf
gs -q -dNOPAUSE -sDEVICE=png16m -sOutputFile=$2 -g$W""x$H -f$tmpf -f$1
} >/dev/null
rm $tmpf
