[comp.sources.sun] v01i085: ALV - An Image Processing Toolkit, Part01/10

mcgrew@dartagnan.rutgers.edu (Charles Mcgrew) (12/12/89)

Submitted-by: everson@compsci.bristol.ac.uk
Posting-number: Volume 1, Issue 85
Archive-name: alv/part01



#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 10)."
# Contents:  MANIFEST README doc doc/README doc/acknowledgments.ms
#   doc/alv-docs doc/bugs.ms doc/copyright.ms doc/hardware.ms doc/man
#   doc/man doc/man/man1 doc/man/man1/box.1 doc/man/man1/dither.1
#   doc/man/man1/equalise.1 doc/man/man1/ffill.1 doc/man/man1/glass.1
#   doc/man/man1/halftone.1 doc/man/man1/im2ras.1
#   doc/man/man1/invert.1 doc/man/man1/ras2im.1 doc/man/man1/rasinfo.1
#   doc/man/man1/rasrange.1 doc/man/man1/rasregion.1
#   doc/man/man1/rasthresh.1 doc/man/man1/scrload.1
#   doc/man/man1/winlev8.1 doc/man/man3 doc/man/man5
#   doc/nroff_header.ms doc/support.ms doc/troff_header.ms filters
#   filters/avg1 filters/lap1 filters/sobel1 filters/xdiff1 images
#   images/Makefile images/cursors images/cursors/palette_brush.cursor
#   images/cursors/palette_mark.cursor images/cursors/stretchNW.cursor
#   images/cursors/stretchSE.cursor images/icons src
#   src/declarations.h src/defs.h src/generic.c src/glass-patchlevel.h
#   src/im2ras.c src/images src/matrix.h src/p_icons.h src/p_init.c
#   src/pattern.h src/toolmerge.c src/tools.h
# Wrapped by everson@kukini on Tue Oct 17 07:45:03 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'MANIFEST'\"
else
echo shar: Extracting \"'MANIFEST'\" \(4459 characters\)
sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
X   File Name		Archive #	Description
X-----------------------------------------------------------
X MANIFEST                   1	This shipping list
X README                     1	
X doc                        1	
X doc/README                 1	
X doc/acknowledgments.ms     1	
X doc/alv-docs               1	
X doc/blackwhite.ms          2	
X doc/bugs.ms                1	
X doc/changes.ms             6	
X doc/copyright.ms           1	
X doc/hardware.ms            1	
X doc/installation.ms        2	
X doc/introduction.ms        4	
X doc/man                    1	
X doc/man                    1	
X doc/man/man1               1	
X doc/man/man1/alv.1         4	
X doc/man/man1/array2ras.1   2	
X doc/man/man1/blend.1       2	
X doc/man/man1/box.1         1	
X doc/man/man1/convert.1     2	
X doc/man/man1/convolve.1    4	
X doc/man/man1/cst.1         3	
X doc/man/man1/dither.1      1	
X doc/man/man1/dsp.1         5	
X doc/man/man1/equalise.1    1	
X doc/man/man1/ffill.1       1	
X doc/man/man1/glass.1       1	
X doc/man/man1/halftone.1    1	
X doc/man/man1/hist.1        2	
X doc/man/man1/hough.1       2	
X doc/man/man1/im2ras.1      1	
X doc/man/man1/invert.1      1	
X doc/man/man1/palettetool.1  4	
X doc/man/man1/ras2array.1   2	
X doc/man/man1/ras2im.1      1	
X doc/man/man1/ras2lw.1      2	
X doc/man/man1/ras8to1.1     3	
X doc/man/man1/rasinfo.1     1	
X doc/man/man1/rasrange.1    1	
X doc/man/man1/rasregion.1   1	
X doc/man/man1/rasremap.1    2	
X doc/man/man1/rasscale.1    2	
X doc/man/man1/rasthresh.1   1	
X doc/man/man1/rasval.1      2	
X doc/man/man1/scr2ras.1     2	
X doc/man/man1/scrload.1     1	
X doc/man/man1/transform.1   3	
X doc/man/man1/winlev.1      2	
X doc/man/man1/winlev8.1     1	
X doc/man/man3               1	
X doc/man/man3/dynamem.3     4	
X doc/man/man3/matrix.3      4	
X doc/man/man5               1	
X doc/man/man5/alv_profile.5  3	
X doc/nroff_header.ms        1	
X doc/philosophy.ms          3	
X doc/support.ms             1	
X doc/troff_header.ms        1	
X doc/tutorial.ms            5	
X filters                    1	
X filters/avg1               1	
X filters/lap1               1	
X filters/sobel1             1	
X filters/xdiff1             1	
X images                     1	
X images/Makefile            1	
X images/cursors             1	
X images/cursors/palette_brush.cursor  1	
X images/cursors/palette_mark.cursor  1	
X images/cursors/stretchNW.cursor  1	
X images/cursors/stretchSE.cursor  1	
X images/icons               1	
X images/icons/cst.icon      3	
X images/icons/dsp.icon      3	
X images/icons/glass.icon    3	
X images/icons/hist.icon     3	
X images/icons/palette.icon  3	
X images/icons/winlev8.icon  3	
X images/sample_image.Z-uuaa  9	
X images/sample_image.Z-uuab 10	
X images/sample_image.Z-uuac  8	
X src                        1	
X src/Makefile               5	
X src/Makefile-merge         4	
X src/array2ras.c            3	
X src/blend.c                3	
X src/box.c                  2	
X src/convert.c              2	
X src/convolve.c             5	
X src/cst.c                  7	
X src/declarations.h         1	
X src/defs.h                 1	
X src/dither.c               2	
X src/dsp.c                  7	
X src/dynamem.c              5	
X src/equalise.c             2	
X src/fconvolve.c            6	
X src/ffill.c                3	
X src/generic.c              1	
X src/glass-patchlevel.h     1	
X src/glass.c                7	
X src/halftone.c             2	
X src/hist.c                 5	
X src/hough.c                3	
X src/im2ras.c               1	
X src/images                 1	
X src/invert.c               2	
X src/matrix.c               4	
X src/matrix.h               1	
X src/p_confirm.c            2	
X src/p_event.c              6	
X src/p_icons.h              1	
X src/p_include.h            2	
X src/p_init.c               1	
X src/p_main.c               4	
X src/p_notif.c              6	
X src/p_panel.c              3	
X src/palettetool.c          4	
X src/pattern.h              1	
X src/ras2array.c            3	
X src/ras2im.c               2	
X src/ras2lw.c               4	
X src/ras8to1.c              8	
X src/rasinfo.c              2	
X src/rasrange.c             2	
X src/rasregion.c            2	
X src/rasremap.c             5	
X src/rasscale.c             3	
X src/rasthresh.c            2	
X src/rasval.c               3	
X src/scr2ras.c              5	
X src/scrload.c              6	
X src/support.c              4	
X src/toolmerge.c            1	
X src/tools.h                1	
X src/transform.c            5	
X src/winlev.c               4	
X src/winlev8.c              6	
END_OF_FILE
if test 4459 -ne `wc -c <'MANIFEST'`; then
    echo shar: \"'MANIFEST'\" unpacked with wrong size!
fi
# end of 'MANIFEST'
fi
if test -f 'README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'README'\"
else
echo shar: Extracting \"'README'\" \(1291 characters\)
sed "s/^X//" >'README' <<'END_OF_FILE'
X                           Version 2.0.6
X
X                        #    #       #     #
X                       # #   #       #     #
X                      #   #  #       #     #
X                     #     # #       #     #
X                     ####### #        #   #
X                     #     # #         # #
X                     #     # #######    #
X                            
X               Public Domain Image Processing Toolkit 
X                       for Sun Workstations
X
X                        30th December, 1988
X                         by Phill Everson 
X                     University of Bristol, UK.
X
X        The distribution consists of the following directories:
X
X                       doc          Documentation
X                       filters      Linear filters
X                       images       Rasters, icons, cursors
X                       src          Full source
X                       tutorial     Toolkit tutorial
X
X    I suggest you read the documentation thoroughly before you try
X    to install or use the toolkit. If you have used a previous
X    incarnation of the toolkit this is especially important as
X    there are many changes.
X
X                          Phill Everson
X                          Bristol, UK 
X                          30th December, 1988
END_OF_FILE
if test 1291 -ne `wc -c <'README'`; then
    echo shar: \"'README'\" unpacked with wrong size!
