#! /bin/sh

if [ -z "$1" ] || [ -n "$2" ]; then
	echo >&2 Usage: ${0##*/} \(percent border to add\)
	echo >&2 Adds specified amount of border to PPM image.
	echo >&2 Adds additional border if necessary to get 3:2 or 2:3 aspect ratio.
	exit 0
	fi
BorderPercent=$1
cat > AddBorder-Temp.ppm
Dims=$(pnmfile AddBorder-Temp.ppm)
Dims=${Dims##*, }
Dims=${Dims%% max*}
InputWidth=${Dims% by*}
InputHeight=${Dims#*by }
if [ $(expr 2 \* $InputHeight) -gt $(expr 3 \* $InputWidth) ]; then
	OutputWidth=$(expr \( \( $InputHeight \* \( 100 + $BorderPercent \) + 50 \) / 100 + 2 \) / 3 \* 2)
	OutputHeight=$(expr \( \( $InputHeight \* \( 100 + $BorderPercent \) + 50 \) / 100 + 2 \) / 3 \* 3)
elif [ $InputHeight -gt $InputWidth ]; then
	OutputWidth=$(expr \( \( $InputWidth \* \( 100 + $BorderPercent \) + 50 \) / 100 + 1 \) / 2 \* 2)
	OutputHeight=$(expr \( \( $InputWidth \* \( 100 + $BorderPercent \) + 50 \) / 100 + 1 \) / 2 \* 3)
elif [ $(expr 2 \* $InputWidth) -gt $(expr 3 \* $InputHeight) ]; then
	OutputWidth=$(expr \( \( $InputWidth \* \( 100 + $BorderPercent \) + 50 \) / 100 + 2 \) / 3 \* 3)
	OutputHeight=$(expr \( \( $InputWidth \* \( 100 + $BorderPercent \) + 50 \) / 100 + 2 \) / 3 \* 2)
else
	OutputWidth=$(expr \( \( $InputHeight \* \( 100 + $BorderPercent \) + 50 \) / 100 + 1 \) / 2 \* 3)
	OutputHeight=$(expr \( \( $InputHeight \* \( 100 + $BorderPercent \) + 50 \) / 100 + 1 \) / 2 \* 2)
	fi
echo >&2 ${0##*/}: Padding $InputWidth\*$InputHeight to $OutputWidth\*$OutputHeight
ppmmake rgb:C8/C8/C8 $OutputWidth $OutputHeight \
	| pnmpaste AddBorder-Temp.ppm \
	$(expr \( $OutputWidth - $InputWidth \) / 2) $(expr \( $OutputHeight - $InputHeight \) / 2)
rm AddBorder-Temp.ppm