home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
netpbma.zip
/
ppm
/
ppmquantall
< prev
next >
Wrap
Text File
|
1993-10-04
|
1KB
|
46 lines
#!/bin/csh -f
#
# ppmquantall - run ppmquant on a bunch of files all at once, so they share
# a common colormap
#
# WARNING: overwrites the source files with the results!!!
#
# Verbose explanation: Let's say you've got a dozen pixmaps that you want
# to display on the screen all at the same time. Your screen can only
# display 256 different colors, but the pixmaps have a total of a thousand
# or so different colors. For a single pixmap you solve this problem with
# ppmquant; this script solves it for multiple pixmaps. All it does is
# concatenate them together into one big pixmap, run ppmquant on that, and
# then split it up into little pixmaps again.
if ( $#argv < 3 ) then
echo "usage: ppmquantall <newcolors> <ppmfile> <ppmfile> ..."
exit 1
endif
set newcolors=$argv[1]
set files=( $argv[2-] )
set heights=()
foreach i ( $files )
set heights=( $heights `head -2 $i | tail -1 | sed 's/.* //'` )
end
set all=/tmp/pqa.all.$$
rm -f $all
pnmcat -tb -white $files | ppmquant -quiet $newcolors > $all
if ( $status != 0 ) exit $status
set width=`head -2 $all | tail -1 | sed 's/ .*//'`
@ y = 0
@ i = 1
while ( $i <= $#files )
pnmcut 0 $y $width $heights[$i] $all | pnmcrop -quiet -white > $files[$i]
if ( $status != 0 ) exit $status
@ y = $y + $heights[$i]
@ i++
end
rm -f $all