fi
# end of 'README'
fi
if test ! -d 'doc' ; then
    echo shar: Creating directory \"'doc'\"
    mkdir 'doc'
fi
if test -f 'doc/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/README'\"
else
echo shar: Extracting \"'doc/README'\" \(355 characters\)
sed "s/^X//" >'doc/README' <<'END_OF_FILE'
This directory contains the documentation for the ALV toolkit. 
X
To produce an onscreen copy type:             alv-docs 
X           a LinePrinted copy type:           alv-docs lpr
X           a LaserPrinted copy type:          alv-docs laser
X
Note that the LaserPrinted command is set up to work at Bristol, and
it is unlikely that it will work elsewhere.
END_OF_FILE
if test 355 -ne `wc -c <'doc/README'`; then
    echo shar: \"'doc/README'\" unpacked with wrong size!
fi
# end of 'doc/README'
fi
if test -f 'doc/acknowledgments.ms' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/acknowledgments.ms'\"
else
echo shar: Extracting \"'doc/acknowledgments.ms'\" \(682 characters\)
sed "s/^X//" >'doc/acknowledgments.ms' <<'END_OF_FILE'
X.SH 1
Acknowledgments
X.PP
I would like to acknowledge the help of 
X.I "Barry Thomas"
X(Bristol University, UK),
X.I "Gareth Waddell"
X(Bristol University, UK),
X.I "Martyn Shortley"
X(Bristol University, UK),
X.I "Bill Silvester"
X(Bristol University, UK),
X.I "Bryan Dawson"
X(Keele University, UK),
X.I "Ray Kreisel"
X(SUNY, USA),
X.I "Scott Shaw"
X(SRI Inc, USA),
X.I "Hong Min"
X(SUNY, USA),
X.I "Doug Arnold"
X(University of Maryland, USA),
X.I "Vincent Ng"
X(Cancer Control Agency, Canada),
X.I "Bob Gregorish"
X(University of Alberta, Canada),
X.I "Charles Thomas"
X(University of Sydney, Australia)
and
X.I "Geoff West"
X(City University, UK)
X
without whom this toolkit would not have been written.
END_OF_FILE
if test 682 -ne `wc -c <'doc/acknowledgments.ms'`; then
    echo shar: \"'doc/acknowledgments.ms'\" unpacked with wrong size!
fi
# end of 'doc/acknowledgments.ms'
fi
if test -f 'doc/alv-docs' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/alv-docs'\"
else
echo shar: Extracting \"'doc/alv-docs'\" \(842 characters\)
sed "s/^X//" >'doc/alv-docs' <<'END_OF_FILE'
X#!/bin/sh
X
X# set THACK to be a troff to postscript convertor
X# set PSPR be the program that prints postscript
X# set LPR to the program that prints on your line printer
X
THACK=/usr/doc1/phill/bin/thack
PSPR=/usr/local/bin/pspr
LPR=lpr
X
X########################################################
X# You shouldn't have to alter anything below this line #
X########################################################
X
MANPAGES=`/bin/ls man/man[135]/*` 
X
case $# in
X0) 
X   (nroff -ms nroff_header.ms;
X	for i in $MANPAGES
X	do
X		nroff -man $i
X	done)  
X   ;;
X1)
X   if ( test $1 = "laser" ) then
X   		troff -t -ms troff_header.ms | $THACK | $PSPR
X		for i in $MANPAGES
X		do
X			troff -t -man $i | $THACK | $PSPR
X		done
X   elif ( test $1 = "lpr" ) then
X		(nroff -ms nroff_header.ms;
X		 for i in $MANPAGES
X		 do
X			nroff -man $i
X		 done) | $LPR
X   fi
X   ;;
esac
END_OF_FILE
if test 842 -ne `wc -c <'doc/alv-docs'`; then
    echo shar: \"'doc/alv-docs'\" unpacked with wrong size!
fi
chmod +x 'doc/alv-docs'
# end of 'doc/alv-docs'
fi
if test -f 'doc/bugs.ms' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/bugs.ms'\"
else
echo shar: Extracting \"'doc/bugs.ms'\" \(1071 characters\)
sed "s/^X//" >'doc/bugs.ms' <<'END_OF_FILE'
X.SH
Known Bugs
X.IP "Some Sunview Arguments do not work"
Sunview command line arguments that require more than 1 extra argument
do not work - eg -Ws, -Wp & -WP etc. Modifications need making to the
getopt() command line argument parsing to make allowances for arguments
with 2 (or more) arguments following them.
X.IP "holes in transfomed rasters"
Some rotations cause holes to be left in rotated rasters. A second pass
is needed in transform to interpolate the data out to fill in these
holes.
X.IP "rasfilter8to1 hangs"
When using rasfilter8to1 as the 8-to-1 filter program to display 8 bit
deep images on a black and white workstation with dsp, it hangs if the
image is large and non-square. It definately fails on images 720x480x8;
however, I haven't been able to narrow the problems down any further.
Solution is to use a program such as dither to convert to 1 bit deep
images with dsp -8dither.
X.IP "SunOS3.2"
There are problems in compiling the toolkit under SunOS3.2. (q.v. 
X.I hardware )
X.LP
I would welcome fixes to the above bugs and reports of any others found.
END_OF_FILE
if test 1071 -ne `wc -c <'doc/bugs.ms'`; then
    echo shar: \"'doc/bugs.ms'\" unpacked with wrong size!
