#!/bin/sh
#
#  @(#)xbmsize48 1.3 91/11/19
#
#  Copyright (c) Steve Kinzler - April 1991.
#
#  Permission is given to distribute these sources, as long as the
#  copyright messages are not removed, and no monies are exchanged.
#
#  No responsibility is taken for any errors on inaccuracies inherent
#  either to the comments or the code of this program, but if reported
#  to me, then an attempt will be made to fix them.

PATH=$PATH:/usr/bin/X11; export PATH

size=48

# xbmsize48 - size an X11 bitmap to 48x48
#
# If the bitmaps exceeds 48 pixels in either dimension it is scaled down
# to 48 pixels.  Then, the bitmap is pasted into the upper left corner of
# a 48x48 blank bitmap.
#
# A stdin/stdout filter.
# Requires filters from the pbmplus package.
#
# Steve Kinzler, kinzler@cs.indiana.edu, March 1991

tmp=/tmp/xbmsize48.$$
tmp2=/tmp/xbmsize48.2.$$
trap "rm -f $tmp $tmp2; exit" 0 1 2 13 15

cat > $tmp || exit

eval `sed -n 's/^#define.*_width[ 	]*\([0-9]*\).*$/w=\1/p
	      s/^#define.*_height[ 	]*\([0-9]*\).*$/h=\1/p
	      /{/q' $tmp`

if test $w -gt $size -o $h -gt $size
then
	if test $w -ge $h
	then	dim=xsize
	else	dim=ysize
	fi

	xbmtopbm < $tmp | ppmscale -$dim $size |
	ppmtopgm | pgmtopbm | pbmtoxbm > $tmp2
	mv $tmp2 $tmp
fi

xbmtopbm < $tmp > $tmp2
pbmmake $size $size | pnmpaste $tmp2 0 0 | pbmtoxbm


syntax highlighted by Code2HTML, v. 0.9.1