fi
# end of 'doc/bugs.ms'
fi
if test -f 'doc/copyright.ms' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/copyright.ms'\"
else
echo shar: Extracting \"'doc/copyright.ms'\" \(1135 characters\)
sed "s/^X//" >'doc/copyright.ms' <<'END_OF_FILE'
X.SH 
Copyright 1988 Phill Everson
X.IP \(bu
This notice and any statement of authorship must be reproduced
on all copies.  The author does not make any warranty expressed
or implied, or assumes any liability or responsiblity for the
use of this software.
X.IP \(bu
Any distributor of copies of this software shall grant the
recipient permission for further redistribution as permitted
by this notice.  Any distributor must distribute this software
without any fee or other monetary gains, unless expressed written
permission is granted by the author.
X.IP \(bu
This software or its use shall not be: sold, rented, leased,
traded, or otherwise marketed without the expressed written
permission of the author.
X.IP \(bu
If the software is modified in a manner creating derivative
copyrights, appropriate legends may be placed on derivative
work in addition to that set forth above.
X.IP \(bu
Permission is hereby granted to copy, reproduce, redistribute or
otherwise use this software as long as the conditions above
are met.
X.IP \(bu
All rights not granted by this notice are reserved.
X.IP \(bu
Author: Phill Everson <everson@uk.ac.bris.cs>
END_OF_FILE
if test 1135 -ne `wc -c <'doc/copyright.ms'`; then
    echo shar: \"'doc/copyright.ms'\" unpacked with wrong size!
fi
# end of 'doc/copyright.ms'
fi
if test -f 'doc/hardware.ms' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/hardware.ms'\"
else
echo shar: Extracting \"'doc/hardware.ms'\" \(1087 characters\)
sed "s/^X//" >'doc/hardware.ms' <<'END_OF_FILE'
X.SH
Hardware 
X.PP
The toolkit has been developed on the following machines: Sun3/50,
Sun3/60M, Sun3/60C, Sun3/60FC, Sun3/110, Sun3/260, and a Sun3/260 with
a TAAC1. These machines have been running versions 3.2, 3.5, 4.0 and 4.01 of
SunOS, the Sun Operating System.
X.PP
The toolkit will also run on Sun4 machines.
X.PP 
Although the toolkit will run on machines running SunOS3.2 it is
impossible to compile the toolkit. This is due to a suspected bug in
the Sun pixrect library calls pr_load() and pr_dump() under SunOS3.2.
These functions are unable to cope with a NULL colourmap.  Code
compiled on a machine of the same architecture running SunOS3.5 will
run under SunOS3.2.
X.PP
The toolkit will run on the Sun386i; however, there seem to be problems
with some of the calls to window_create() in dsp.c. It has been
suggested that this might possibly be due to attribute ordering
problems. Any solutions to this would be greatfully received.
X.PP
If anyone finds that the toolkit will run on other architectures or
ports it to any I would be very interested to hear of their experiences.
END_OF_FILE
if test 1087 -ne `wc -c <'doc/hardware.ms'`; then
    echo shar: \"'doc/hardware.ms'\" unpacked with wrong size!
fi
# end of 'doc/hardware.ms'
fi
if test ! -d 'doc/man' ; then
    echo shar: Creating directory \"'doc/man'\"
    mkdir 'doc/man'
fi
if test ! -d 'doc/man' ; then
    echo shar: Creating directory \"'doc/man'\"
    mkdir 'doc/man'
fi
if test ! -d 'doc/man/man1' ; then
    echo shar: Creating directory \"'doc/man/man1'\"
    mkdir 'doc/man/man1'
fi
if test -f 'doc/man/man1/box.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/box.1'\"
else
echo shar: Extracting \"'doc/man/man1/box.1'\" \(769 characters\)
sed "s/^X//" >'doc/man/man1/box.1' <<'END_OF_FILE'
X.TH BOX 1 "15th January 1989"
X.SH NAME
box \- draw a border around a raster
X.SH SYNOPSIS
X.B box
X[
X.B "infile | -"
X]
X[
X.B "outfile | -"
X] 
X.SH DESCRIPTION
X.I Box
destructively draws a border around a raster. The intensity of the
border is the maximum intensity in the image, taking the bitrestrict
option into account, if appropriate.
X.SH OPTIONS
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI alv_profile (5) ,
X.BI rasterfile (5)
X.SH DIAGNOSTICS
X.IP "Can't open file"
The file does not have the correct access permissions to the file, or it does not exist.
X.SH BUGS
Box should operate non-destructively.
END_OF_FILE
if test 769 -ne `wc -c <'doc/man/man1/box.1'`; then
    echo shar: \"'doc/man/man1/box.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/box.1'
fi
if test -f 'doc/man/man1/dither.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/dither.1'\"
else
echo shar: Extracting \"'doc/man/man1/dither.1'\" \(832 characters\)
sed "s/^X//" >'doc/man/man1/dither.1' <<'END_OF_FILE'
X.TH DITHER 1 "15th January 1989"
X.SH NAME
Dither \- dither with 6x6 matrix
X.SH SYNOPSIS
X.B dither
X[
X.B "infile | -"
X]
X[
X.B "outfile | -"
X] 
X.SH DESCRIPTION
X.I Dither
takes as input an 8 bit deep raster, performs a 6x6 dither and outputs
the resulting 1 bit deep raster.
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI alv_profile (5) ,
X.BI rasterfile (5)
X.SH DIAGNOSTICS
X.IP "Input image not 8 bits deep"
Can only accept 8 bit images as input.
X.IP "mem_create returned NULL"
There was insufficient memory available to allocate space for an image
in memory.
X.IP "Can't open file"
The file does not have the correct access permissions to the file, or
it does not exist.
END_OF_FILE
if test 832 -ne `wc -c <'doc/man/man1/dither.1'`; then
    echo shar: \"'doc/man/man1/dither.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/dither.1'
fi
if test -f 'doc/man/man1/equalise.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/equalise.1'\"
else
echo shar: Extracting \"'doc/man/man1/equalise.1'\" \(590 characters\)
sed "s/^X//" >'doc/man/man1/equalise.1' <<'END_OF_FILE'
X.TH EQUALISE 1 "15th January 1989"
X.SH NAME
equalise \- equalise a raster
X.SH SYNOPSIS
X.B equalise
X[
X.B "infile | -"
X]
X[
X.B "outfile | -"
X] 
X.SH DESCRIPTION
X.I Equalise
performs histogram equalisation on a raster.
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI alv_profile (5) ,
X.BI rasterfile (5)
X.SH DIAGNOSTICS
X.IP "Can't open file"
The file does not have the correct access permissions to the file, or
it does not exist.
END_OF_FILE
if test 590 -ne `wc -c <'doc/man/man1/equalise.1'`; then
    echo shar: \"'doc/man/man1/equalise.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/equalise.1'
fi
if test -f 'doc/man/man1/ffill.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/ffill.1'\"
else
echo shar: Extracting \"'doc/man/man1/ffill.1'\" \(875 characters\)
sed "s/^X//" >'doc/man/man1/ffill.1' <<'END_OF_FILE'
X.TH FFILL 1 "15th January 1989"
X.SH NAME
ffill \- flood fill a raster
X.SH SYNOPSIS
X.B ffill
X[ 
X.B -x xpos
X]
X[
X.B -y ypos
X]
X[
X.B -b boundary
X]
X[
X.B "infile | -"
X]
X[
X.B "outfile | -"
X] 
X.SH DESCRIPTION
X.I Ffill
flood fills a raster using a scan line method. 
The algorithm uses a pixel connectivity of 4.
X.SH OPTIONS
The
X.I -x 
and
X.I -y
options specify the coordinates of the seed point of the flood fill. The
default is (0,0).
X.PP
The 
X.I -b
option spcifies the boundary value. The default is 0. 
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI alv_profile (5) ,
X.BI rasterfile (5)
X.SH DIAGNOSTICS
X.IP "Can't open file"
The file does not have the correct access permissions to the file, or
it does not exist.
X
X
END_OF_FILE
if test 875 -ne `wc -c <'doc/man/man1/ffill.1'`; then
    echo shar: \"'doc/man/man1/ffill.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/ffill.1'
fi
if test -f 'doc/man/man1/glass.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/glass.1'\"
else
echo shar: Extracting \"'doc/man/man1/glass.1'\" \(399 characters\)
sed "s/^X//" >'doc/man/man1/glass.1' <<'END_OF_FILE'
X.TH glass 1 "April 15, 1987"
X.AT 3
X.SH NAME
glass \- a magnifying window
X.SH SYNOPSIS
X.B glass
X[magnification] [sunview options]...
X.SH DESCRIPTION
Interactive onscreen zooming including colour support.
X.SH AUTHOR
Scott Schwartz did the first version.
Mark Weiser did a lot of fiddling, including the sliders, locking, and a better
magnification algorithm.  Ed Falk got it to work with color suns.
X
END_OF_FILE
if test 399 -ne `wc -c <'doc/man/man1/glass.1'`; then
    echo shar: \"'doc/man/man1/glass.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/glass.1'
fi
if test -f 'doc/man/man1/halftone.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/halftone.1'\"
else
echo shar: Extracting \"'doc/man/man1/halftone.1'\" \(910 characters\)
sed "s/^X//" >'doc/man/man1/halftone.1' <<'END_OF_FILE'
X.TH HALFTONE 1 "15th January 1989"
X.SH NAME
halftone \- dither with bitmap font
X.SH SYNOPSIS
X.B halftone
X[
X.B "infile | -"
X]
X[
X.B "outfile | -"
X] 
X.SH DESCRIPTION
X.I Halftone
takes as input an 8 bit deep raster and replaces each pixel with the
appropriate member of a bitmap font, with 10 members. Hence the output
is 1 bit deep, but 3 times the size.
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI alv_profile (5) ,
X.BI rasterfile (5)
X.SH DIAGNOSTICS
X.IP "Can't open file"
The file does not have the correct access permissions to the file, or
it does not exist.
X.IP "image not 8 bits deep"
Can only accept 8 bit rasters as input.
X.IP "mem_create returned NULL"
There was insufficient memory available to allocate space for an raster
in memory.
END_OF_FILE
if test 910 -ne `wc -c <'doc/man/man1/halftone.1'`; then
    echo shar: \"'doc/man/man1/halftone.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/halftone.1'
fi
if test -f 'doc/man/man1/im2ras.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/im2ras.1'\"
else
echo shar: Extracting \"'doc/man/man1/im2ras.1'\" \(750 characters\)
sed "s/^X//" >'doc/man/man1/im2ras.1' <<'END_OF_FILE'
X.TH IM2RAS 1 "15th January 1989"
X.SH NAME
im2ras \- convert old ALV format image to raster
X.SH SYNOPSIS
X.B im2ras
X[
X.B "infile | -"
X]
X[
X.B "outfile | -"
X] 
X.SH DESCRIPTION
X.I Im2ras
converts an image in the old (pre-version 2.0) 
X.I ALV
format into a raster. 
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI alv_profile (5) ,
X.BI rasterfile (5)
X.SH DIAGNOSTICS
X.IP "Can't open file"
The file does not have the correct access permissions to the file, or
it does not exist.
X.IP "mem_create returned NULL"
There was insufficient memory available to allocate space for an raster
in memory.
END_OF_FILE
if test 750 -ne `wc -c <'doc/man/man1/im2ras.1'`; then
    echo shar: \"'doc/man/man1/im2ras.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/im2ras.1'
fi
if test -f 'doc/man/man1/invert.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/invert.1'\"
else
echo shar: Extracting \"'doc/man/man1/invert.1'\" \(772 characters\)
sed "s/^X//" >'doc/man/man1/invert.1' <<'END_OF_FILE'
X.TH INVERT 1 "15th January 1989"
X.SH NAME
invert \- invert raster
X.SH SYNOPSIS
X.B invert
X[
X.B "infile | -"
X]
X[
X.B "outfile | -"
X] 
X.SH DESCRIPTION
X.I Invert
inverts the individual pixels of a raster, by setting each output pixel
to be the absolute of the difference between the pixel value and the
maximum greylevel value in the raster, taking the bitrestrict option
into account if appropriate.
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI alv_profile (5) ,
X.BI rasterfile (5)
X.SH DIAGNOSTICS
X.IP "Can't open file"
The file does not have the correct access permissions to the file, or
it does not exist.
END_OF_FILE
if test 772 -ne `wc -c <'doc/man/man1/invert.1'`; then
    echo shar: \"'doc/man/man1/invert.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/invert.1'
fi
if test -f 'doc/man/man1/ras2im.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/ras2im.1'\"
else
echo shar: Extracting \"'doc/man/man1/ras2im.1'\" \(816 characters\)
sed "s/^X//" >'doc/man/man1/ras2im.1' <<'END_OF_FILE'
X.TH RAS2IM 1 "15th January 1989"
X.SH NAME
ras2im \- converts raster to old ALV format image
X.SH SYNOPSIS
X.B ras2im
X[
X.B "infile | -"
X]
X[
X.B "outfile | -"
X] 
X.SH DESCRIPTION
X.I Ras2im
converts an raster into the old (pre version 2.0) ALV format. The title
of the image is set to the filename of the raster, or 'stdin' if none
is specified.
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI alv_profile (5) ,
X.BI rasterfile (5)
X.SH DIAGNOSTICS
X.IP "Can't open file"
The file does not have the correct access permissions to the file, or
it does not exist.
X.IP "old ALV image format files must be 8 bits deep"
Only 8 bit deep files rasters can be converted.
END_OF_FILE
if test 816 -ne `wc -c <'doc/man/man1/ras2im.1'`; then
    echo shar: \"'doc/man/man1/ras2im.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/ras2im.1'
fi
if test -f 'doc/man/man1/rasinfo.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/rasinfo.1'\"
else
echo shar: Extracting \"'doc/man/man1/rasinfo.1'\" \(810 characters\)
sed "s/^X//" >'doc/man/man1/rasinfo.1' <<'END_OF_FILE'
X.TH RASINFO 1 "15th January 1989"
X.SH NAME
rasinfo \- output raster information
X.SH SYNOPSIS
X.B rasinfo
X[
X.B -n
X]
X[
X.B -c
X]
X[
X.B "infile | -"
X]
X.SH DESCRIPTION
X.I Rasinfo
outputs the raster's xsize, ysize and depth and optionally the
colourmap on the standard output.
X.SH OPTIONS
X.PP
The 
X.B -c
option causes the colourmap of the image to outputed.
X.PP
The
X.B -n
option causes the image size and depth information not to be outputed.
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI alv_profile (5) ,
X.BI rasterfile (5)
X.SH DIAGNOSTICS
X.IP "Can't open file"
The file does not have the correct access permissions to the file, or
it does not exist.
END_OF_FILE
if test 810 -ne `wc -c <'doc/man/man1/rasinfo.1'`; then
    echo shar: \"'doc/man/man1/rasinfo.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/rasinfo.1'
fi
if test -f 'doc/man/man1/rasrange.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/rasrange.1'\"
else
echo shar: Extracting \"'doc/man/man1/rasrange.1'\" \(1048 characters\)
sed "s/^X//" >'doc/man/man1/rasrange.1' <<'END_OF_FILE'
X.TH RASRANGE 1 "15th January 1989"
X.SH NAME
rasrange \- range a raster
X.SH SYNOPSIS
X.B rasrange
X[ 
X.B -l low-val
X]
X[
X.B -h high-val
X]
X[
X.B "infile | -"
X]
X[
X.B "outfile | -"
X] 
X.SH DESCRIPTION
X.I Rasrange
maps the high-value to the maximum greylevel allowed in the image (taking the
bitrestrict option into account, if appropriate), the low-value to 0 and the
greylevels in between linearly between the low-value and high-value.
X.SH OPTIONS
The
X.I -l 
option specifies the low-value. The default is 0.
X.PP
The 
X.I -h
option specifies the high-value. The default is the maximum greylevel in the
image, if bitrestrict is on and the maxiumum possible greylevel otherwise.
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI alv_profile (5) ,
X.BI rasterfile (5)
X.SH DIAGNOSTICS
X.IP "Can't open file"
The file does not have the correct access permissions to the file, or
it does not exist.
X
X
X
X
END_OF_FILE
if test 1048 -ne `wc -c <'doc/man/man1/rasrange.1'`; then
    echo shar: \"'doc/man/man1/rasrange.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/rasrange.1'
fi
if test -f 'doc/man/man1/rasregion.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/rasregion.1'\"
else
echo shar: Extracting \"'doc/man/man1/rasregion.1'\" \(867 characters\)
sed "s/^X//" >'doc/man/man1/rasregion.1' <<'END_OF_FILE'
X.TH RASREGION 1 "15th January 1989"
X.SH NAME
rasregion \- clip a raster to a region
X.SH SYNOPSIS
X.B rasregion
X[ 
X.B -x xoffset
X]
X[
X.B -y yoffset
X]
X[
X.B -X xsize ]
X[
X.B -Y ysize
X]
X[
X.B "infile | -"
X]
X[
X.B "outfile | -"
X] 
X.SH DESCRIPTION
X.I Rasregion
clips a raster to a region. The default region is half the size of the input raster,
centred on the centre of the input raster.
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI alv_profile (5) ,
X.BI rasterfile (5)
X.SH DIAGNOSTICS
X.IP "Can't open file"
The file does not have the correct access permissions to the file, or
it does not exist.
X.IP "pr_region returned NULL"
There was insufficient memory available to allocate space for an raster
in memory.
END_OF_FILE
if test 867 -ne `wc -c <'doc/man/man1/rasregion.1'`; then
    echo shar: \"'doc/man/man1/rasregion.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/rasregion.1'
fi
if test -f 'doc/man/man1/rasthresh.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/rasthresh.1'\"
else
echo shar: Extracting \"'doc/man/man1/rasthresh.1'\" \(1105 characters\)
sed "s/^X//" >'doc/man/man1/rasthresh.1' <<'END_OF_FILE'
X.TH RASTHRESH 1 "15th January 1989"
X.SH NAME
rasthresh \- rasthreshold a raster
X.SH SYNOPSIS
X.B rasthresh
X[ 
X.B -t threshold
X]
X[
X.B "infile | -"
X]
X[
X.B "outfile | -"
X] 
X.SH DESCRIPTION
X.I Rasthresh
converts an raster with many greylevels to a bilevel raster, or bitmap.
The raster is scanned and all those pixels whose greylevel is greater
than the threshold level are set to 1 and all those less than or equal
set to 0.
X.SH OPTIONS
The
X.I -t
option specifies the threshold value.
The default threshold is the half of the maximum greylevel in the
raster, taking the bitrestrict option into account, if appropriate.
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI alv_profile (5) ,
X.BI rasterfile (5)
X.SH DIAGNOSTICS
X.IP "Can't open file"
The file does not have the correct access permissions to the file, or
it does not exist.
X.IP "mem_create returned NULL"
There was insufficient memory available to allocate space for an raster
in memory.
END_OF_FILE
if test 1105 -ne `wc -c <'doc/man/man1/rasthresh.1'`; then
    echo shar: \"'doc/man/man1/rasthresh.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/rasthresh.1'
fi
if test -f 'doc/man/man1/scrload.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/scrload.1'\"
else
echo shar: Extracting \"'doc/man/man1/scrload.1'\" \(766 characters\)
sed "s/^X//" >'doc/man/man1/scrload.1' <<'END_OF_FILE'
X.TH SCRLOAD 1 "29th May 1989"
X.SH NAME
scrload \- screenload program
X.SH SYNOPSIS
X.B scrload
X[
X.BI -f frame_buffer
X]
X[
X.B "infile ..."
X]
X.SH DESCRIPTION
X.I Scrload
is like Sun's 
X.IR screenload (1)
program, but more entertaining and, in the opinion of the original
author, is actually better.
X.SH OPTIONS
X.PP
The 
X.B -f
option specifies the frame buffer. The default is /dev/fb.
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI screenload (1) ,
X.BI alv_profile (5) 
X.SH AUTHOR
Raymond Kreisel, SUNY, USA. Minor modifications by Phill Everson,
University of Bristol, UK for inclusion in the ALV toolkit.
END_OF_FILE
if test 766 -ne `wc -c <'doc/man/man1/scrload.1'`; then
    echo shar: \"'doc/man/man1/scrload.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/scrload.1'
fi
if test -f 'doc/man/man1/winlev8.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/man/man1/winlev8.1'\"
else
echo shar: Extracting \"'doc/man/man1/winlev8.1'\" \(1147 characters\)
sed "s/^X//" >'doc/man/man1/winlev8.1' <<'END_OF_FILE'
X.TH WINLEV8 1 "15th January 1989"
X.SH NAME
winlev8 \- interactive window/level setting for an 8 bit deep raster
X.SH SYNOPSIS
X.B winlev8
X[
X.I sunview arguments
X]
X.SH DESCRIPTION
X.I Winlev8
creates a
X.I sunview (1)
window allowing the user to interactively vary the window and level of any 8
bit image displayed on the screen. This is done by manipulating the workstation
colourmap entries.
X.PP
Although the colourmap of the whole workstation is modified by running 
X.I winlev8,
all images displayed should revert to normal when the mouse is moved
out of the
X.I winlev8
window. The exception to this is greylevel images which are exactly 8
bits deep - these retain the modifications made to their colourmap by
X.I winlev8
when it is exited.
X.SH OPTIONS
The program takes standard 
X.I sunview (1)
arguments.
X.SH FILES
X.IP ~/.alv_profile
Global switches and standard command line arguments for each tool.
X.SH "ENVIROMENT VARIABLES"
X.IP ALV
If set, the pathname of an alternative profile.
X.SH "SEE ALSO"
X.BI alv (1) ,
X.BI sunview (1) ,
X.BI alv_profile (5) ,
X.SH BUGS
X.I Winlev8
should not be able to manipulate the colourmaps of non-8-bit-deep rasters.
END_OF_FILE
if test 1147 -ne `wc -c <'doc/man/man1/winlev8.1'`; then
    echo shar: \"'doc/man/man1/winlev8.1'\" unpacked with wrong size!
fi
# end of 'doc/man/man1/winlev8.1'
fi
if test ! -d 'doc/man/man3' ; then
    echo shar: Creating directory \"'doc/man/man3'\"
    mkdir 'doc/man/man3'
fi
if test ! -d 'doc/man/man5' ; then
    echo shar: Creating directory \"'doc/man/man5'\"
    mkdir 'doc/man/man5'
fi
if test -f 'doc/nroff_header.ms' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/nroff_header.ms'\"
else
echo shar: Extracting \"'doc/nroff_header.ms'\" \(878 characters\)
sed "s/^X//" >'doc/nroff_header.ms' <<'END_OF_FILE'
X.RP
X.ND
X\".ds RF Draft only \(em Do not distribute
X.TL
ALV 
Public Domain 
Image Processing Toolkit 
for Sun Workstations
X.AU
Phillip G. Everson
X.AI
Computer Science Dept.
Bristol University
United Kingdom
X.AB no
The ALV toolkit is a collection of programs supporting image processing
research on Sun workstations. It uses the standard Sun rasterfile
format allowing images of variable size and depth. Programs exist for
general manipulation of images and to display them on various devices.
Current hardware supported is Sun3 (most models) running SunOS 3.2 or
higher together with an Postscript laser printer
such as a Sun/Apple Laserwriter.
X.AE
X.so copyright.ms
X.bp
X.so introduction.ms
X.bp
X.so hardware.ms
X.bp
X.so installation.ms
X.bp
X.so philosophy.ms
X.bp
X.so blackwhite.ms
X.bp
X.so tutorial.ms
X.bp
X.so support.ms
X.bp
X.so acknowledgments.ms
X.bp
X.so changes.ms
X.bp
X.so bugs.ms
END_OF_FILE
if test 878 -ne `wc -c <'doc/nroff_header.ms'`; then
    echo shar: \"'doc/nroff_header.ms'\" unpacked with wrong size!
fi
# end of 'doc/nroff_header.ms'
fi
if test -f 'doc/support.ms' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/support.ms'\"
else
echo shar: Extracting \"'doc/support.ms'\" \(1081 characters\)
sed "s/^X//" >'doc/support.ms' <<'END_OF_FILE'
X.SH
Support & Extensions
X.PP
I use the toolkit extensively in my work and so will try to correct any bugs
reported to me at one of the following email addresses:
X
X.DS L
JANET:     everson@uk.ac.bris.cs   
ARPANET:   everson@cs.bris.ac.uk      OR    everson%uk.ac.bris.cs@nss.cs.ucl.ac.uk 
BITNET:    everson%uk.ac.bris.cs@ukacrl.bitnet
UUCP:      ...mcvax!ukc!csisles!everson 
X.DE
X
or, should all else fail mail me at the following address:
X.DS L
Phill Everson,
Computer Science Dept,
Queens Building,
Bristol University,
Bristol,
UK.
X.DE
X.PP
I would be extremely interested in receiving new tools from users. The file
X.I generic.c
in the src directory can be used as a template to aid in producing new
tools. (see "tutorial" (q.v.)).
X.PP
I have access to a number of images for use with the toolkit, for
example CT scans (12 bits deep) etc which I am willing to distribute to
a limited number of users on request.
X.PP
I support a mailing list to keep users upto date with bugfixes and
enhancements etc. If you wish to subscribe to this list, email
alv-users-request@cs.bris.ac.uk
END_OF_FILE
if test 1081 -ne `wc -c <'doc/support.ms'`; then
    echo shar: \"'doc/support.ms'\" unpacked with wrong size!
fi
# end of 'doc/support.ms'
fi
if test -f 'doc/troff_header.ms' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/troff_header.ms'\"
else
echo shar: Extracting \"'doc/troff_header.ms'\" \(1064 characters\)
sed "s/^X//" >'doc/troff_header.ms' <<'END_OF_FILE'
X.sp 2i
X.ND
X\".ds RF Draft only \(em Do not distribute
X.ps 36
X.vs 38
X.ce 
ALV 
X.sp 0.75i
X.ps 20
X.vs 22
X.ce 3
Public Domain 
Image Processing Toolkit 
for Sun Workstations
X.sp 0.5i
X.ps 20
X.vs 22
X.ce
X.I "  Phillip G. Everson"
X.sp 2
X.ps 14
X.vs 16
X.ce 3
Computer Science Dept.
University of Bristol 
United Kingdom
X.sp 2
X.ce
X15th February, 1989
X.sp 2
X.in +0.75i
X.ll -0.75i
The ALV toolkit is a collection of programs supporting image processing
research on Sun workstations. It uses the standard Sun rasterfile
format allowing images of variable size and depth. Programs exist for
general manipulation of images and to display them on various devices.
Current hardware supported is Sun3 (most models) running SunOS 3.2 or
higher together with an optional Postscript laser printer
such as a Sun/Apple Laserwriter.
X.in -0.75i
X.ll +0.75i
X.bp
X.so copyright.ms
X.bp
X.so introduction.ms
X.bp
X.so hardware.ms
X.bp
X.so installation.ms
X.bp
X.so philosophy.ms
X.bp
X.so blackwhite.ms
X.bp
X.so tutorial.ms
X.bp
X.so support.ms
X.bp
X.so acknowledgments.ms
X.bp
X.so changes.ms
X.bp
X.so bugs.ms
END_OF_FILE
if test 1064 -ne `wc -c <'doc/troff_header.ms'`; then
    echo shar: \"'doc/troff_header.ms'\" unpacked with wrong size!
fi
# end of 'doc/troff_header.ms'
fi
if test ! -d 'filters' ; then
    echo shar: Creating directory \"'filters'\"
    mkdir 'filters'
fi
if test -f 'filters/avg1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'filters/avg1'\"
else
echo shar: Extracting \"'filters/avg1'\" \(103 characters\)
sed "s/^X//" >'filters/avg1' <<'END_OF_FILE'
X7 7
X
X1 1 1 1 1 1 1
X1 1 1 1 1 1 1
X1 1 1 1 1 1 1
X1 1 1 1 1 1 1
X1 1 1 1 1 1 1
X1 1 1 1 1 1 1
X1 1 1 1 1 1 1
END_OF_FILE
if test 103 -ne `wc -c <'filters/avg1'`; then
    echo shar: \"'filters/avg1'\" unpacked with wrong size!
fi
# end of 'filters/avg1'
fi
if test -f 'filters/lap1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'filters/lap1'\"
else
echo shar: Extracting \"'filters/lap1'\" \(32 characters\)
sed "s/^X//" >'filters/lap1' <<'END_OF_FILE'
X3 3
X
X 0 -1  0
X-1  4 -1
X 0 -1  0
END_OF_FILE
if test 32 -ne `wc -c <'filters/lap1'`; then
    echo shar: \"'filters/lap1'\" unpacked with wrong size!
fi
# end of 'filters/lap1'
fi
if test -f 'filters/sobel1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'filters/sobel1'\"
else
echo shar: Extracting \"'filters/sobel1'\" \(82 characters\)
sed "s/^X//" >'filters/sobel1' <<'END_OF_FILE'
X5 5
X
X 1  2  0 -2 -1
X 2  4  0 -4 -2
X 2  6  0 -6 -2
X 2  4  0 -4 -2
X 1  2  0 -2 -1
X
X
END_OF_FILE
if test 82 -ne `wc -c <'filters/sobel1'`; then
    echo shar: \"'filters/sobel1'\" unpacked with wrong size!
fi
# end of 'filters/sobel1'
fi
if test -f 'filters/xdiff1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'filters/xdiff1'\"
else
echo shar: Extracting \"'filters/xdiff1'\" \(124 characters\)
sed "s/^X//" >'filters/xdiff1' <<'END_OF_FILE'
X7 7
X
X1 1 1 0 -1 -1 -1
X1 1 1 0 -1 -1 -1
X1 1 1 0 -1 -1 -1
X1 1 1 0 -1 -1 -1
X1 1 1 0 -1 -1 -1
X1 1 1 0 -1 -1 -1
X1 1 1 0 -1 -1 -1
END_OF_FILE
if test 124 -ne `wc -c <'filters/xdiff1'`; then
    echo shar: \"'filters/xdiff1'\" unpacked with wrong size!
fi
# end of 'filters/xdiff1'
fi
if test ! -d 'images' ; then
    echo shar: Creating directory \"'images'\"
    mkdir 'images'
fi
if test -f 'images/Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'images/Makefile'\"
else
echo shar: Extracting \"'images/Makefile'\" \(194 characters\)
sed "s/^X//" >'images/Makefile' <<'END_OF_FILE'
X# uudecodes and uncompresses the sample image
sample:
X	cat sample_image.Z-uuaa sample_image.Z-uuab sample_image.Z-uuac > sample_image.Z-uu
X	uudecode sample_image.Z-uu
X	uncompress sample_image.Z
END_OF_FILE
if test 194 -ne `wc -c <'images/Makefile'`; then
    echo shar: \"'images/Makefile'\" unpacked with wrong size!
fi
# end of 'images/Makefile'
fi
if test ! -d 'images/cursors' ; then
    echo shar: Creating directory \"'images/cursors'\"
    mkdir 'images/cursors'
fi
if test -f 'images/cursors/palette_brush.cursor' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'images/cursors/palette_brush.cursor'\"
else
echo shar: Extracting \"'images/cursors/palette_brush.cursor'\" \(193 characters\)
sed "s/^X//" >'images/cursors/palette_brush.cursor' <<'END_OF_FILE'
X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
X */
X	0x0176,0x0201,0x0401,0x0883,0x0C43,0x1622,0x2711,0x4983,
X	0x92C6,0x24EC,0x4938,0x1270,0x24C0,0x0980,0x1300,0x0600
END_OF_FILE
if test 193 -ne `wc -c <'images/cursors/palette_brush.cursor'`; then
    echo shar: \"'images/cursors/palette_brush.cursor'\" unpacked with wrong size!
fi
# end of 'images/cursors/palette_brush.cursor'
fi
if test -f 'images/cursors/palette_mark.cursor' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'images/cursors/palette_mark.cursor'\"
else
echo shar: Extracting \"'images/cursors/palette_mark.cursor'\" \(193 characters\)
sed "s/^X//" >'images/cursors/palette_mark.cursor' <<'END_OF_FILE'
X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
X */
X	0x0100,0x0300,0x0700,0x0F00,0x1F00,0x3F00,0x7FFF,0xFFFF,
X	0xFFFF,0x7FFF,0x3F00,0x1F00,0x0F00,0x0700,0x0300,0x0100
END_OF_FILE
if test 193 -ne `wc -c <'images/cursors/palette_mark.cursor'`; then
    echo shar: \"'images/cursors/palette_mark.cursor'\" unpacked with wrong size!
fi
# end of 'images/cursors/palette_mark.cursor'
fi
if test -f 'images/cursors/stretchNW.cursor' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'images/cursors/stretchNW.cursor'\"
else
echo shar: Extracting \"'images/cursors/stretchNW.cursor'\" \(193 characters\)
sed "s/^X//" >'images/cursors/stretchNW.cursor' <<'END_OF_FILE'
X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
X */
X	0x9249,0x0000,0x0000,0x9FFC,0x1FFC,0x1800,0x9800,0x1950,
X	0x1800,0x9900,0x1800,0x1900,0x9800,0x1800,0x0000,0x8000
END_OF_FILE
if test 193 -ne `wc -c <'images/cursors/stretchNW.cursor'`; then
    echo shar: \"'images/cursors/stretchNW.cursor'\" unpacked with wrong size!
fi
# end of 'images/cursors/stretchNW.cursor'
fi
if test -f 'images/cursors/stretchSE.cursor' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'images/cursors/stretchSE.cursor'\"
else
echo shar: Extracting \"'images/cursors/stretchSE.cursor'\" \(193 characters\)
sed "s/^X//" >'images/cursors/stretchSE.cursor' <<'END_OF_FILE'
X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
X */
X	0x0001,0x0000,0x0018,0x0019,0x0098,0x0018,0x0099,0x0018,
X	0x0A98,0x0019,0x0018,0x3FF8,0x3FF9,0x0000,0x0000,0x9249
END_OF_FILE
if test 193 -ne `wc -c <'images/cursors/stretchSE.cursor'`; then
    echo shar: \"'images/cursors/stretchSE.cursor'\" unpacked with wrong size!
fi
# end of 'images/cursors/stretchSE.cursor'
fi
if test ! -d 'images/icons' ; then
    echo shar: Creating directory \"'images/icons'\"
    mkdir 'images/icons'
fi
if test ! -d 'src' ; then
    echo shar: Creating directory \"'src'\"
    mkdir 'src'
fi
if test -f 'src/declarations.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/declarations.h'\"
else
echo shar: Extracting \"'src/declarations.h'\" \(753 characters\)
sed "s/^X//" >'src/declarations.h' <<'END_OF_FILE'
extern array2ras_main();
extern blend_main();
extern box_main();
extern cst_main();
extern convert_main();
extern convolve_main();
extern dither_main();
extern dsp_main();
extern equalise_main();
extern fconvolve_main();
extern ffill_main();
extern halftone_main();
extern hist_main();
extern hough_main();
extern im2ras_main();
extern invert_main();
extern palettetool_main();
extern ras2array_main();
extern ras2im_main();
extern ras2lw_main();
extern ras8to1_main();
extern rasinfo_main();
extern rasrange_main();
extern rasregion_main();
extern rasremap_main();
extern rasscale_main();
extern rasthresh_main();
extern rasval_main();
extern scrload_main();
extern scr2ras_main();
extern transform_main();
extern winlev_main();
extern winlev8_main();
END_OF_FILE
if test 753 -ne `wc -c <'src/declarations.h'`; then
    echo shar: \"'src/declarations.h'\" unpacked with wrong size!
fi
# end of 'src/declarations.h'
fi
if test -f 'src/defs.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/defs.h'\"
else
echo shar: Extracting \"'src/defs.h'\" \(1060 characters\)
sed "s/^X//" >'src/defs.h' <<'END_OF_FILE'
X#include <stdio.h>
X#include <math.h>
X#include <string.h>
X#include <sys/file.h>
X
X#include <suntool/sunview.h>
X#include <suntool/canvas.h>
X#include <suntool/panel.h>
X#include <pixrect/pixrect_hs.h>
X#include <sunwindow/defaults.h>
X
X#define PROFILE		".alv_profile"
X#define NOT_SUPPORTED   -1 
X#define ROUND_DEPTH(d)  ((d==1)?1:(d<=8)?8:(d<=16)?16:(d<=32)?32:NOT_SUPPORTED)
X#define MAXLEVEL(d)		((int)(pow(2.,(double)(d))))
X#define MT_GRAYSCALE	4
X
X#define ALV_ERR_DEPTH_NO_SUPPORT	"Depth not supported"
X
X#ifndef MAX
X#define MAX(a,b)		(((a)>(b))?(a):(b))
X#endif
X#ifndef MIN
X#define MIN(a,b)		(((a)<(b))?(a):(b))
X#endif
X
X#define strsave(s)      (strcpy(malloc(strlen(s)+1),s))
X
X#define FONT		"/usr/lib/fonts/fixedwidthfonts/screen.r.12"
X#define SMALL_FONT	"/usr/lib/fonts/fixedwidthfonts/screen.r.7"
X
X#define FALSE	0
X#ifndef TRUE
X#define TRUE	!FALSE
X#endif
X
Pixfont *font, *smallfont;
X
int bitrestrict, verbose, mono_override;
X
extern char *optarg;
extern int optind, opterr;
X
int errflag;
int gc, stream;
XFILE *f[2];
char *mode[2];
X
unsigned char greylevelmap[256];
END_OF_FILE
if test 1060 -ne `wc -c <'src/defs.h'`; then
    echo shar: \"'src/defs.h'\" unpacked with wrong size!
fi
# end of 'src/defs.h'
fi
if test -f 'src/generic.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/generic.c'\"
else
echo shar: Extracting \"'src/generic.c'\" \(1054 characters\)
sed "s/^X//" >'src/generic.c' <<'END_OF_FILE'
X#include <stdio.h>
X#include "defs.h"
X
char           *progname;
char           *filename;
Pixrect        *pr;
X
X#ifdef STANDALONE
main(argc, argv, envp)
X#else
generic_main(argc, argv, envp)
X#endif
X	int             argc;
X	char          **argv;
X	char          **envp;
X{
X	register int    i, j;
X	int             levels;
X	colormap_t		colormap;
X
X	progname = strsave(argv[0]);
X	parse_profile(&argc, argv, envp);
X
X	while ((gc = getopt(argc, argv, " ")) != EOF) 
X		switch (gc) {
X		case '?':
X			errflag++;
X			break;
X		}
X
X	if (errflag)
X		error((char *) 0, "Usage: %s: [infile] [outfile]", progname);
X
X	for (stream = 0; optind < argc; stream++, optind++)
X		if (stream < 2 && strcmp(argv[optind], "-") != 0)
X			if (freopen(argv[optind], mode[stream], f[stream]) == NULL)
X				error("%s %s", PR_IO_ERR_INFILE, argv[optind]);
X
X	if ((pr = pr_load(stdin, &colormap)) == NULL)
X		error(PR_IO_ERR_RASREAD);
X
X	if (bitrestrict)
X		levels = calc_max(pr)+1;
X	else
X		levels = MAXLEVEL(pr->pr_depth);
X
X	/* filter code goes here */
X
X	pr_dump(pr, stdout, &colormap, RT_STANDARD, 0);
X}
END_OF_FILE
if test 1054 -ne `wc -c <'src/generic.c'`; then
    echo shar: \"'src/generic.c'\" unpacked with wrong size!
fi
# end of 'src/generic.c'
fi
if test -f 'src/glass-patchlevel.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/glass-patchlevel.h'\"
else
echo shar: Extracting \"'src/glass-patchlevel.h'\" \(21 characters\)
sed "s/^X//" >'src/glass-patchlevel.h' <<'END_OF_FILE'
X#define PATCHLEVEL 2
END_OF_FILE
if test 21 -ne `wc -c <'src/glass-patchlevel.h'`; then
    echo shar: \"'src/glass-patchlevel.h'\" unpacked with wrong size!
fi
# end of 'src/glass-patchlevel.h'
fi
if test -f 'src/im2ras.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/im2ras.c'\"
else
echo shar: Extracting \"'src/im2ras.c'\" \(1051 characters\)
sed "s/^X//" >'src/im2ras.c' <<'END_OF_FILE'
X#include <stdio.h>
X#include "defs.h"
X
char           *progname;
Pixrect        *pr;
X
X#ifdef STANDALONE
main(argc, argv, envp)
X#else
im2ras_main(argc, argv, envp)
X#endif
X	int             argc;
X	char          **argv;
X	char          **envp;
X{
X	register int    i, j;
X
X	progname = strsave(argv[0]);
X	parse_profile(&argc, argv, envp);
X
X	while ((gc = getopt(argc, argv, " ")) != EOF)
X		switch (gc) {
X		case '?':
X			errflag++;
X			break;
X		}
X
X	if (errflag)
X		error((char *) 0, "Usage: %s: [infile] [outfile]\n", progname);
X
X	for (stream = 0; optind < argc; stream++, optind++)
X		if (stream < 2 && strcmp(argv[optind], "-") != 0)
X			if (freopen(argv[optind], mode[stream], f[stream]) == NULL)
X				error("%s %s", PR_IO_ERR_INFILE, argv[optind]);
X
X	i = getw(stdin);
X
X	for (j = 0; j < 252; j++)
X		getc(stdin);
X
X	if ((pr = mem_create((i >> 16), (i & 65535), 8)) == NULL)
X		error("mem_create returned NULL");
X
X	for (j = 0; j < pr->pr_size.y; j++)
X		for (i = 0; i < pr->pr_size.x; i++)
X			pr_put(pr, i, j, getc(stdin));
X
X	pr_dump(pr, stdout, NULL, RT_STANDARD, 0);
X}
END_OF_FILE
if test 1051 -ne `wc -c <'src/im2ras.c'`; then
    echo shar: \"'src/im2ras.c'\" unpacked with wrong size!
fi
# end of 'src/im2ras.c'
fi
if test ! -d 'src/images' ; then
    echo shar: Creating directory \"'src/images'\"
    mkdir 'src/images'
fi
if test -f 'src/matrix.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/matrix.h'\"
else
echo shar: Extracting \"'src/matrix.h'\" \(354 characters\)
sed "s/^X//" >'src/matrix.h' <<'END_OF_FILE'
X/*	@(#)matrix.h	1.1	11/3/88	*/
X
X#include <stdio.h>
X#include <math.h>
X
typedef double **MATRIX;
typedef double *VECTOR;
MATRIX          minit(), mnil(), mmult(), mass(), mset();
VECTOR          vinit(), vnil(), vmult(), xprod(), vadd(), vsub(), vass(), vnorm(), vset();
double          dprod();
X#define		mfree(A)	freeup(A,2)
X#define		vfree(v)	freeup(v,1)
END_OF_FILE
if test 354 -ne `wc -c <'src/matrix.h'`; then
    echo shar: \"'src/matrix.h'\" unpacked with wrong size!
fi
# end of 'src/matrix.h'
fi
if test -f 'src/p_icons.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/p_icons.h'\"
else
echo shar: Extracting \"'src/p_icons.h'\" \(429 characters\)
sed "s/^X//" >'src/p_icons.h' <<'END_OF_FILE'
static short    palette_icon_image[] = {
X#include "../images/icons/palette.icon"
X};
DEFINE_ICON_FROM_IMAGE(palette_icon, palette_icon_image);
X
X/*
short    markimage[] = {
X#include "../images/cursors/palette_mark.cursor"
X};
mpr_static(markpix, 16, 16, 1, markimage);
X*/
X
X/* multicanvas cursor */
static short    brush_image[] = {
X#include "../images/cursors/palette_brush.cursor"
X};
mpr_static(brushpix, 16, 16, 1, brush_image);
X
END_OF_FILE
if test 429 -ne `wc -c <'src/p_icons.h'`; then
    echo shar: \"'src/p_icons.h'\" unpacked with wrong size!
fi
# end of 'src/p_icons.h'
fi
if test -f 'src/p_init.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/p_init.c'\"
else
echo shar: Extracting \"'src/p_init.c'\" \(730 characters\)
sed "s/^X//" >'src/p_init.c' <<'END_OF_FILE'
X/********************************* palette_init.c *************
X * by Hsuan Chang (hsc%vanderbilt@csnet-relay)
X * 7/1/87
X *
X * global variable initialization
X */
X#include "p_include.h"
X
palette_init()
X{
X	int i;
X
X	xoff            = 20;		 
X	yoff            = 10;
X	xspace          = 10;
X	yspace          = 10;
X	cwidth          = 12;		/* was 25 */
X	cheight         = 12;		/* was 25 */
X
X	bar_offset		= 30;
X
X	undo_len = 0;
X	selected_i = 0;
X	selected_j = 0;
X	selected_n = 0;
X	hi = -9999;
X	hj = -9999;
X	highlighted = 0;
X	selected = FALSE;
X
X	/* initial colormap: grey ramp */
X	for (i=0; i<MAX_CMAP_LEN; i++) {
X               r[i] = (unsigned char) i;
X               g[i] = (unsigned char) i;
X               b[i] = (unsigned char) i;
X	}
X
X}
END_OF_FILE
if test 730 -ne `wc -c <'src/p_init.c'`; then
    echo shar: \"'src/p_init.c'\" unpacked with wrong size!
fi
# end of 'src/p_init.c'
fi
if test -f 'src/pattern.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/pattern.h'\"
else
echo shar: Extracting \"'src/pattern.h'\" \(291 characters\)
sed "s/^X//" >'src/pattern.h' <<'END_OF_FILE'
X#define BOXSIZE 		3
X
int pat[] = 
X{	0,0,0,
X	0,0,0,
X	0,0,0,
X		0,0,0,
X		0,1,0,
X		0,0,0,
X	0,0,0,
X	1,0,1,
X	0,0,0,
X		0,0,1,
X		0,1,0,
X		1,0,0,
X	0,1,0,
X	1,0,1,
X	0,1,0,
X		1,0,1,
X		0,1,0,
X		1,0,1,
X	1,1,1,
X	0,1,0,
X	1,0,1,
X		1,1,1,
X		1,1,0,
X		1,0,1,
X	1,1,1,
X	1,0,1,
X	1,1,1,
X		1,1,1,
X		1,1,1,
X		1,1,1};
END_OF_FILE
if test 291 -ne `wc -c <'src/pattern.h'`; then
    echo shar: \"'src/pattern.h'\" unpacked with wrong size!
fi
# end of 'src/pattern.h'
fi
if test -f 'src/toolmerge.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/toolmerge.c'\"
else
echo shar: Extracting \"'src/toolmerge.c'\" \(1027 characters\)
sed "s/^X//" >'src/toolmerge.c' <<'END_OF_FILE'
X/*
X * 	Overview:	Tool Merger: The size of the libraries used by tools
X *			is large.  Substantial memory size saving can be
X *			realized by merging together a group of tools.
X *			The text for every instance of each of the merged tools
X *			is shared.  Each merged tool should be a symbolic
X *			link to the shared object file.
X */
X
X#include "declarations.h"
X
struct map {
X	char cmd[32];
X	int  (*routine)();
X};
struct map  cmd_routine_map[] = {
X#include "tools.h"
X};
X
main(argc, argv, envp)
X	int argc;
X	char **argv;
X        char **envp;
X{
X	extern	char *rindex();
X	char	*filename = rindex(argv[0], '/');
X	int i;
X	int num_of_cmds;
X
X	if (!filename)
X		filename = argv[0];
X	else
X		filename++;
X	num_of_cmds = sizeof(cmd_routine_map)/sizeof(struct map);
X	for (i = 0; i < sizeof(cmd_routine_map)/sizeof(struct map); i++)  { 
X		if (strcmp(filename,cmd_routine_map[i].cmd) == 0)  {
X			cmd_routine_map[i].routine(argc,argv,envp);
X			exit(0);
X		}
X	}
X	printf("Couldn't run %s in toolmerge.main report to author\n", argv[0]);
X	
X	exit(0);
X}
END_OF_FILE
if test 1027 -ne `wc -c <'src/toolmerge.c'`; then
    echo shar: \"'src/toolmerge.c'\" unpacked with wrong size!
fi
# end of 'src/toolmerge.c'
fi
if test -f 'src/tools.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/tools.h'\"
else
echo shar: Extracting \"'src/tools.h'\" \(920 characters\)
sed "s/^X//" >'src/tools.h' <<'END_OF_FILE'
X"array2ras",array2ras_main,
X"blend",blend_main,
X"box",box_main,
X"convert",convert_main,
X"convolve",convolve_main,
X"cst",cst_main,
X"dither",dither_main,
X"dsp",dsp_main,
X"equalise",equalise_main,
X"fconvolve",fconvolve_main,
X"ffill",ffill_main,
X"halftone",halftone_main,
X"hist",hist_main,
X"hough",hough_main,
X"im2ras",im2ras_main,
X"invert",invert_main,
X"palettetool",palettetool_main,
X"ras2array",ras2array_main,
X"ras2im",ras2im_main,
X"ras2lw",ras2lw_main,
X"ras8to1",ras8to1_main,
X"rasinfo",rasinfo_main,
X"rasrange",rasrange_main,
X"rasregion",rasregion_main,
X"rasremap",rasremap_main,
X"rasscale",rasscale_main,
X"rasthresh",rasthresh_main,
X"rasval",rasval_main,
X"scrload",scrload_main,
X"scr2ras",scr2ras_main,
X"transform",transform_main,
X"winlev",winlev_main,
X"winlev8",winlev8_main,
X"half",rasscale_main,
X"third",rasscale_main,
X"quarter",rasscale_main,
X"double",rasscale_main,
X"triple",rasscale_main,
X"quad",rasscale_main,
END_OF_FILE
if test 920 -ne `wc -c <'src/tools.h'`; then
    echo shar: \"'src/tools.h'\" unpacked with wrong size!
fi
# end of 'src/tools.h'
fi
echo shar: End of archive 1 \(of 10\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 10 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0