about summary refs log tree commit diff
path: root/vms
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2006-08-19 03:12:28 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2006-08-19 03:12:28 +0000
commit1fd361a1ea06e44286c213ca1f814f49306fdc43 (patch)
tree64c8c96cf54d8718847339a403e5e67b922e8c3f /vms
downloadnetpbm-mirror-1fd361a1ea06e44286c213ca1f814f49306fdc43.tar.gz
netpbm-mirror-1fd361a1ea06e44286c213ca1f814f49306fdc43.tar.xz
netpbm-mirror-1fd361a1ea06e44286c213ca1f814f49306fdc43.zip
Create Subversion repository
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@1 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'vms')
-rwxr-xr-xvms/Add_List.com59
-rwxr-xr-xvms/Make_PBMplus.com519
-rwxr-xr-xvms/Make_PBMplusShr.com280
-rw-r--r--vms/NetPBM.TeX12115
-rw-r--r--vms/PBMplus.hlp6814
-rw-r--r--vms/RGB.txt738
-rwxr-xr-xvms/SetUp.com37
-rwxr-xr-xvms/stamp-date.com25
8 files changed, 20587 insertions, 0 deletions
diff --git a/vms/Add_List.com b/vms/Add_List.com
new file mode 100755
index 00000000..830cfc96
--- /dev/null
+++ b/vms/Add_List.com
@@ -0,0 +1,59 @@
+$ VERIFY = F$Verify (0)
+$!
+$!     ADD_LIST.COM command procedure
+$!         Usage:
+$!             ADD_LIST library file_spec [logical_name_table]
+$!
+$!     Last Modified: 18-JAN-1991 Rick Dyson
+$!
+$!     Escape routes
+$ On Control_Y Then GoTo FINISH
+$ On Error     Then GoTo FINISH
+$ On Warning   Then GoTo FINISH
+$ On Severe    Then GoTo FINISH
+$!
+$!     We're out'a here if the calling parameter is null
+$ P2 = F$Edit (P2, "TRIM, UPCASE")
+$ If P2 .eqs. "" Then GoTo FINISH
+$!
+$!     Check logical name table argument and default if necessary.
+$!
+$ TABLE = F$Edit (P3, "UNCOMMENT, UPCASE, TRIM")
+$ If (TABLE .eqs. "PROCESS")
+$    Then
+$    Else If (TABLE .eqs. "GROUP")
+$            Then
+$            Else If (TABLE .eqs. "JOB")
+$                    Then
+$                    Else If (TABLE .eqs. "SYSTEM")
+$                            Then
+$                            Else
+$                                TABLE = "Process"
+$                         EndIf
+$                 EndIf
+$         EndIf
+$ EndIf
+$!
+$! Check the first value in the library list
+$ LIB = P1
+$ X = F$TrnLnm (LIB, "LNM$''TABLE'")
+$ If X .eqs. "" Then GoTo INSERT
+$ If X .eqs. P2 Then GoTo FINISH
+$!
+$! Find the first free logical to assign the library file to
+$ BASE = P1 + "_"
+$ N = 1
+$NEXTLIB:
+$   LIB := 'BASE''N'
+$   X = F$TrnLnm (LIB, "LNM$''TABLE'")
+$   If X .eqs. "" Then GoTo INSERT
+$   If X .eqs. P2 Then GoTo FINISH
+$   N = N + 1
+$   GoTo NEXTLIB
+$!
+$! Add the library file to the library file list
+$INSERT:
+$   Define /'TABLE' 'LIB' 'P2'
+$FINISH:
+$   VERIFY = F$Verify (VERIFY)
+$   Exit
diff --git a/vms/Make_PBMplus.com b/vms/Make_PBMplus.com
new file mode 100755
index 00000000..d3243d96
--- /dev/null
+++ b/vms/Make_PBMplus.com
@@ -0,0 +1,519 @@
+$ If F$Mode () .eqs. "INTERACTIVE"
+$    Then
+$        VERIFY = F$Verify (0)
+$    Else
+$        VERIFY = F$Verify (1)
+$ EndIf
+$ THIS_PATH = F$Element (0, "]", F$Environment ("PROCEDURE")) + "]"
+$ Set Default 'THIS_PATH'
+$!
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) + ".]"
+$ Define /NoLog /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ Define /NoLog PBMplus_Dir PBMplus_Root:[000000]
+$ Define /NoLog PBMplusShr PBMplus_Dir:PBMplusShr
+$ @ PBMplus_Dir:STAMP-DATE.COM
+$ Purge /NoLog /NoConfirm COMPILE.H
+$!
+$!            Make the Shareable Library
+$!
+$ Set Default PBMplus_Root:[pbm]
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) - ".PBM" + ".]"
+$ If F$TrnLnm ("PBMplus_Root") .eqs. "" Then 	Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ If F$TrnLnm ("PBMplus_Dir") .eqs. "" Then 	Define PBMplus_Dir PBMplus_Root:[000000]
+$ If F$TrnLnm ("Sys") .eqs. "" Then Define Sys Sys$Library
+$ CC /NOLIST/OBJECT=LIBPBM1.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] LIBPBM1.C
+$ CC /NOLIST/OBJECT=LIBPBM2.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] LIBPBM2.C
+$ CC /NOLIST/OBJECT=LIBPBM3.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] LIBPBM3.C
+$ CC /NOLIST/OBJECT=LIBPBM4.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] LIBPBM4.C
+$ CC /NOLIST/OBJECT=LIBPBM5.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] LIBPBM5.C
+$ Library /Create libpbm.olb libpbm%.obj
+$ Set Default PBMplus_Root:[pgm]
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) - ".PGM" + ".]"
+$ If F$TrnLnm ("PBMplus_Root") .eqs. "" Then 	Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ If F$TrnLnm ("PBMplus_Dir") .eqs. "" Then 	Define PBMplus_Dir PBMplus_Root:[000000]
+$ If F$TrnLnm ("Sys") .eqs. "" Then Define Sys Sys$Library
+$ CC /NOLIST/OBJECT=LIBPGM1.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) LIBPGM1.C
+$ CC /NOLIST/OBJECT=LIBPGM2.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) LIBPGM2.C
+$ Library /Create libpgm.olb libpgm%.obj
+$ Set Default PBMplus_Root:[ppm]
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) - ".PPM" + ".]"
+$ If F$TrnLnm ("PBMplus_Root") .eqs. "" Then 	Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ If F$TrnLnm ("PBMplus_Dir") .eqs. "" Then 	Define PBMplus_Dir PBMplus_Root:[000000]
+$ If F$TrnLnm ("Sys") .eqs. "" Then Define Sys Sys$Library
+$ CC /NOLIST/OBJECT=LIBPPM1.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) LIBPPM1.C
+$ CC /NOLIST/OBJECT=LIBPPM2.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) LIBPPM2.C
+$ CC /NOLIST/OBJECT=LIBPPM3.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) LIBPPM3.C
+$ CC /NOLIST/OBJECT=LIBPPM4.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) LIBPPM4.C
+$ CC /NOLIST/OBJECT=LIBPPM5.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) LIBPPM5.C
+$ CC /NOLIST/OBJECT=BITIO.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) BITIO.C
+$ Library /Create libppm.olb libppm%.obj,bitio.obj
+$ Set Default PBMplus_Root:[pnm]
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) - ".PNM" + ".]"
+$ If F$TrnLnm ("PBMplus_Root") .eqs. "" Then 	Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ If F$TrnLnm ("PBMplus_Dir") .eqs. "" Then 	Define PBMplus_Dir PBMplus_Root:[000000]
+$ If F$TrnLnm ("Sys") .eqs. "" Then Define Sys Sys$Library
+$ CC /NOLIST/OBJECT=LIBPNM1.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) LIBPNM1.C
+$ CC /NOLIST/OBJECT=LIBPNM2.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) LIBPNM2.C
+$ CC /NOLIST/OBJECT=LIBPNM3.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) LIBPNM3.C
+$ CC /NOLIST/OBJECT=LIBPNM4.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) LIBPNM4.C
+$ Library /Create libpnm.olb libpnm%.obj
+$ Set Default PBMplus_Dir
+$ @ PBMplus_Dir:MAKE_PBMplusShr.COM
+$!
+$!		PBM
+$!
+$ Set Default PBMplus_Root:[pbm]
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) - ".PBM" + ".]"
+$ If F$TrnLnm ("PBMplus_Root") .eqs. "" Then 	Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ If F$TrnLnm ("PBMplus_Dir") .eqs. "" Then 	Define PBMplus_Dir PBMplus_Root:[000000]
+$ If F$TrnLnm ("Sys") .eqs. "" Then Define Sys Sys$Library
+$ CC /NOLIST/OBJECT=ATKTOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] ATKTOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=ATKTOPBM.EXE ATKTOPBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=BRUSHTOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] BRUSHTOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=BRUSHTOPBM.EXE BRUSHTOPBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=CMUWMTOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] CMUWMTOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=CMUWMTOPBM.EXE CMUWMTOPBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=G3TOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] G3TOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=G3TOPBM.EXE G3TOPBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=GEMTOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] GEMTOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=GEMTOPBM.EXE GEMTOPBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=ICONTOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] ICONTOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=ICONTOPBM.EXE ICONTOPBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=MACPTOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] MACPTOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=MACPTOPBM.EXE MACPTOPBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=MGRTOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] MGRTOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=MGRTOPBM.EXE MGRTOPBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMLIFE.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMLIFE.C
+$ LINK /TRACE/NOMAP/EXEC=PBMLIFE.EXE PBMLIFE.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMMAKE.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMMAKE.C
+$ LINK /TRACE/NOMAP/EXEC=PBMMAKE.EXE PBMMAKE.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMMASK.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMMASK.C
+$ LINK /TRACE/NOMAP/EXEC=PBMMASK.EXE PBMMASK.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMREDUCE.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMREDUCE.C
+$ LINK /TRACE/NOMAP/EXEC=PBMREDUCE.EXE PBMREDUCE.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTEXT.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTEXT.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTEXT.EXE PBMTEXT.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTO10X.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTO10X.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTO10X.EXE PBMTO10X.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTO4425.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTO4425.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTO4425.EXE PBMTO4425.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOASCII.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOASCII.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOASCII.EXE PBMTOASCII.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOATK.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOATK.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOATK.EXE PBMTOATK.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOBBNBG.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOBBNBG.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOBBNBG.EXE PBMTOBBNBG.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOCMUWM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOCMUWM.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOCMUWM.EXE PBMTOCMUWM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOEPSON.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOEPSON.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOEPSON.EXE PBMTOEPSON.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOG3.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOG3.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOG3.EXE PBMTOG3.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOGEM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOGEM.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOGEM.EXE PBMTOGEM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOGO.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOGO.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOGO.EXE PBMTOGO.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOICON.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOICON.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOICON.EXE PBMTOICON.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOLJ.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOLJ.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOLJ.EXE PBMTOLJ.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOMACP.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOMACP.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOMACP.EXE PBMTOMACP.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOMGR.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOMGR.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOMGR.EXE PBMTOMGR.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOPI3.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOPI3.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOPI3.EXE PBMTOPI3.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOPLOT.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOPLOT.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOPLOT.EXE PBMTOPLOT.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOPTX.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOPTX.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOPTX.EXE PBMTOPTX.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOX10BM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOX10BM.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOX10BM.EXE PBMTOX10BM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOXBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOXBM.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOXBM.EXE PBMTOXBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOYBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOYBM.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOYBM.EXE PBMTOYBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOZINC.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOZINC.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOZINC.EXE PBMTOZINC.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMUPC.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMUPC.C
+$ LINK /TRACE/NOMAP/EXEC=PBMUPC.EXE PBMUPC.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PI3TOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PI3TOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=PI3TOPBM.EXE PI3TOPBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=XBMTOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] XBMTOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=XBMTOPBM.EXE XBMTOPBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=YBMTOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] YBMTOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=YBMTOPBM.EXE YBMTOPBM.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOLN03.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOLN03.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOLN03.EXE PBMTOLN03.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMCLEAN.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMCLEAN.C
+$ LINK /TRACE/NOMAP/EXEC=PBMCLEAN.EXE PBMCLEAN.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMPSCALE.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMPSCALE.C
+$ LINK /TRACE/NOMAP/EXEC=PBMPSCALE.EXE PBMPSCALE.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOEPSI.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOEPSI.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOEPSI.EXE PBMTOEPSI.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOLPS.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOLPS.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOLPS.EXE PBMTOLPS.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PBMTOPK.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PBMTOPK.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOPK.EXE PBMTOPK.obj,PBMplusSHR/Option
+$ CC /NOLIST/OBJECT=PKTOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = [-] PKTOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=PKTOPBM.EXE PKTOPBM.obj,PBMplusSHR/Option
+$ Set Protection = (System:RWE, Owner:RWE, Group:RE, World:RE) *.exe
+$!
+$!		PGM
+$!
+$ Set Default PBMplus_Root:[pgm]
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) - ".PGM" + ".]"
+$ If F$TrnLnm ("PBMplus_Root") .eqs. "" Then 	Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ If F$TrnLnm ("PBMplus_Dir") .eqs. "" Then 	Define PBMplus_Dir PBMplus_Root:[000000]
+$ If F$TrnLnm ("Sys") .eqs. "" Then Define Sys Sys$Library
+$ CC /NOLIST/OBJECT=ASCIITOPGM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) ASCIITOPGM.C
+$ LINK /TRACE/NOMAP/EXEC=ASCIITOPGM.EXE ASCIITOPGM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=FSTOPGM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) FSTOPGM.C
+$ LINK /TRACE/NOMAP/EXEC=FSTOPGM.EXE FSTOPGM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=HIPSTOPGM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) HIPSTOPGM.C
+$ LINK /TRACE/NOMAP/EXEC=HIPSTOPGM.EXE HIPSTOPGM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=LISPMTOPGM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) LISPMTOPGM.C
+$ LINK /TRACE/NOMAP/EXEC=LISPMTOPGM.EXE LISPMTOPGM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMBENTLEY.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMBENTLEY.C
+$ LINK /TRACE/NOMAP/EXEC=PGMBENTLEY.EXE PGMBENTLEY.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMCRATER.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMCRATER.C
+$ LINK /TRACE/NOMAP/EXEC=PGMCRATER.EXE PGMCRATER.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMEDGE.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMEDGE.C
+$ LINK /TRACE/NOMAP/EXEC=PGMEDGE.EXE PGMEDGE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMENHANCE.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMENHANCE.C
+$ LINK /TRACE/NOMAP/EXEC=PGMENHANCE.EXE PGMENHANCE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMHIST.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMHIST.C
+$ LINK /TRACE/NOMAP/EXEC=PGMHIST.EXE PGMHIST.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMKERNEL.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMKERNEL.C
+$ LINK /TRACE/NOMAP/EXEC=PGMKERNEL.EXE PGMKERNEL.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMNOISE.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMNOISE.C
+$ LINK /TRACE/NOMAP/EXEC=PGMNOISE.EXE PGMNOISE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMNORM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMNORM.C
+$ LINK /TRACE/NOMAP/EXEC=PGMNORM.EXE PGMNORM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMOIL.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMOIL.C
+$ LINK /TRACE/NOMAP/EXEC=PGMOIL.EXE PGMOIL.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMRAMP.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMRAMP.C
+$ LINK /TRACE/NOMAP/EXEC=PGMRAMP.EXE PGMRAMP.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMTOFS.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMTOFS.C
+$ LINK /TRACE/NOMAP/EXEC=PGMTOFS.EXE PGMTOFS.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMTOLISPM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMTOLISPM.C
+$ LINK /TRACE/NOMAP/EXEC=PGMTOLISPM.EXE PGMTOLISPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMTOPBM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMTOPBM.C
+$ LINK /TRACE/NOMAP/EXEC=PGMTOPBM.EXE PGMTOPBM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PSIDTOPGM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PSIDTOPGM.C
+$ LINK /TRACE/NOMAP/EXEC=PSIDTOPGM.EXE PSIDTOPGM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=RAWTOPGM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) RAWTOPGM.C
+$ LINK /TRACE/NOMAP/EXEC=RAWTOPGM.EXE RAWTOPGM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMTEXTURE.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PGMTEXTURE.C
+$ LINK /TRACE/NOMAP/EXEC=PGMTEXTURE.EXE PGMTEXTURE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=BIORADTOPGM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) BIORADTOPGM.C
+$ LINK /TRACE/NOMAP/EXEC=BIORADTOPGM.EXE BIORADTOPGM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PBMTOPGM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) PBMTOPGM.C
+$ LINK /TRACE/NOMAP/EXEC=PBMTOPGM.EXE PBMTOPGM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=SPOTTOPGM.OBJ /Define = (PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-.pbm],[-]) SPOTTOPGM.C
+$ LINK /TRACE/NOMAP/EXEC=SPOTTOPGM.EXE SPOTTOPGM.obj,[-]PBMplusSHR.OPT/Option
+$ Set Protection = (System:RWE, Owner:RWE, Group:RE, World:RE) *.exe
+$!
+$!		PPM
+$!
+$ Set Default PBMplus_Root:[ppm]
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) - ".PPM" + ".]"
+$ If F$TrnLnm ("PBMplus_Root") .eqs. "" Then 	Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ If F$TrnLnm ("PBMplus_Dir") .eqs. "" Then 	Define PBMplus_Dir PBMplus_Root:[000000]
+$ If F$TrnLnm ("Sys") .eqs. "" Then Define Sys Sys$Library
+$ CC /NOLIST/OBJECT=GOULDTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) GOULDTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=GOULDTOPPM.EXE GOULDTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=HPCDTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) HPCDTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=HPCDTOPPM.EXE HPCDTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=ILBMTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) ILBMTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=ILBMTOPPM.EXE ILBMTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=IMGTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) IMGTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=IMGTOPPM.EXE IMGTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=MTVTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) MTVTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=MTVTOPPM.EXE MTVTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PCXTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PCXTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=PCXTOPPM.EXE PCXTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PGMTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PGMTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=PGMTOPPM.EXE PGMTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PI1TOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PI1TOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=PI1TOPPM.EXE PI1TOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PICTTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PICTTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=PICTTOPPM.EXE PICTTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PJTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PJTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=PJTOPPM.EXE PJTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPM3D.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPM3D.C
+$ LINK /TRACE/NOMAP/EXEC=PPM3D.EXE PPM3D.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMCHANGE.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMCHANGE.C
+$ LINK /TRACE/NOMAP/EXEC=PPMCHANGE.EXE PPMCHANGE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMDIM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMDIM.C
+$ LINK /TRACE/NOMAP/EXEC=PPMDIM.EXE PPMDIM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMDITHER.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMDITHER.C
+$ LINK /TRACE/NOMAP/EXEC=PPMDITHER.EXE PPMDITHER.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMFLASH.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMFLASH.C
+$ LINK /TRACE/NOMAP/EXEC=PPMFLASH.EXE PPMFLASH.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMFORGE.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMFORGE.C
+$ LINK /TRACE/NOMAP/EXEC=PPMFORGE.EXE PPMFORGE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMHIST.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMHIST.C
+$ LINK /TRACE/NOMAP/EXEC=PPMHIST.EXE PPMHIST.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMMAKE.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMMAKE.C
+$ LINK /TRACE/NOMAP/EXEC=PPMMAKE.EXE PPMMAKE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMMIX.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMMIX.C
+$ LINK /TRACE/NOMAP/EXEC=PPMMIX.EXE PPMMIX.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMQUANT.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMQUANT.C
+$ LINK /TRACE/NOMAP/EXEC=PPMQUANT.EXE PPMQUANT.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMRELIEF.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMRELIEF.C
+$ LINK /TRACE/NOMAP/EXEC=PPMRELIEF.EXE PPMRELIEF.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMSHIFT.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMSHIFT.C
+$ LINK /TRACE/NOMAP/EXEC=PPMSHIFT.EXE PPMSHIFT.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMSPREAD.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMSPREAD.C
+$ LINK /TRACE/NOMAP/EXEC=PPMSPREAD.EXE PPMSPREAD.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOACAD.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOACAD.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOACAD.EXE PPMTOACAD.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOGIF.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOGIF.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOGIF.EXE PPMTOGIF.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOICR.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOICR.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOICR.EXE PPMTOICR.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOILBM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOILBM.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOILBM.EXE PPMTOILBM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOMITSU.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOMITSU.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOMITSU.EXE PPMTOMITSU.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOPCX.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOPCX.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOPCX.EXE PPMTOPCX.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOPGM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOPGM.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOPGM.EXE PPMTOPGM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOPI1.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOPI1.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOPI1.EXE PPMTOPI1.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOPICT.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOPICT.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOPICT.EXE PPMTOPICT.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOPJ.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOPJ.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOPJ.EXE PPMTOPJ.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOPUZZ.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOPUZZ.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOPUZZ.EXE PPMTOPUZZ.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTORGB3.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTORGB3.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTORGB3.EXE PPMTORGB3.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOSIXEL.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOSIXEL.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOSIXEL.EXE PPMTOSIXEL.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOTGA.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOTGA.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOTGA.EXE PPMTOTGA.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOUIL.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOUIL.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOUIL.EXE PPMTOUIL.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOXPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOXPM.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOXPM.EXE PPMTOXPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOYUV.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOYUV.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOYUV.EXE PPMTOYUV.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=QRTTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) QRTTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=QRTTOPPM.EXE QRTTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=RAWTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) RAWTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=RAWTOPPM.EXE RAWTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=RGB3TOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) RGB3TOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=RGB3TOPPM.EXE RGB3TOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=SLDTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) SLDTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=SLDTOPPM.EXE SLDTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=SPCTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) SPCTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=SPCTOPPM.EXE SPCTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=SPUTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) SPUTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=SPUTOPPM.EXE SPUTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=TGATOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) TGATOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=TGATOPPM.EXE TGATOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=XIMTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) XIMTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=XIMTOPPM.EXE XIMTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=XPMTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) XPMTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=XPMTOPPM.EXE XPMTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=XVMINITOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) XVMINITOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=XVMINITOPPM.EXE XVMINITOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=YUVTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) YUVTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=YUVTOPPM.EXE YUVTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=BMPTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) BMPTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=BMPTOPPM.EXE BMPTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMBRIGHTEN.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMBRIGHTEN.C
+$ LINK /TRACE/NOMAP/EXEC=PPMBRIGHTEN.EXE PPMBRIGHTEN.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMDIST.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMDIST.C
+$ LINK /TRACE/NOMAP/EXEC=PPMDIST.EXE PPMDIST.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMQVGA.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMQVGA.C
+$ LINK /TRACE/NOMAP/EXEC=PPMQVGA.EXE PPMQVGA.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOBMP.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOBMP.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOBMP.EXE PPMTOBMP.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOMAP.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOMAP.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOMAP.EXE PPMTOMAP.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOPJXL.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOPJXL.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOPJXL.EXE PPMTOPJXL.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMTOYUVSPLIT.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMTOYUVSPLIT.C
+$ LINK /TRACE/NOMAP/EXEC=PPMTOYUVSPLIT.EXE PPMTOYUVSPLIT.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=YUVSPLITTOPPM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) YUVSPLITTOPPM.C
+$ LINK /TRACE/NOMAP/EXEC=YUVSPLITTOPPM.EXE YUVSPLITTOPPM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PPMPAT.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.pgm],[-.pbm]) PPMPAT.C
+$ LINK /TRACE/NOMAP/EXEC=PPMPAT.EXE PPMPAT.obj,[-]PBMplusSHR.OPT/Option
+$ Set Protection = (System:RWE, Owner:RWE, Group:RE, World:RE) *.exe
+$ Set Default PBMplus_Root:[libtiff]
+$ Define /NoLog Sys Sys$Library
+$ CC /NOLIST/OBJECT=MKG3STATES.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize mkg3states.c
+$ Define /User_Mode LNK$Library Sys$Library:VAXCRTL
+$ LINK /TRACE/NOMAP/EXEC=MKG3STATES.EXE mkg3states
+$ Define /User_Mode Sys$Output g3states.h
+$ Run mkg3states.exe
+$ CC /NOLIST/OBJECT=TIF_FAX3.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_FAX3.C
+$ CC /NOLIST/OBJECT=TIF_FAX4.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_FAX4.C
+$ CC /NOLIST/OBJECT=TIF_AUX.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_AUX.C
+$ CC /NOLIST/OBJECT=TIF_CCITTRLE.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_CCITTRLE.C
+$ CC /NOLIST/OBJECT=TIF_CLOSE.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_CLOSE.C
+$ CC /NOLIST/OBJECT=TIF_COMPRESS.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_COMPRESS.C
+$ CC /NOLIST/OBJECT=TIF_DIR.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_DIR.C
+$ CC /NOLIST/OBJECT=TIF_DIRINFO.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_DIRINFO.C
+$ CC /NOLIST/OBJECT=TIF_DIRREAD.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_DIRREAD.C
+$ CC /NOLIST/OBJECT=TIF_DIRWRITE.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_DIRWRITE.C
+$ CC /NOLIST/OBJECT=TIF_DUMPMODE.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_DUMPMODE.C
+$ CC /NOLIST/OBJECT=TIF_ERROR.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_ERROR.C
+$ CC /NOLIST/OBJECT=TIF_GETIMAGE.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_GETIMAGE.C
+$ CC /NOLIST/OBJECT=TIF_JPEG.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_JPEG.C
+$ CC /NOLIST/OBJECT=TIF_FLUSH.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_FLUSH.C
+$ CC /NOLIST/OBJECT=TIF_LZW.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_LZW.C
+$ CC /NOLIST/OBJECT=TIF_MACHDEP.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_MACHDEP.C
+$ CC /NOLIST/OBJECT=TIF_NEXT.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_NEXT.C
+$ CC /NOLIST/OBJECT=TIF_OPEN.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_OPEN.C
+$ CC /NOLIST/OBJECT=TIF_PACKBITS.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_PACKBITS.C
+$ CC /NOLIST/OBJECT=TIF_PRINT.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_PRINT.C
+$ CC /NOLIST/OBJECT=TIF_READ.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_READ.C
+$ CC /NOLIST/OBJECT=TIF_STRIP.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_STRIP.C
+$ CC /NOLIST/OBJECT=TIF_SWAB.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_SWAB.C
+$ CC /NOLIST/OBJECT=TIF_THUNDER.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_THUNDER.C
+$ CC /NOLIST/OBJECT=TIF_TILE.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_TILE.C
+$ CC /NOLIST/OBJECT=TIF_VERSION.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_VERSION.C
+$ CC /NOLIST/OBJECT=TIF_VMS.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_VMS.C
+$ CC /NOLIST/OBJECT=TIF_WARNING.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_WARNING.C
+$ CC /NOLIST/OBJECT=TIF_WRITE.OBJ /Include_Directory = ([]) /Define = ("BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /NoDebug /Optimize TIF_WRITE.C
+$ If "''F$Search ("libtiff.olb")'" .eqs. "" Then Library /Create libtiff.olb
+$ Delete /NoConfirm /NoLog mkg3states.obj;
+$ Library /Replace libtiff.olb *.obj
+$!
+$!		PNM
+$!
+$ Set Default PBMplus_Root:[pnm]
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) - ".PNM" + ".]"
+$ If F$TrnLnm ("PBMplus_Root") .eqs. "" Then 	Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ If F$TrnLnm ("PBMplus_Dir") .eqs. "" Then 	Define PBMplus_Dir PBMplus_Root:[000000]
+$ If F$TrnLnm ("Sys") .eqs. "" Then Define Sys Sys$Library
+$ CC /NOLIST/OBJECT=PNMALIAS.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMALIAS.C
+$ LINK /TRACE/NOMAP/EXEC=PNMALIAS.EXE PNMALIAS.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMARITH.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMARITH.C
+$ LINK /TRACE/NOMAP/EXEC=PNMARITH.EXE PNMARITH.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMCAT.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMCAT.C
+$ LINK /TRACE/NOMAP/EXEC=PNMCAT.EXE PNMCAT.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMCONVOL.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMCONVOL.C
+$ LINK /TRACE/NOMAP/EXEC=PNMCONVOL.EXE PNMCONVOL.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMCROP.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMCROP.C
+$ LINK /TRACE/NOMAP/EXEC=PNMCROP.EXE PNMCROP.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMCUT.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMCUT.C
+$ LINK /TRACE/NOMAP/EXEC=PNMCUT.EXE PNMCUT.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMDEPTH.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMDEPTH.C
+$ LINK /TRACE/NOMAP/EXEC=PNMDEPTH.EXE PNMDEPTH.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMENLARGE.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMENLARGE.C
+$ LINK /TRACE/NOMAP/EXEC=PNMENLARGE.EXE PNMENLARGE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMFILE.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMFILE.C
+$ LINK /TRACE/NOMAP/EXEC=PNMFILE.EXE PNMFILE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMFLIP.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMFLIP.C
+$ LINK /TRACE/NOMAP/EXEC=PNMFLIP.EXE PNMFLIP.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMHISTMAP.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMHISTMAP.C
+$ LINK /TRACE/NOMAP/EXEC=PNMHISTMAP.EXE PNMHISTMAP.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMINVERT.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMINVERT.C
+$ LINK /TRACE/NOMAP/EXEC=PNMINVERT.EXE PNMINVERT.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMNORAW.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMNORAW.C
+$ LINK /TRACE/NOMAP/EXEC=PNMNORAW.EXE PNMNORAW.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMNTSC.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMNTSC.C
+$ LINK /TRACE/NOMAP/EXEC=PNMNORAW.EXE PNMNORAW.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMNTSC.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMNTSC.C
+$ LINK /TRACE/NOMAP/EXEC=PNMNTSC.EXE PNMNTSC.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMPASTE.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMPASTE.C
+$ LINK /TRACE/NOMAP/EXEC=PNMPASTE.EXE PNMPASTE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMSCALE.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMSCALE.C
+$ LINK /TRACE/NOMAP/EXEC=PNMSCALE.EXE PNMSCALE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMTILE.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMTILE.C
+$ LINK /TRACE/NOMAP/EXEC=PNMTILE.EXE PNMTILE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMTODDIF.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMTODDIF.C
+$ LINK /TRACE/NOMAP/EXEC=PNMTODDIF.EXE PNMTODDIF.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMTOFITS.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMTOFITS.C
+$ LINK /TRACE/NOMAP/EXEC=PNMTOFITS.EXE PNMTOFITS.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=FITSTOPNM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) FITSTOPNM.C
+$ LINK /TRACE/NOMAP/EXEC=FITSTOPNM.EXE FITSTOPNM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMTOPS.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMTOPS.C
+$ LINK /TRACE/NOMAP/EXEC=PNMTOPS.EXE PNMTOPS.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMTORAST.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMTORAST.C
+$ LINK /TRACE/NOMAP/EXEC=PNMTORAST.EXE PNMTORAST.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMTOXWD.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMTOXWD.C
+$ LINK /TRACE/NOMAP/EXEC=PNMTOXWD.EXE PNMTOXWD.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=RASTTOPNM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) RASTTOPNM.C
+$ LINK /TRACE/NOMAP/EXEC=RASTTOPNM.EXE RASTTOPNM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=XWDTOPNM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) XWDTOPNM.C
+$ LINK /TRACE/NOMAP/EXEC=XWDTOPNM.EXE XWDTOPNM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=GIFTOPNM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) GIFTOPNM.C
+$ LINK /TRACE/NOMAP/EXEC=GIFTOPNM.EXE GIFTOPNM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMCOMP.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMCOMP.C
+$ LINK /TRACE/NOMAP/EXEC=PNMCOMP.EXE PNMCOMP.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMTOSGI.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMTOSGI.C
+$ LINK /TRACE/NOMAP/EXEC=PNMTOSGI.EXE PNMTOSGI.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=SGITOPNM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) SGITOPNM.C
+$ LINK /TRACE/NOMAP/EXEC=SGITOPNM.EXE SGITOPNM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMTOSIR.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMTOSIR.C
+$ LINK /TRACE/NOMAP/EXEC=PNMTOSIR.EXE PNMTOSIR.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=SIRTOPNM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) SIRTOPNM.C
+$ LINK /TRACE/NOMAP/EXEC=SIRTOPNM.EXE SIRTOPNM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMNLFILT.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMNLFILT.C
+$ LINK /TRACE/NOMAP/EXEC=PNMNLFILT.EXE PNMNLFILT.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMPAD.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMPAD.C
+$ LINK /TRACE/NOMAP/EXEC=PNMPAD.EXE PNMPAD.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=ZEISSTOPNM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) ZEISSTOPNM.C
+$ LINK /TRACE/NOMAP/EXEC=ZEISSTOPNM.EXE ZEISSTOPNM.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMGAMMA.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMGAMMA.C
+$ LINK /TRACE/NOMAP/EXEC=PNMGAMMA.EXE PNMGAMMA.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMROTATE.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMROTATE.C
+$ LINK /TRACE/NOMAP/EXEC=PNMROTATE.EXE PNMROTATE.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMSHEAR.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) PNMSHEAR.C
+$ LINK /TRACE/NOMAP/EXEC=PNMSHEAR.EXE PNMSHEAR.obj,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=TIFFTOPNM.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF,"BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) tifftopnm.c
+$ LINK /TRACE/NOMAP/EXEC=TIFFTOPNM.EXE tifftopnm,[-.libtiff]libtiff.olb/Library,[-]PBMplusSHR.OPT/Option
+$ CC /NOLIST/OBJECT=PNMTOTIFF.OBJ /Define = (PPM,PGM,PBM,PBMPLUS_RAWBITS,LIBTIFF,"BSDTYPES=1","USE_VARARGS=1","USE_PROTOTYPES=0","USE_CONST",__STDC__) /Include_Directory = ([-],[-.ppm],[-.pgm],[-.pbm],[-.libtiff]) pnmtotiff.c
+$ LINK /TRACE/NOMAP/EXEC=PNMTOTIFF.EXE pnmtotiff,[-.libtiff]libtiff.olb/Library,[-]PBMplusSHR.OPT/Option
+$ Set Protection = (System:RWE, Owner:RWE, Group:RE, World:RE) *.exe
+$!
+$!		Install the binaries in a separate directory
+$!
+$ Set Default PBMplus_Dir
+$ If F$Parse ("PBMplus_Root:[Exe]") .eqs. "" Then Create /Directory PBMplus_Root:[Exe]
+$ Set Default PBMplus_Root:[PBM]
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) - ".PBM" + ".]"
+$ If F$TrnLnm ("PBMplus_Root") .eqs. "" Then 	Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ If F$TrnLnm ("PBMplus_Dir") .eqs. "" Then 	Define PBMplus_Dir PBMplus_Root:[000000]
+$ If F$TrnLnm ("Sys") .eqs. "" Then Define Sys Sys$Library
+$ Set Protection = (System:RWE, Owner:RWED, Group:RE, World:RE) *.exe
+$ Rename /Log *.exe PBMplus_Root:[Exe]
+$ Set Protection = Owner:RWE PBMplus_Root:[Exe]*.exe
+$ Set Default PBMplus_Root:[PGM]
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) - ".PGM" + ".]"
+$ If F$TrnLnm ("PBMplus_Root") .eqs. "" Then 	Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ If F$TrnLnm ("PBMplus_Dir") .eqs. "" Then 	Define PBMplus_Dir PBMplus_Root:[000000]
+$ If F$TrnLnm ("Sys") .eqs. "" Then Define Sys Sys$Library
+$ Set Protection = (System:RWE, Owner:RWED, Group:RE, World:RE) *.exe
+$ Rename /Log *.exe PBMplus_Root:[Exe]
+$ Set Protection = Owner:RWE PBMplus_Root:[Exe]*.exe
+$ Set Default PBMplus_Root:[PPM]
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) - ".PPM" + ".]"
+$ If F$TrnLnm ("PBMplus_Root") .eqs. "" Then 	Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ If F$TrnLnm ("PBMplus_Dir") .eqs. "" Then 	Define PBMplus_Dir PBMplus_Root:[000000]
+$ If F$TrnLnm ("Sys") .eqs. "" Then Define Sys Sys$Library
+$ Set Protection = (System:RWE, Owner:RWED, Group:RE, World:RE) *.exe
+$ Rename /Log *.exe PBMplus_Root:[Exe]
+$ Set Protection = Owner:RWE PBMplus_Root:[Exe]*.exe
+$ Set Default PBMplus_Root:[PNM]
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("DEFAULT")) - ".PNM" + ".]"
+$ If F$TrnLnm ("PBMplus_Root") .eqs. "" Then 	Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ If F$TrnLnm ("PBMplus_Dir") .eqs. "" Then 	Define PBMplus_Dir PBMplus_Root:[000000]
+$ If F$TrnLnm ("Sys") .eqs. "" Then Define Sys Sys$Library
+$ Set Protection = (System:RWE, Owner:RWED, Group:RE, World:RE) *.exe
+$ Rename /Log *.exe PBMplus_Root:[Exe]
+$ Set Protection = Owner:RWE PBMplus_Root:[Exe]*.exe
+$!
+$!		Build the VMS Help Library
+$!
+$ Set Default PBMplus_Dir
+$ Library /Create /Help PBMPLUS.HLB PBMPLUS.HLP
+$ Set File /Truncate PBMPLUS.HLB
+$ Exit
diff --git a/vms/Make_PBMplusShr.com b/vms/Make_PBMplusShr.com
new file mode 100755
index 00000000..8e43efb9
--- /dev/null
+++ b/vms/Make_PBMplusShr.com
@@ -0,0 +1,280 @@
+$!
+$! Make shareable image out of PBMPLUS libraries.  This command procedure
+$! takes no arguments, but must be placed in the top-level PBMPLUS directory.
+$!
+$! It uses the following input library files:
+$!
+$!	[.PBM]LIBPBM.OLB,[.PGM]LIBPGM.OLB,[.PPM]LIBPPM.OLB,[.PNM]LIBPNM.OLB
+$!
+$! This procedure generates the following files if missing or out-of-date:
+$!
+$!	TRANSVEC.OBJ	Object file containing transfer vector for PBMPLUSSHR.
+$!	PBMPLUSSHR.EXE	Shareable image file for PBM libraries.
+$!	PBMPLUSSHR.OPT	Linker options file for linking utility program against
+$!			the PBMPLUSSHR.EXE shareable image.
+$!
+$ instruct = 0
+$ proc = f$environment("PROCEDURE")
+$ proc_cdt = f$cvtime(f$file(proc,"CDT"))
+$ if f$search("TRANSVEC.OBJ") .EQS. "" THEN GOTO NEW_TRANSVEC
+$ if f$cvtime(f$file("TRANSVEC.OBJ","CDT")) .GTS. PROC_CDT THEN GOTO TRANSVEC_DONE
+$ NEW_TRANSVEC:
+$ instruct = 1
+$ Write SYS$Output "Making new transvec.obj..."
+$ Macro /NoList /Object = TRANSVEC.OBJ Sys$Input
+; PMBPLUS_TRANSFER_VECTOR
+; This routine defines a transfer vector for use in creating shareable image
+;
+; define macro to make transfer vector entry for a given routine.  Entry mask 
+; is obtained from routine we are transfering to.  Jump to word past entry 
+; since these are VAX procedures (written in FORTRAN).
+;
+	.MACRO TRANSFER_ENTRY routine
+;
+	.TRANSFER routine
+	.MASK	  routine
+	JMP	  routine + 2
+;
+	.ENDM TRANSFER_ENTRY
+;
+	.TITLE PBMPLUS_TRANSFER_VECTOR
+	.IDENT /01/
+	.PSECT PBMPLUS_XVEC PIC,USR,CON,REL,LCL,SHR,EXE,RD,NOWRT,NOVEC
+;
+;	Simply go through iap procedures and declare transfer vector
+;	entry points for them.  New procedure must be added to the END
+;	of this list.
+;
+TRANSFER_VECTOR:
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;Library LIBPBM
+;Module ARGPROC
+	TRANSFER_ENTRY BACKGROUND_PROCESS 
+	TRANSFER_ENTRY GETOPT
+	TRANSFER_ENTRY GETREDIRECTION
+	TRANSFER_ENTRY SET_OUTFILE_BINARY
+
+;Module LIBPBM1
+	TRANSFER_ENTRY PBM_INIT
+	TRANSFER_ENTRY PM_ALLOCARRAY
+	TRANSFER_ENTRY PM_ALLOCROW
+	TRANSFER_ENTRY PM_BITSTOMAXVAL
+	TRANSFER_ENTRY PM_CLOSE
+	TRANSFER_ENTRY PM_ERROR                         
+	TRANSFER_ENTRY PM_FREEARRAY                     
+	TRANSFER_ENTRY PM_FREEROW
+	TRANSFER_ENTRY PM_INIT                          
+	TRANSFER_ENTRY PM_KEYMATCH                      
+	TRANSFER_ENTRY PM_MAXVALTOBITS                  
+	TRANSFER_ENTRY PM_MESSAGE
+	TRANSFER_ENTRY PM_OPENR                         
+	TRANSFER_ENTRY PM_OPENW                         
+	TRANSFER_ENTRY PM_PERROR                        
+	TRANSFER_ENTRY PM_READBIGLONG
+	TRANSFER_ENTRY PM_READBIGSHORT                  
+	TRANSFER_ENTRY PM_READLITTLELONG                
+	TRANSFER_ENTRY PM_READLITTLESHORT               
+	TRANSFER_ENTRY PM_USAGE
+	TRANSFER_ENTRY PM_WRITEBIGLONG                  
+	TRANSFER_ENTRY PM_WRITEBIGSHORT                 
+	TRANSFER_ENTRY PM_WRITELITTLELONG               
+	TRANSFER_ENTRY PM_WRITELITTLESHORT
+	TRANSFER_ENTRY PM_READ_UNKNOWN_SIZE
+
+;Module LIBPBM2
+	TRANSFER_ENTRY PBM_READMAGICNUMBER              
+	TRANSFER_ENTRY PBM_READPBM                      
+	TRANSFER_ENTRY PBM_READPBMINIT                  
+	TRANSFER_ENTRY PBM_READPBMINITREST
+	TRANSFER_ENTRY PBM_READPBMROW
+
+;Module LIBPBM3
+	TRANSFER_ENTRY PBM_WRITEPBM                     
+	TRANSFER_ENTRY PBM_WRITEPBMINIT                 
+	TRANSFER_ENTRY PBM_WRITEPBMROW
+
+;Module LIBPBM4
+	TRANSFER_ENTRY PBM_GETC                         
+	TRANSFER_ENTRY PBM_GETINT                       
+	TRANSFER_ENTRY PBM_GETRAWBYTE
+
+;Module LIBPBM5
+	TRANSFER_ENTRY PBM_DEFAULTFONT                  
+	TRANSFER_ENTRY PBM_DISSECTFONT                  
+	TRANSFER_ENTRY PBM_DUMPFONT
+	TRANSFER_ENTRY PBM_LOADFONT
+	TRANSFER_ENTRY PBM_LOADBDFFONT
+	TRANSFER_ENTRY MK_ARGVN
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;Library LIBPGM
+;Module LIBPGM1
+	TRANSFER_ENTRY PGM_INIT                         
+	TRANSFER_ENTRY PGM_READPGM                      
+	TRANSFER_ENTRY PGM_READPGMINIT                  
+	TRANSFER_ENTRY PGM_READPGMINITREST
+	TRANSFER_ENTRY PGM_READPGMROW
+
+;Module LIBPGM2
+	TRANSFER_ENTRY PGM_WRITEPGM                     
+	TRANSFER_ENTRY PGM_WRITEPGMINIT                 
+	TRANSFER_ENTRY PGM_WRITEPGMROW
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Library LIBPPM
+;
+;Module LIBPPM1
+	TRANSFER_ENTRY PPM_INIT                         
+	TRANSFER_ENTRY PPM_READPPM                      
+	TRANSFER_ENTRY PPM_READPPMINIT                  
+	TRANSFER_ENTRY PPM_READPPMINITREST
+	TRANSFER_ENTRY PPM_READPPMROW
+
+;Module LIBPPM2
+	TRANSFER_ENTRY PPM_WRITEPPM                     
+	TRANSFER_ENTRY PPM_WRITEPPMINIT                 
+	TRANSFER_ENTRY PPM_WRITEPPMROW
+
+;Module LIBPPM3
+	TRANSFER_ENTRY PPM_ADDTOCOLORHASH               
+	TRANSFER_ENTRY PPM_ADDTOCOLORHIST               
+	TRANSFER_ENTRY PPM_ALLOCCOLORHASH               
+	TRANSFER_ENTRY PPM_COLORHASHTOCOLORHIST
+	TRANSFER_ENTRY PPM_COLORHISTTOCOLORHASH         
+	TRANSFER_ENTRY PPM_COMPUTECOLORHASH             
+	TRANSFER_ENTRY PPM_COMPUTECOLORHIST             
+	TRANSFER_ENTRY PPM_FREECOLORHASH
+	TRANSFER_ENTRY PPM_FREECOLORHIST                
+	TRANSFER_ENTRY PPM_LOOKUPCOLOR
+
+;Module LIBPPM4
+	TRANSFER_ENTRY PPM_COLORNAME                    
+	TRANSFER_ENTRY PPM_PARSECOLOR
+
+;Module LIBPPM5
+	TRANSFER_ENTRY PPMD_CIRCLE                      
+	TRANSFER_ENTRY PPMD_FILL                        
+	TRANSFER_ENTRY PPMD_FILLEDRECTANGLE             
+	TRANSFER_ENTRY PPMD_FILL_DRAWPROC
+	TRANSFER_ENTRY PPMD_FILL_INIT                   
+	TRANSFER_ENTRY PPMD_LINE                        
+	TRANSFER_ENTRY PPMD_POINT_DRAWPROC              
+	TRANSFER_ENTRY PPMD_POLYSPLINE
+	TRANSFER_ENTRY PPMD_SETLINECLIP                 
+	TRANSFER_ENTRY PPMD_SETLINETYPE                 
+	TRANSFER_ENTRY PPMD_SPLINE3
+
+;Module BITIO
+	TRANSFER_ENTRY PM_BITINIT
+	TRANSFER_ENTRY PM_BITFINI
+	TRANSFER_ENTRY PM_BITREAD
+	TRANSFER_ENTRY PM_BITWRITE
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Library LIBPNM
+;Module LIBPNM1
+	TRANSFER_ENTRY PNM_INIT                         
+	TRANSFER_ENTRY PNM_READPNM                      
+	TRANSFER_ENTRY PNM_READPNMINIT                  
+	TRANSFER_ENTRY PNM_READPNMROW
+
+;Module LIBPNM2
+	TRANSFER_ENTRY PNM_WRITEPNM                     
+	TRANSFER_ENTRY PNM_WRITEPNMINIT                 
+	TRANSFER_ENTRY PNM_WRITEPNMROW
+
+;Module LIBPNM3
+	TRANSFER_ENTRY PNM_BACKGROUNDXEL                
+	TRANSFER_ENTRY PNM_BACKGROUNDXELROW             
+	TRANSFER_ENTRY PNM_BLACKXEL                     
+	TRANSFER_ENTRY PNM_INVERTXEL
+	TRANSFER_ENTRY PNM_PROMOTEFORMAT                
+	TRANSFER_ENTRY PNM_PROMOTEFORMATROW             
+	TRANSFER_ENTRY PNM_WHITEXEL
+
+;Module LIBPNM4
+	TRANSFER_ENTRY MEM_CREATE                       
+	TRANSFER_ENTRY MEM_FREE                         
+	TRANSFER_ENTRY PR_DUMP                          
+	TRANSFER_ENTRY PR_LOAD_COLORMAP
+	TRANSFER_ENTRY PR_LOAD_HEADER                   
+	TRANSFER_ENTRY PR_LOAD_IMAGE
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;	allocate extra space to allow for code modifications without changing 
+;	the size of the shared image.
+;
+	.BLKB 2048-<.-TRANSFER_VECTOR>	; Reserve 4 pages.
+;
+	.END
+
+$ TRANSVEC_DONE:
+$!
+$!   Create new options file if needed.
+$!
+$ if f$search("PBMPLUSSHR.OPT") .EQS. "" THEN GOTO NEW_OPTFILE
+$ if f$cvtime(f$file("PBMPLUSSHR.OPT","CDT")) .GTS. PROC_CDT THEN GOTO OPTFILE_DONE
+$ NEW_OPTFILE:
+$ instruct = 1
+$ write sys$output "Making new pbmplusshr.opt..."
+$ CREATE PBMPLUSSHR.OPT
+PBMplusShr /Share
+Sys$Share:VAXCRTL /Share
+PSECT_ATTR = ARGPROC_VERSION,GBL,NOSHR
+PSECT_ATTR = OPTARG,GBL,NOSHR
+PSECT_ATTR = OPTERR,GBL,NOSHR
+PSECT_ATTR = OPTIND,GBL,NOSHR
+PSECT_ATTR = OPTOPT,GBL,NOSHR
+PSECT_ATTR = PGM_PBMMAXVAL,GBL,NOSHR
+PSECT_ATTR = PNM_PBMMAXVAL,GBL,NOSHR
+PSECT_ATTR = PPM_PBMMAXVAL,GBL,NOSHR
+$!
+$ OPTFILE_DONE:
+$!
+$ if f$search("PBMPLUSSHR.EXE") .EQS. "" THEN GOTO NEW_SHAREABLE
+$ EXE_CDT = f$cvtime(f$file_attributes("PBMPLUSSHR.EXE","CDT"))
+$ if EXE_CDT .LTS. PROC_CDT THEN GOTO NEW_SHAREABLE
+$ if f$cvtime(f$file("[.PBM]LIBPBM.OLB","RDT")) .GTS. EXE_CDT THEN GOTO NEW_SHAREABLE
+$ if f$cvtime(f$file("[.PGM]LIBPGM.OLB","RDT")) .GTS. EXE_CDT THEN GOTO NEW_SHAREABLE
+$ if f$cvtime(f$file("[.PPM]LIBPPM.OLB","RDT")) .GTS. EXE_CDT THEN GOTO NEW_SHAREABLE
+$ if f$cvtime(f$file("[.PNM]LIBPNM.OLB","RDT")) .GTS. EXE_CDT THEN GOTO NEW_SHAREABLE
+$ GOTO SHAREABLE_DONE
+$ NEW_SHAREABLE:
+$ instruct = 1
+$ write sys$output "Making new pbmplusshr.exe..."
+$ Link /Map = PBMPLUSHSR.MAP /Share = SYS$DISK:[]PBMPLUSSHR.EXE Sys$Input/Option
+COLLECT=FIRST,PBMPLUS_XVEC
+COLLECT=GLOBALS1,PGM_PBMMAXVAL,PNM_PBMMAXVAL,PPM_PBMMAXVAL
+COLLECT=GLOBALS2,ARGPROC_VERSION,OPTARG,OPTERR,OPTIND,OPTOPT
+
+TRANSVEC.OBJ
+[.PBM]LIBPBM/LIB,[.PGM]LIBPGM/LIB,[.PPM]LIBPPM/LIB
+[.PNM]LIBPNM/LIB,SYS$SHARE:VAXCRTL/SHARE
+
+
+UNSUPPORTED = 1			! force demand zero pages
+GSMATCH=LEQUAL,2,1		! Major ID = 2, minor ID = 2
+
+PSECT_ATTR = ARGPROC_VERSION,NOSHR
+PSECT_ATTR = OPTARG,NOSHR
+PSECT_ATTR = OPTERR,NOSHR
+PSECT_ATTR = OPTIND,NOSHR
+PSECT_ATTR = OPTOPT,NOSHR
+PSECT_ATTR = PGM_PBMMAXVAL,NOSHR
+PSECT_ATTR = PNM_PBMMAXVAL,NOSHR
+PSECT_ATTR = PPM_PBMMAXVAL,NOSHR
+!PSECT_ATTR = ,LCL,NOSHR
+$!
+$ SHAREABLE_DONE:
+$ if .NOT. instruct then write sys$output "All PBMPLUSSHR files up to date."
+$ if .NOT. instruct then exit $status
+$ create sys$output
+
+	Define the logical name PBMPLUSSHR as "disk:[dir]PBMPLUSSHR", where
+	disk and [dir] are the disk and directory containing the
+	shareable image PBMPLUSSHR.EXE and linker options file PBMPLUSSHR.OPT.
+
+	You can then link an executable against the image with the command
+
+	    LINK program.OBJ,PBMplusShr/Option
+
+$ exit $status
diff --git a/vms/NetPBM.TeX b/vms/NetPBM.TeX
new file mode 100644
index 00000000..86a9abc8
--- /dev/null
+++ b/vms/NetPBM.TeX
@@ -0,0 +1,12115 @@
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex (version 1.04, July 15, 1991)
+% on Thu Dec 12 09:12:27 1991
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+
+\documentstyle[troffman,twoside]{article}
+\begin{document}
+%
+% input file: pbmplus.1
+%
+\phead{PBMPLUS}{1L}{13 October 1993}{}{}
+
+\shead{NAME}
+pbmplus - enhanced portable bitmap toolkit
+
+\shead{DESCRIPTION}
+The {\it pbmplus} toolkit allows conversions between image files of
+different format.  By means of using common intermediate formats, only
+$2 \times N$ conversion filters are required to support $N$ distinct formats,
+instead of the $N^2$ which would be required to convert directly between
+any one format and any other.  The package also includes simple tools for
+manipulating portable bitmaps.
+
+The package consists of four upwardly compatible sections:
+\begin{TPlist}{pbm}
+\item[{pbm}]
+Supports monochrome bitmaps (1 bit per pixel).
+\item[{pgm}]
+Supports grayscale images.  Reads either {\it pbm} or {\it pgm} formats
+and writes {\it pgm} format.
+\item[{ppm}]
+Supports full-color images.  Reads either {\it pbm}, {\it pgm}, or {\it
+ppm} formats, writes {\it ppm} format.
+\item[{pnm}]
+Supports content-independent manipulations on any of the three formats
+listed above, as well as external formats having multiple types.  Reads
+either {\it pbm}, {\it pgm}, or {\it ppm} formats, and generally writes
+the same type as it read (whenever a {\it pnm} tool makes an exception
+and ``promotes'' a file to a higher format, it informs the user).
+\end{TPlist}
+
+\shead{DESCRIPTION OF CONTENTS}
+\begin{TPlist}{{\it cmuwmtopbm}}
+\item[{{\it atktopbm}}]
+convert Andrew Toolkit raster object to portable bitmap
+\item[{{\it brushtopbm}}]
+convert Xerox doodle brushes to portable bitmap
+\item[{{\it cmuwmtopbm}}]
+convert CMU window manager format to portable bitmap
+\item[{{\it g3topbm}}]
+convert Group 3 FAX to portable bitmap
+\item[{{\it icontopbm}}]
+convert Sun icon to portable bitmap
+\item[{{\it gemtopbm}}]
+convert GEM .img format to portable bitmap
+\item[{{\it macptopbm}}]
+convert MacPaint to portable bitmap
+\item[{{\it mgrtopbm}}]
+convert MGR format to portable bitmap
+\item[{{\it pbmmerge}}]
+merge wrapper routine
+\item[{{\it pbmto10x}}]
+convert portable bitmap to Gemini 10x printer graphics
+\item[{{\it pbmtoascii}}]
+convert portable bitmap to ASCII graphic form
+\item[{{\it pbmtoatk}}]
+convert portable bitmap to Andrew Toolkit raster object
+\item[{{\it pbmtobbnbg}}]
+convert portable bitmap to BBN BitGraph graphics
+\item[{{\it pbmtocmuwm}}]
+convert portable bitmap to CMU window manager format
+\item[{{\it pbmtoepson}}]
+convert portable bitmap to Epson printer graphics
+\item[{{\it pbmtog3}}]
+convert portable bitmap to Group 3 FAX
+\item[{{\it pbmtogem}}]
+convert portable bitmap into GEM .img file
+\item[{{\it pbmtogo}}]
+convert portable bitmap to GraphOn graphics
+\item[{{\it pbmtoicon}}]
+convert portable bitmap to Sun icon
+\item[{{\it pbmtolj}}]
+convert portable bitmap to HP LaserJet graphics
+\item[{{\it pbmtomacp}}]
+convert portable bitmap to MacPaint
+\item[{{\it pbmtomgr}}]
+convert portable bitmap to MGR format
+\item[{{\it pbmtopi3}}]
+convert portable bitmap to Atari Degas .pi3
+\item[{{\it pbmtoplot}}]
+convert portable bitmap into Unix plot(5) file
+\item[{{\it pbmtoptx}}]
+convert portable bitmap to Printronix graphics
+\item[{{\it pbmtoxbm}}]
+convert portable bitmap to X11 bitmap
+\item[{{\it pbmtox10bm}}]
+convert portable bitmap to X10 bitmap
+\item[{{\it pbmtoybm}}]
+convert portable bitmap into Bennet Yee ``face'' file
+\item[{{\it pbmtozinc}}]
+convert portable bitmap to Zinc Interface Library icon
+\item[{{\it pbmlife}}]
+apply Conway's rules of Life to a portable bitmap
+\item[{{\it pbmmake}}]
+create a blank bitmap of a specified size and color
+\item[{{\it pbmmask}}]
+create a mask bitmap from a regular bitmap
+\item[{{\it pbmreduce}}]
+reduce a portable bitmap N times, using Floyd-Steinberg
+\item[{{\it pbmtext}}]
+render text into a bitmap
+\item[{{\it pbmupc}}]
+create a Universal Product Code bitmap
+\item[{{\it pi3topbm}}]
+convert Atari Degas .pi3 to portable bitmap
+\item[{{\it xbmtopbm}}]
+convert X10 or X11 bitmap to portable bitmap
+\item[{{\it ybmtopbm}}]
+convert Bennet Yee ``face'' file into portable bitmap
+\item[{{\it asciitopgm}}]
+convert ASCII graphics into a portable graymap
+\item[{{\it fstopgm}}]
+convert Usenix FaceSaver$^{\rm tm}$ format to portable graymap
+\item[{{\it hipstopgm}}]
+convert HIPS format to portable graymap
+\item[{{\it lispmtopgm}}]
+convert a Lisp Machine bitmap file into pgm format
+\item[{{\it pgmbentley}}]
+Bentleyize a portable graymap
+\item[{{\it pgmcrater}}]
+create cratered terrain by fractal forgery
+\item[{{\it pgmedge}}]
+edge-detect a portable graymap
+\item[{{\it pgmenhance}}]
+edge-enhance a portable graymap
+\item[{{\it pgmhist}}]
+print a histogram of the values in a portable graymap
+\item[{{\it pgmkernel}}]
+generate a convolution kernel
+\item[{{\it pgmmerge}}]
+merge wrapper routine
+\item[{{\it pgmnoise}}]
+create a graymap made up of white noise
+\item[{{\it pgmnorm}}]
+normalize contrast in a portable graymap
+\item[{{\it pgmoil}}]
+turn a portable graymap into an oil painting
+\item[{{\it pgmramp}}]
+generate a grayscale ramp
+\item[{{\it pgmtexture}}]
+calculate textural features on a portable graymap
+\item[{{\it pgmtofits}}]
+convert portable graymap to FITS format
+\item[{{\it pgmtofs}}]
+convert portable graymap to Usenix FaceSaver$^{\rm tm}$ format
+\item[{{\it pgmtolispm}}]
+convert a portable graymap into Lisp Machine format
+\item[{{\it pgmtopbm}}]
+convert portable graymap to portable bitmap
+\item[{{\it psidtopgm}}]
+convert PostScript ``image'' data to portable graymap
+\item[{{\it rawtopgm}}]
+convert raw grayscale bytes to portable graymap
+\item[{{\it giftoppm}}]
+convert GIF to portable pixmap
+\item[{{\it gouldtoppm}}]
+convert Gould scanner file to portable pixmap
+\item[{{\it ilbmtoppm}}]
+convert IFF ILBM to portable pixmap
+\item[{{\it imgtoppm}}]
+convert Img-whatnot to portable pixmap
+\item[{{\it mtvtoppm}}]
+convert MTV ray-tracer output to portable pixmap
+\item[{{\it pcxtoppm}}]
+convert PC Paintbrush format to portable pixmap
+\item[{{\it pgmtoppm}}]
+colorize a portable graymap into a portable pixmap
+\item[{{\it pi1toppm}}]
+convert Atari Degas .pi1 to portable pixmap
+\item[{{\it picttoppm}}]
+convert Macintosh PICT to portable pixmap
+\item[{{\it pjtoppm}}]
+convert HP PaintJet file to portable pixmap
+\item[{{\it ppmchange}}]
+change all pixels of one color to another in a portable pixmap
+\item[{{\it ppmdim}}]
+dim a portable pixmap down to total blackness
+\item[{{\it ppmdist}}]
+simplistic grayscale assignment for machine generated, color images
+\item[{{\it ppmdither}}]
+ordered dither for color images
+\item[{{\it ppmflash}}]
+brighten a picture up to complete white-out
+\item[{{\it ppmforge}}]
+fractal forgeries of clouds, planets, and starry skies
+\item[{{\it ppmhist}}]
+print a histogram of a portable pixmap
+\item[{{\it ppmmake}}]
+create a pixmap of a specified size and color
+\item[{{\it ppmmerge}}]
+merge wrapper routine
+\item[{{\it ppmmix}}]
+blend together two portable pixmaps
+\item[{{\it ppmpat}}]
+create a pretty pixmap
+\item[{{\it ppmquant}}]
+quantize colors down to a specified number
+\item[{{\it ppmquantall}}]
+script to run ppmquant on a set of pixmaps
+\item[{{\it ppmrelief}}]
+run a Laplacian Relief filter on a portable pixmap
+\item[{{\it ppmshift}}]
+shift lines of a portable pixmap left or right by a random amount
+\item[{{\it ppmspread}}]
+displace a portable pixmap's pixels by a random amount
+\item[{{\it ppmtoacad}}]
+convert portable pixmap to AutoCAD database or slide
+\item[{{\it ppmtoicr}}]
+convert portable pixmap to NCSA ICR graphics
+\item[{{\it ppmtoilbm}}]
+convert portable pixmap to IFF ILBM
+\item[{{\it ppmtomitsu}}]
+convert a portable pixmap to a Mitsubishi S340-10 file
+\item[{{\it ppmtopcx}}]
+convert portable pixmap to PC Paintbrush format
+\item[{{\it ppmtopgm}}]
+convert portable pixmap to portable graymap
+\item[{{\it ppmtopi1}}]
+convert portable pixmap to Atari Degas .pi1
+\item[{{\it ppmtopict}}]
+convert portable pixmap to Macintosh PICT
+\item[{{\it ppmtopj}}]
+convert portable pixmap to HP PaintJet file
+\item[{{\it ppmtopuzz}}]
+convert portable pixmap to X11 ``puzzle'' file
+\item[{{\it ppmtorgb3}}]
+separate a portable pixmap into three portable graymaps
+\item[{{\it ppmtosixel}}]
+convert portable pixmap to DEC sixel format
+\item[{{\it ppmtotga}}]
+convert portable pixmap to TrueVision Targa file
+\item[{{\it ppmtouil}}]
+convert portable pixmap to Motif UIL icon file
+\item[{{\it ppmtoxpm}}]
+convert portable pixmap to XPM format
+\item[{{\it ppmtoyuv}}]
+convert portable pixmap to Abekas YUV format
+\item[{{\it qrttoppm}}]
+convert QRT ray-tracer output to portable pixmap
+\item[{{\it rawtoppm}}]
+convert raw RGB bytes to portable pixmap
+\item[{{\it rgb3toppm}}]
+combine three portable graymaps into one portable pixmap
+\item[{{\it sldtoppm}}]
+convert an AutoCAD slide file into a portable pixmap
+\item[{{\it spctoppm}}]
+convert Atari compressed Spectrum to portable pixmap
+\item[{{\it sputoppm}}]
+convert Atari uncompressed Spectrum to portable pixmap
+\item[{{\it tgatoppm}}]
+convert TrueVision Targa file to portable pixmap
+\item[{{\it ximtoppm}}]
+convert Xim to portable pixmap
+\item[{{\it xvminitoppm}}]
+convert a XV ``thumbnail'' picture to PPM
+\item[{{\it xpmtoppm}}]
+convert XPM format to portable pixmap
+\item[{{\it yuvtoppm}}]
+convert Abekas YUV format to portable pixmap
+\item[{{\it anytopnm}}]
+script to attempt to convert any format to P?M
+\item[{{\it pnmalias}}]
+antialias a portable anyumap.
+\item[{{\it pnmarith}}]
+perform arithmetic on two portable anymaps
+\item[{{\it pnmcat}}]
+concatenate portable anymaps
+\item[{{\it pnmconvol}}]
+general MxN convolution on a portable anymap
+\item[{{\it pnmcrop}}]
+crop all like-colored borders off a portable anymap
+\item[{{\it pnmcut}}]
+select a rectangular region from a portable anymap
+\item[{{\it pnmdepth}}]
+change the maxval in a portable anymap
+\item[{{\it pnmenlarge}}]
+enlarge a portable anymap N times
+\item[{{\it pnmfile}}]
+describe a portable anymap
+\item[{{\it pnmflip}}]
+perform one or more flip operations on a portable anymap
+\item[{{\it pnmgamma}}]
+perform gamma correction on a portable anymap
+\item[{{\it pnmindex}}]
+script to build a visual index of a bunch of anymaps
+\item[{{\it pnminvert}}]
+invert a portable anymap
+\item[{{\it pnmmargin}}]
+script to add a margin to a portable anymap
+\item[{{\it pnmmerge}}]
+merge wrapper routine
+\item[{{\it pnmnoraw}}]
+force a portable anymap into ASCII format
+\item[{{\it pnmpaste}}]
+paste a rectangle into a portable anymap
+\item[{{\it pnmrotate}}]
+rotate a portable anymap
+\item[{{\it pnmscale}}]
+scale a portable anymap
+\item[{{\it pnmshear}}]
+shear a portable anymap
+\item[{{\it pnmsmooth}}]
+script that uses pnmconvol to smooth a anymap
+\item[{{\it pnmtile}}]
+replicate a portable anymap into a specified size
+\item[{{\it pnmtofits}}]
+convert a portable anymap into FITS format
+\item[{{\it pnmtogif}}]
+convert portable anymap to GIF
+\item[{{\it pnmtops}}]
+convert portable anymap to PostScript
+\item[{{\it pnmtorast}}]
+convert portable anymap to Sun raster file
+\item[{{\it pnmtotiff}}]
+convert portable anymap to TIFF file
+\item[{{\it pnmtoxwd}}]
+convert portable anymap to X11 window dump
+\item[{{\it fitstopnm}}]
+fitstopnm - convert a FITS file into a portable anymap
+\item[{{\it pstopnm}}]
+script to convert PS to portable anymap with GhostScript
+\item[{{\it rasttopnm}}]
+convert Sun raster file to portable anymap
+\item[{{\it tifftopnm}}]
+convert TIFF file to portable anymap
+\item[{{\it xwdtopnm}}]
+convert X10 or X11 window dump to portable anymap
+\end{TPlist}
+
+\shead{SEE ALSO}
+There are a number of related image-manipulation tools:
+\begin{TPlist}{{\it Fuzzy Pixmap Manipulation}}
+\item[{{\it IM Raster Toolkit}}]
+A portable and efficient format toolkit.  The format supports pixels of
+arbitrary channels, components, and bit precisions, while allowing
+compression and machine byte-order independence.  Support for image
+manipulation, digital halftoning, and format conversion.  Previously
+distributed on tape c/o the University of Waterloo (an {\it ftp}
+version is to appear later).  Author: Alan Paeth
+(awpaeth@watcgl.uwaterloo.ca).
+\item[{{\it Utah RLE Toolkit}}]
+Conversion and manipulation package, similar to {\it pbmplus}.  Available
+via {\it ftp} as {\it cs.utah.edu: pub/toolkit-2.0.tar.Z} and {\it
+ucsd.edu: graphics\-/utah-raster-toolkit.\-tar.Z}.
+\item[{{\it Fuzzy Pixmap Manipulation}}]
+Conversion and manipulation package, similar to {\it pbmplus}.  Version
+1.0 available via {\it ftp} as {\it
+nl.cs.cmu.edu: /usr/mlm/ftp/fbm.tar.Z}, {\it
+uunet.uu.net: pub/fbm.tar.Z}, and {\it ucsd.edu: graphics/fbm.tar.Z}.
+Author: Michael Mauldin (mlm@nl.cs.cmu.edu).
+\item[{{\it Img Software Set}}]
+Reads and writes its own image format, displaying results on an X11
+screen, and does some image manipulations.  Version 1.3 is available via
+{\it ftp} as {\it ftp.x.org: contrib/img\_1.3.tar.Z}, and {\it
+venera.isi.edu: pub/img\_1.3.tar.Z}, along with a large collection of
+color images.  Author: Paul Raveling (raveling@venera.isi.edu).
+\item[{{\it Xim}}]
+Reads and writes its own image format, displays on an X11 screen, and
+does some image manipulations.  Available in your nearest X11R4 source
+tree as {\it contrib/clients/xim}.  A more recent version is available
+via ftp from {\it video.mit.edu}.  It uses X11R4 and the OSF/Motif
+toolkit to provide basic interactive image manipulation and reads/writes
+GIF, xwd, xbm, tiff, rle, xim, and other formats.  Author: Philip R.
+Thompson.
+\item[{{\it xloadimage}}]
+Reads in images in various formats and displays them on an X11 screen.
+Available via {\it ftp} as {\it
+ftp.x.org: contrib/xloadimage$\ast$}, and in your nearest {\it
+comp.sources.\-x} archive.  Author: Jim Frost (madd@std.\-com).
+\item[{{\it TIFF\ Software}}]
+Nice portable library for reading and writing TIFF files, plus a few
+tools for manipulating them and reading other formats.  Available via
+{\it ftp} as {\it sgi.com: graphics/tiff/$\ast$.tar.Z} or {\it
+uunet.uu.net: graphics/tiff.tar.Z}.  Author: Sam Leffler
+(sam@sgi.com).
+\item[{{\it ALV}}]
+A Sun-specific image toolkit.  Version 2.0.6 posted to {\it
+comp.sources.\-sun} on 11 December 1989.  Also available via email to {\it
+alv-users-request @cs.bris.ac.uk}.
+\item[{{\it popi}}]
+An image manipulation language.  Version 2.1 posted to {\it
+comp.\-sources.\-misc} on 12 December 1989.
+\item[{{\it ImageMagick,}}]
+X11 package for display and interactive manipulation of images.  Uses its
+own format (MIFF), and includes some converters.  Available via {\it
+ftp} as {\it ftp.x.org: contrib/ImageMagick.$\ast$.tar.Z}.
+\item[{{\it Khoros}}]
+A huge (\~{}100 meg) graphical development environment based on X11R4.
+Components include a visual programming language, code generators for
+extending the visual language and adding new application packages to the
+system, an interactive user interface editor, an interactive image
+display package, an extensive library of image and signal processing
+routines, and 2D/3D plotting packages.  Available via {\it ftp} as
+{\it pprg.unm.edu: pub/khoros/$\ast$}.
+\item[{JPEG package}]
+JPEG is a a standardized compression method for full-color and gray-scale
+images of ``real-world'' scenes; this experimental package includes
+programs to compress gif and ppm format files to JPEG format ({\it
+cjpeg(1L)),} and to decompress them ({\it djpeg(1L)).} Available by {\it
+ftp} as {\it uunet.uu.net: graphics/jpeg/jpegsrc.v4.tar.Z}.
+\end{TPlist}
+
+libpbm(3), libpgm(3), libpnm(3), libppm(3), pbm(5), pgm(5), pnm(5),
+ppm(5), rasterfile(1)
+
+\shead{AUTHOR}
+Distribution of 10 December 1991.  \copyright 1989, 1991 by Jef Poskanzer.
+
+Feedback and questions are welcome. Please send them to:
+\begin{IPlist}
+\IPitem{{}}
+{\nofill
+        jef@netcom.com
+        jef@well.sf.ca.us
+        apple!well!jef
+\fill}
+\end{IPlist}
+
+When sending bug reports, always include the output from running any
+pbmplus program with the -version flag, including descriptions of the
+type of system you are on, the compiler you use, and whether you are
+using Makefiles or Imakefiles.
+
+When suggesting new formats or features, please include whatever
+documentation you have, and a uuencoded sample.  The response time will
+depend upon my schedule and the complexity of the task;  if you need it
+right away, or it is a complicated job, you might consider paying me.
+
+The Usenet newsgroup {\it alt.graphics.pixutils} is a forum for
+discussion of image conversion and editing packages.  Posting queries
+there may be better than mailing them to me, since it allows other people
+to help provide answers.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.  This software is provided ``as is'' without express or
+implied warranty.  Thus, you may do what you want with this software.
+Build it into your package, steal code from it, whatever.  Just be sure
+to let people know where it came from.
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Feb  4 14:35:11 1994
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: asciitopgm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: asciitopgm.1
+%
+\phead{asciitopgm}{1}{26 December 1994}{}{}
+
+%.IX asciitopgm
+\shead{NAME}
+asciitopgm - convert ASCII graphics into a portable graymap
+\shead{SYNOPSIS}
+{\bf asciitopgm}
+{\it [}{\rm -d}
+{\rm divisor}{\it ]}
+{\it height width}
+{\rm [}{\it asciifile}{\rm ]}
+\shead{DESCRIPTION}
+Reads ASCII data as input.
+Produces a portable graymap with pixel values which are an approximation
+of the ``brightness'' of the ASCII characters,
+assuming black-on-white printing.
+In other words, a capital M is very dark, a period is ver light,
+and a space is white.
+Input lines which are fewer than
+{\it width}
+characters are automatically padded with spaces.
+\par
+The
+{\it divisor}
+argument is a floating-point number by which the output pixels are
+divided; the default value is 1.0.
+This can be used to adjust the brightness of the graymap:
+for example, if the image is too dim, reduce the divisor.
+\par
+In keeping with (I believe) Fortran line-printer conventions,
+input lines beginning with a + (plus) character are assumed
+to ``overstrike'' the previous line, allowing a larger range of gray values.
+\par
+This tool contradicts the message in the
+{\it pbmtoascii}
+manual: ``Note that there is no asciitopbm tool - this
+transformation is one-way.''
+\shead{BUGS}
+The table of ASCII-to-grey values is subject to interpretation,
+and, of course, depends on the typeface intended for the input.
+\shead{SEE ALSO}
+pbmtoascii(1), pgm(5)
+\shead{AUTHOR}
+Wilson H. Bent. Jr. (whb@usc.edu)
+%
+% end of input file: asciitopgm.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:07:54 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: atktopbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: atktopbm.1
+%
+\phead{atktopbm}{1}{26 September 1991}{}{}
+
+%.IX atktopbm
+\shead{NAME}
+atktopbm - convert Andrew Toolkit raster object to portable bitmap
+\shead{SYNOPSIS}
+{\bf atktopbm}
+{\rm [}{\it atkfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads an Andrew Toolkit raster object as input.
+%.IX "Andrew Toolkit raster object"
+Produces a portable bitmap as output.
+\shead{SEE ALSO}
+pbmtoatk(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1991 by Bill Janssen.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: atktopbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:35 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: bioradtopgm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: bioradtopgm.1
+%
+\phead{bioradtopgm}{1}{28 June 1993}{}{}
+
+%.IX bioradtopgm
+\shead{NAME}
+bioradtopgm - convert a Biorad confocal file into a portable graymap
+\shead{SYNOPSIS}
+{\bf bioradtopgm}
+{\rm [}{\bf -image\#}{\rm ]}
+{\rm [}{\it imagedata}{\rm ]}
+\shead{DESCRIPTION}
+Reads a Biorad confocal file as input.
+Produces a portable graymap as output.
+If the resulting image is upside down, run it through
+{\bf pnmflip\ -tb .}
+%.IX pnmflip
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -image\#}}
+\item[{{\bf -image\#}}]
+A Biorad image file may contain more than one image. With this flag,
+you can specify which image to extract (only one at a time). The first
+image in the file has number zero. If no
+image number is supplied, only information about the image size and
+the number of images in the input is printed out. No output is produced.
+\end{TPlist}
+
+\shead{BUGS}
+A Biorad image may be in word format. If PbmPlus is not compiled with the
+``BIGGRAYS'' flag, word files can not be converted. See the Makefile.
+\shead{SEE ALSO}
+pgm(5), pnmflip(1)
+\shead{AUTHORS}
+\copyright 1993 by Oliver Trepte (oliver@fysik4.kth.se).
+\nwl
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: bioradtopgm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:07 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: bmptoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: bmptoppm.1
+%
+\phead{bmptoppm}{1}{26 Oct 1992}{}{}
+
+%.IX bmptoppm
+\shead{NAME}
+bmptoppm -- convert a BMP file into a portable pixmap
+\shead{SYNOPSIS}
+{\bf bmptoppm}
+{\rm [}{\it bmpfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a Microsoft Windows or OS/2 BMP file as input.
+%.IX BMP
+Produces a portable pixmap as output.
+\shead{SEE ALSO}
+ppmtobmp(1),
+ppm(5)
+\shead{AUTHOR}
+\copyright 1992 by David W. Sanderson.
+% Permission to use, copy, modify, and distribute this software and
+% its documentation for any purpose and without fee is hereby granted,
+% provided that the above copyright notice appear in all copies and
+% that both that copyright notice and this permission notice appear in
+% supporting documentation.  This software is provided "as is" without
+% express or implied warranty.
+%
+% end of input file: bmptoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:07:54 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: brushtopbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: brushtopbm.1
+%
+\phead{brushtopbm}{1}{28 August 1988}{}{}
+
+%.IX brushtopbm
+\shead{NAME}
+brushtopbm - convert a doodle brush file into a portable bitmap
+\shead{SYNOPSIS}
+{\bf brushtopbm}
+{\rm [}{\it brushfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a Xerox doodle brush file as input.
+%.IX "Xerox doodle brush format"
+Produces a portable bitmap as output.
+\par
+Note that there is currently no pbmtobrush tool.
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+\copyright 1988 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: brushtopbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:07:55 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: cmuwmtopbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: cmuwmtopbm.1
+%
+\phead{cmuwmtopbm}{1}{15 April 1989}{}{}
+
+%.IX cmuwmtopbm
+\shead{NAME}
+cmuwmtopbm - convert a CMU window manager bitmap into a portable bitmap
+\shead{SYNOPSIS}
+{\bf cmuwmtopbm}
+{\rm [}{\it cmuwmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a CMU window manager bitmap as input.
+%.IX "CMU window manager bitmap"
+Produces a portable bitmap as output.
+\shead{SEE ALSO}
+pbmtocmuwm(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: cmuwmtopbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Mon Feb  7 08:49:58 1994
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: fitstopnm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: fitstopnm.1
+%
+\phead{fitstopnm}{1}{20 September 89}{}{}
+
+\shead{NAME}
+fitstopnm - convert a FITS file into a portable anymap
+\shead{SYNOPSIS}
+{\bf fitstopnm}
+{\rm [}{\bf -image}
+{\it N}{\rm ]}
+{\rm [}{\bf -noraw}{\rm ]}
+{\rm [}{\bf -scanmax}{\rm ]}
+{\rm [}{\bf -printmax}{\rm ]}
+{\rm [}{\bf -min}
+{\it f}{\rm ]}
+{\rm [}{\bf -max}
+{\it f}{\rm ]}
+{\rm [}{\it FITSfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a FITS file as input.
+%.IX FITS
+Produces a portable pixmap if the FITS file consists of 3 image planes
+(NAXIS = 3 and NAXIS3 = 3), a portable graymap if the FITS file
+consists of 2 image planes (NAXIS = 2), or whenever the 
+{\bf --image}
+flag is specified.
+The results may need to be flipped top for bottom; if so, just
+pipe the output through
+{\bf pnmflip -tb.}
+%.IX pnmflip
+\shead{OPTIONS}
+\par
+The
+{\bf -image}
+option is for FITS files with three axes.
+The assumption is that the third axis is for multiple images,
+and this option lets you select which one you want.
+\par
+Flags 
+{\bf -min}
+and 
+{\bf -max}
+can be used to override the min and max values as read from the FITS
+header or the image data if no DATAMIN and DATAMAX keywords are found.
+Flag
+{\bf -scanmax}
+can be used to force the program to scan the data even when DATAMIN
+and DATAMAX are found in the header. If 
+{\bf -printmax}
+is specified, the program will just print the min and max values and
+quit.
+Flag
+{\bf -noraw}
+can be used to force 
+the program to produce an ASCII portable anymap.
+\par
+The program will tell what kind of anymap is writing.
+All flags can be abbreviated to their shortest unique prefix.
+\shead{REFERENCES}
+FITS stands for Flexible Image Transport System.  A full description
+can be found in Astronomy \& Astrophysics Supplement Series 44 (1981),
+page 363.
+\shead{SEE ALSO}
+pnmtofits(1), pgm(5), pnmflip(1)
+\shead{AUTHOR}
+Copyright (C) 1989 by Jef Poskanzer, with modifications by 
+Daniel Briggs (dbriggs@nrao.edu) and Alberto
+Accomazzi (alberto@cfa.harvard.edu).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: fitstopnm.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:24 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: fstopgm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: fstopgm.1
+%
+\phead{fstopgm}{1}{06 April 89}{}{}
+
+%.IX fstopgm
+\shead{NAME}
+fstopgm - convert a Usenix FaceSaver(tm) file into a portable graymap
+\shead{SYNOPSIS}
+{\bf fstopgm}
+{\rm [}{\it fsfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a Usenix FaceSaver(tm) file as input.
+%.IX FaceSaver
+Produces a portable graymap as output.
+\par
+FaceSaver(tm) files sometimes have rectangular pixels.
+While
+{\it fstopgm}
+won't re-scale them into square pixels for you,
+it will give you the precise
+{\it pnmscale}
+command that will do the job.
+Because of this, reading a FaceSaver(tm) image is a two-step process.
+First you do:
+\nofill
+  fstopgm $>$ /dev/null
+\fill
+This will tell you whether you need to use
+{\it pnmscale.}
+Then use one of the following pipelines:
+\nofill
+  fstopgm $|$ pgmnorm
+  fstopgm $|$ pnmscale -whatever $|$ pgmnorm
+\fill
+To go to PBM, you want something more like one of these:
+\nofill
+  fstopgm $|$ pnmenlarge 3 $|$ pgmnorm $|$ pgmtopbm
+  fstopgm $|$ pnmenlarge 3 $|$ pnmscale $<$whatever$>$ $|$ pgmnorm $|$ pgmtopbm
+\fill
+You want to enlarge when going to a bitmap because otherwise you lose
+information; but enlarging by more than 3 does not look good.
+\par
+FaceSaver is a registered trademark of Metron Computerware Ltd. of
+Oakland, CA.
+\shead{SEE ALSO}
+pgmtofs(1), pgm(5), pgmnorm(1), pnmenlarge(1), pnmscale(1), pgmtopbm(1)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: fstopgm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:07:55 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: g3topbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: g3topbm.1
+%
+\phead{g3topbm}{1}{02 October 1989}{}{}
+
+%.IX g3topbm
+\shead{NAME}
+g3topbm - convert a Group 3 fax file into a portable bitmap
+\shead{SYNOPSIS}
+{\bf g3topbm}
+{\rm [}{\bf -kludge}{\rm ]}
+{\rm [}{\bf -reversebits}{\rm ]}
+{\rm [}{\bf -stretch}{\rm ]}
+{\rm [}{\it g3file}{\rm ]}
+\shead{DESCRIPTION}
+Reads a Group 3 fax file as input.
+%.IX "Group 3 fax"
+%.IX fax
+Produces a portable bitmap as output.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -kludge}}
+\item[{{\bf -kludge}}]
+Tells
+{\it g3topbm}
+to ignore the first few lines of the file;
+sometimes fax files have some junk at the beginning.
+\item[{{\bf -reversebits}}]
+Tells
+{\it g3topbm}
+to interpret bits least-significant
+first, instead of the default most-significant first.
+Apparently some fax modems do it one way and others do it the other way.
+If you get a whole bunch of ``bad code word'' messages, try using this
+flag.
+\item[{{\bf -stretch}}]
+Tells
+{\it g3topbm}
+to stretch the image vertically by
+duplicating each row.
+This is for the low-quality transmission mode.
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{REFERENCES}
+The standard for Group 3 fax is defined in CCITT Recommendation T.4.
+\shead{BUGS}
+Probably.
+\shead{SEE ALSO}
+pbmtog3(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1989 by Paul Haeberli (paul@manray.sgi.com).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: g3topbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:07:56 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: gemtopbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: gemtopbm.1
+%
+\phead{gemtopbm}{1}{3 December 1988}{}{}
+
+%.IX gemtopbm
+\shead{NAME}
+gemtopbm - convert a GEM .img file into a portable bitmap
+\shead{SYNOPSIS}
+{\bf gemtopbm}
+{\rm [}{\bf -d}{\rm ]}
+{\it gemfile}
+\shead{DESCRIPTION}
+Reads a GEM .img file as input.
+%.IX GEM
+Produces a portable bitmap as output.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -d}}
+\item[{{\bf -d}}]
+Produce output describing the contents of the .img file.
+\end{TPlist}
+
+\shead{BUGS}
+Does not support file containing more than one plane.
+Can't read from standard input.
+\shead{SEE ALSO}
+pbmtogem(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1988 Diomidis D. Spinellis (dds@cc.ic.ac.uk).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted,
+% provided that the above copyright notice appear in all copies and that
+% both that copyright notice and this permission notice appear in
+% supporting documentation.
+%
+% end of input file: gemtopbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:27 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: giftopnm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: giftopnm.1
+%
+\phead{giftopnm}{1}{29 September 1993}{}{}
+
+%.IX giftopnm
+\shead{NAME}
+giftopnm - convert a GIF file into a portable anymap
+\shead{SYNOPSIS}
+{\bf giftopnm}
+{\rm [}{\bf -verbose}{\rm ]}
+{\rm [}{\bf -comments}{\rm ]}
+{\rm [}{\bf -image}
+{\it N}{\rm ]}
+{\rm [}{\it GIFfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a GIF file for input, and outputs portable anymap.
+%.IX GIF
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -verbose}}
+\item[{{\bf -verbose}}]
+Produces verbose output about the GIF file input.
+\item[{{\bf -comments}}]
+Only outputs GIF89 comment fields.
+\item[{{\bf -image}}]
+Output the specified gif image from the
+input gif archive (where
+{\it N}
+is '1', '2', '20'...).
+Normally there is only one image per file, so this option
+is not needed.
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{BUGS}
+This does not correctly handle the Plain Text Extension of the GIF89
+standard, since I did not have any example input files containing them.
+\shead{SEE ALSO}
+ppmtogif(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1993 by David Koblas (koblas@netcom.com)
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted,
+% provided that the above copyright notice appear in all copies and that
+% both that copyright notice and this permission notice appear in
+% supporting documentation.
+%
+% end of input file: giftopnm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:40 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: gouldtoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: gouldtoppm.1
+%
+\phead{gouldtoppm}{1}{20 May 1990}{}{}
+
+%.IX gouldtoppm
+\shead{NAME}
+gouldtoppm - convert Gould scanner file into a portable pixmap
+\shead{SYNOPSIS}
+{\bf gouldtoppm}
+{\rm [}{\it gouldfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a file produced by the Gould scanner as input.
+%.IX "Gould scanner"
+Produces a portable pixmap as output.
+\shead{SEE ALSO}
+ppm(5)
+\shead{AUTHOR}
+\copyright 1990 by Stephen Paul Lesniewski.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: gouldtoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:25 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: hipstopgm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: hipstopgm.1
+%
+\phead{hipstopgm}{1}{24 August 89}{}{}
+
+%.IX hipstopgm
+\shead{NAME}
+hipstopgm - convert a HIPS file into a portable graymap
+\shead{SYNOPSIS}
+{\bf hipstopgm}
+{\rm [}{\it hipsfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a HIPS file as input.
+%.IX HIPS
+Produces a portable graymap as output.
+\par
+If the HIPS file contains more than one frame in sequence, hipstopgm
+will concatenate all the frames vertically.
+\par
+HIPS is a format developed at the Human Information Processing
+Laboratory, NYU.
+\shead{SEE ALSO}
+pgm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: hipstopgm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:07:57 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: icontopbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: icontopbm.1
+%
+\phead{icontopbm}{1}{31 August 1988}{}{}
+
+%.IX icontopbm
+\shead{NAME}
+icontopbm - convert a Sun icon into a portable bitmap
+\shead{SYNOPSIS}
+{\bf icontopbm}
+{\rm [}{\it iconfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a Sun icon as input.
+%.IX Sun
+%.IX "Sun icon format"
+Produces a portable bitmap as output.
+\shead{SEE ALSO}
+pbmtoicon(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1988 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: icontopbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:41 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ilbmtoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ilbmtoppm.1
+%
+\phead{ilbmtoppm}{1}{20 June 1993}{}{}
+
+%.IX ilbmtoppm
+\shead{NAME}
+ilbmtoppm - convert an ILBM file into a portable pixmap
+\shead{SYNOPSIS}
+{\bf ilbmtoppm}
+{\rm [}{\bf -verbose}{\rm ]}
+{\rm [}{\it ILBMfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads an IFF ILBM file as input.
+%.IX "IFF"
+%.IX "ILBM"
+Produces a portable pixmap as output.
+Supported ILBM types are:
+\begin{TPlist}{Normal ILBMs with 1-16 planes.}
+\item[{Normal ILBMs with 1-16 planes.}]
+\item[{Amiga Extra-Halfbrite (EHB)}]
+\item[{Amiga Hold-and-Modify (HAM) with 3-16 planes.}]
+%.IX "HAM"
+\item[{24 bit.}]
+\item[{Color map (BMHD + CMAP chunk only, nPlanes = 0).}]
+\item[{Unofficial direct color.}]
+1-16 planes for each color component.
+\item[{Chunks used:}]
+BMHD, CMAP, CAMG (only HAM \& EHB flags used), BODY
+unofficial DCOL chunk to identify direct color ILBM
+\item[{Chunks ignored:}]
+GRAB, DEST, SPRT, CRNG, CCRT, CLUT, DPPV, DRNG, EPSF
+\item[{Other chunks (ignored but displayed in verbose mode):}]
+NAME, AUTH, (c), ANNO, DPI
+\item[{Unknown chunks are skipped.}]
+\end{TPlist}
+
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -verbose}}
+\item[{{\bf -verbose}}]
+Give some informaton about the ILBM file.
+\end{TPlist}
+
+\shead{BUGS}
+Probably.
+\shead{REFERENCES}
+Amiga ROM Kernel Reference Manual - Devices (3rd Ed.)
+Addison Wesley, ISBN 0--201--56775--X
+\shead{SEE ALSO}
+ppm(5), ppmtoilbm(1)
+\shead{AUTHORS}
+\copyright 1989 by Jef Poskanzer.
+\nwl
+Modified June 1993 by Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ilbmtoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:41 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: imgtoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: imgtoppm.1
+%
+\phead{imgtoppm}{1}{05 September 1989}{}{}
+
+%.IX imgtoppm
+\shead{NAME}
+imgtoppm - convert an Img-whatnot file into a portable pixmap
+\shead{SYNOPSIS}
+{\bf imgtoppm}
+{\rm [}{\it imgfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads an Img-whatnot file as input.
+Produces a portable pixmap as output.
+The Img-whatnot toolkit is available for FTP on venera.isi.edu,
+along with numerous images in this format.
+%.IX Img-whatnot
+\shead{SEE ALSO}
+ppm(5)
+\shead{AUTHOR}
+Based on a simple conversion program posted to comp.graphics by Ed Falk.
+
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: imgtoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:19 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: libpbm.3
+
+\newpage
+%--------------------------------------------------
+% start of input file: libpbm.3
+%
+\phead{libpbm}{3}{}{}{}
+
+\shead{NAME}
+libpbm - functions to support portable bitmap programs
+\shead{SYNOPSIS}
+\def\Ss{\par\vspace{1.0\baselineskip}%.ft CW
+\nofill
+}
+\def\Se{\fill
+%.ft P
+\par\vspace{1.0\baselineskip}}
+\Ss
+\#include $<$pbm.h$>$
+cc ... libpbm.a
+\Se
+\shead{DESCRIPTION - PACKAGE-WIDE ROUTINES}
+%.SS KEYWORD MATCHING
+\Ss
+int pm\_keymatch( char* str, char* keyword, int minchars )
+\Se
+Does a case-insensitive match of
+{\bf str}
+against
+{\bf keyword}{\rm .}
+{\bf str}
+can be a leading sunstring of
+{\bf keyword}{\rm ,}
+but at least
+{\bf minchars}
+must be present.
+%.SS LOG BASE TWO
+\Ss
+int pm\_maxvaltobits( int maxval )
+int pm\_bitstomaxval( int bits )
+\Se
+Convert between a maxval and the minimum number of bits required
+to hold it.
+%.SS MESSAGES AND ERRORS
+\Ss
+void pm\_message( char* fmt, ... )
+\Se
+{\bf printf()}
+style routine to write an informational message.
+\Ss
+void pm\_error( char* fmt, ... )
+\Se
+{\bf printf()}
+style routine to write an error message and abort.
+\Ss
+void pm\_usage( char* usage )
+\Se
+Write a usage message.
+The string should indicate what arguments are to be provided to the program.
+%.SS GENERIC FILE MANAGEMENT
+\Ss
+FILE* pm\_openr( char* name )
+\Se
+Open the given file for reading, with appropriate error checking.
+A filename of ``-'' is taken as equivalent to stdin.
+\Ss
+FILE* pm\_openw( char* name )
+\Se
+Open the given file for writing, with appropriate error checking.
+\Ss
+void pm\_close( FILE* fp )
+\Se
+Close the file descriptor, with appropriate error checking.
+%.SS ENDIAN I/O
+\Ss
+int pm\_readbigshort( FILE* in, short* sP )
+int pm\_writebigshort( FILE* out, short s )
+int pm\_readbiglong( FILE* in, long* lP )
+int pm\_writebiglong( FILE* out, long l )
+int pm\_readlittleshort( FILE* in, short* sP )
+int pm\_writelittleshort( FILE* out, short s )
+int pm\_readlittlelong( FILE* in, long* lP )
+int pm\_writelittlelong( FILE* out, long l )
+\Se
+Routines to read and write short and long ints in either big- or
+little-endian byte order.
+\shead{DESCRIPTION - PBM-SPECIFIC ROUTINES}
+%.SS TYPES AND CONSTANTS
+\Ss
+typedef ... bit;
+\#define PBM\_WHITE ...
+\#define PBM\_BLACK ...
+\Se
+each
+{\bf bit}
+should contain only the values of
+{\bf PBM\_WHITE}
+or
+{\bf PBM\_BLACK}{\rm .}
+\Ss
+\#define PBM\_FORMAT ...
+\#define RPBM\_FORMAT ...
+\#define PBM\_TYPE PBM\_FORMAT
+\#define PBM\_FORMAT\_TYPE(f) ...
+\Se
+For distinguishing different file formats and types.
+%.SS INITIALIZATION
+\Ss
+void pbm\_init( int* argcP, char* argv[] )
+\Se
+All PBM programs must call this routine.
+%.SS MEMORY MANAGEMENT
+\Ss
+bit** pbm\_allocarray( int cols, int rows )
+\Se
+Allocate an array of bits.
+\Ss
+bit* pbm\_allocrow( int cols )
+\Se
+Allocate a row of the given number of bits.
+\Ss
+void pbm\_freearray( bit** bits, int rows )
+\Se
+Free the array allocated with
+{\bf pbm\_allocarray()}
+containing the given number
+of rows.
+\Ss
+void pbm\_freerow( bit* bitrow )
+\Se
+Free a row of bits.
+%.SS READING FILES
+\Ss
+void pbm\_readpbminit( FILE* fp, int* colsP, int* rowsP, int* formatP )
+\Se
+Read the header from a PBM file, filling in the rows, cols and format
+variables.
+\Ss
+void pbm\_readpbmrow( FILE* fp, bit* bitrow, int cols, int format )
+\Se
+Read a row of bits into the bitrow array.
+Format and cols were filled in by
+{\bf pbm\_readpbminit()}{\rm .}
+\Ss
+bit** pbm\_readpbm( FILE* fp, int* colsP, int* rowsP )
+\Se
+Read an entire bitmap file into memory, returning the allocated array and
+filling in the rows and cols variables.
+This function combines
+{\bf pbm\_readpbminit()}{\rm ,}
+{\bf pbm\_allocarray()}
+and
+{\bf pbm\_readpbmrow()}{\rm .}
+\Ss
+char* pm\_read\_unknown\_size( FILE* fp, long* nread )
+\Se
+Read an entire file or input stream of unknown size to a buffer.
+Allocate memory more memory as needed. The calling routine has
+to free the allocated buffer with
+{\bf free()}{\rm .}
+{\bf pm\_read\_unknown\_size()}
+returns a pointer to the allocated buffer. The
+{\bf nread}
+argument returns the number of bytes read.
+%.SS WRITING FILES
+\Ss
+void pbm\_writepbminit( FILE* fp, int cols, int rows, int forceplain )
+\Se
+Write the header for a portable bitmap file.
+The forceplain flag forces a plain-format file to be written, as opposed
+to a raw-format one.
+\Ss
+void pbm\_writepbmrow( FILE* fp, bit* bitrow, int cols, int forceplain )
+\Se
+Write a row from a portable bitmap.
+\Ss
+void pbm\_writepbm( FILE* fp, bit** bits, int cols, int rows, int forceplain )
+\Se
+Write the header and all data for a portable bitmap.
+This function combines
+{\bf pbm\_writepbminit()}
+and
+{\bf pbm\_writepbmrow()}{\rm .}
+\shead{SEE ALSO}
+libpgm(3), libppm(3), libpnm(3)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Tony Hansen and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: libpbm.3
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:37 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: libpgm.3
+
+\newpage
+%--------------------------------------------------
+% start of input file: libpgm.3
+%
+\phead{libpgm}{3}{}{}{}
+
+\shead{NAME}
+libpgm - functions to support portable graymap programs
+\shead{SYNOPSIS}
+\def\Ss{\par\vspace{1.0\baselineskip}%.ft CW
+\nofill
+}
+\def\Se{\fill
+%.ft P
+\par\vspace{1.0\baselineskip}}
+\Ss
+\#include $<$pgm.h$>$
+cc ... libpgm.a libpbm.a
+\Se
+\shead{DESCRIPTION}
+%.SS TYPES AND CONSTANTS
+\Ss
+typedef ... gray;
+\#define PGM\_MAXMAXVAL ...
+extern gray pgm\_pbmmaxval;
+\Se
+Each
+{\bf gray}
+should contain only the values between
+{\bf 0}
+and
+{\bf PGM\_MAXMAXVAL}{\rm .}
+{\bf pgm\_pbmmaxval}
+is the maxval used when a PGM program reads a PBM file.
+Normally it is 1; however, for some programs, a larger value gives better
+results.
+\Ss
+\#define PGM\_FORMAT ...
+\#define RPGM\_FORMAT ...
+\#define PGM\_TYPE PGM\_FORMAT
+int PGM\_FORMAT\_TYPE( int format )
+\Se
+For distinguishing different file formats and types.
+%.SS INITIALIZATION
+\Ss
+void pgm\_init( int* argcP, char* argv[] )
+\Se
+All PGM programs must call this routine.
+%.SS MEMORY MANAGEMENT
+\Ss
+gray** pgm\_allocarray( int cols, int rows )
+\Se
+Allocate an array of grays.
+\Ss
+gray* pgm\_allocrow( int cols )
+\Se
+Allocate a row of the given number of grays.
+\Ss
+void pgm\_freearray( gray** grays, int rows )
+\Se
+Free the array allocated with
+{\bf pgm\_allocarray()}
+containing the given number
+of rows.
+\Ss
+void pgm\_freerow( gray* grayrow )
+\Se
+Free a row of grays.
+%.SS READING FILES
+\Ss
+void pgm\_readpgminit( FILE* fp, int* colsP, int* rowsP, gray* maxvalP, int* formatP )
+\Se
+Read the header from a PGM file, filling in the rows, cols, maxval and format
+variables.
+\Ss
+void pgm\_readpgmrow( FILE* fp, gray* grayrow, int cols, gray maxval, int format )
+\Se
+Read a row of grays into the grayrow array.
+Format, cols, and maxval were filled in by
+{\bf pgm\_readpgminit()}{\rm .}
+\Ss
+gray** pgm\_readpgm( FILE* fp, int* colsP, int* rowsP, gray* maxvalP )
+\Se
+Read an entire graymap file into memory, returning the allocated array and
+filling in the rows, cols and maxval variables.
+This function combines
+{\bf pgm\_readpgminit()}{\rm ,}
+{\bf pgm\_allocarray()}
+and
+{\bf pgm\_readpgmrow()}{\rm .}
+%.SS WRITING FILES
+\Ss
+void pgm\_writepgminit( FILE* fp, int cols, int rows, gray maxval, int forceplain )
+\Se
+Write the header for a portable graymap file.
+The forceplain flag forces a plain-format file to be written, as opposed
+to a raw-format one.
+\Ss
+void pgm\_writepgmrow( FILE* fp, gray* grayrow, int cols, gray maxval, int forceplain )
+\Se
+Write a row from a portable graymap.
+\Ss
+void pgm\_writepgm( FILE* fp, gray** grays, int cols, int rows, gray maxval, int forceplain )
+\Se
+Write the header and all data for a portable graymap.
+This function combines
+{\bf pgm\_writepgminit()}
+and
+{\bf pgm\_writepgmrow()}{\rm .}
+\shead{SEE ALSO}
+libpbm(3), libppm(3), libpnm(3)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Tony Hansen and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: libpgm.3
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:34 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: libpnm.3
+
+\newpage
+%--------------------------------------------------
+% start of input file: libpnm.3
+%
+\phead{libpnm}{3}{}{}{}
+
+\shead{NAME}
+libpnm - functions to support portable anymap programs
+\shead{SYNOPSIS}
+\def\Ss{\par\vspace{1.0\baselineskip}%.ft CW
+\nofill
+}
+\def\Se{\fill
+%.ft P
+\par\vspace{1.0\baselineskip}}
+\Ss
+\#include $<$pnm.h$>$
+cc ... libpnm.a libppm.a libpgm.a libpbm.a
+\Se
+\shead{DESCRIPTION}
+%.SS TYPES AND CONSTANTS
+\Ss
+typedef ... xel;
+typedef ... xelval;
+\#define PNM\_MAXMAXVAL ...
+extern xelval pnm\_pbmmaxval;
+\Se
+Each
+{\bf xel}
+contains three
+{\bf xelval}{\rm s,}
+each of which should contain only the values between
+{\bf 0}
+and
+{\bf PNM\_MAXMAXVAL}{\rm .}
+{\bf pnm\_pbmmaxval}
+is the maxval used when a PNM program reads a PBM file.
+Normally it is 1; however, for some programs, a larger value gives better
+results.
+%.SS XEL MANIPULATIONS
+\Ss
+xelval PNM\_GET1( xel x )
+\Se
+This macro extracts a single value from an xel, when you know it's
+from a PBM or PGM file.
+When it's from a PPM file, use
+{\bf PPM\_GETR()}{\rm ,}
+{\bf PPM\_GETG()}{\rm ,}
+and
+{\bf PPM\_GETB()}{\rm .}
+\Ss
+void PNM\_ASSIGN1( xel x, xelval v )
+\Se
+This macro assigns a single value to an xel, when you know it's
+from a PBM or PGM file.
+When it's from a PPM file, use
+{\bf PPM\_ASSIGN()}{\rm .}
+\Ss
+int PNM\_EQUAL( xel x, xel y )
+\Se
+This macro checks two xels for equality.
+\Ss
+int PNM\_FORMAT\_TYPE( int format )
+\Se
+For distinguishing different file types.
+%.SS INITIALIZATION
+\Ss
+void pnm\_init( int* argcP, char* argv[] )
+\Se
+All PNM programs must call this routine.
+%.SS MEMORY MANAGEMENT
+\Ss
+xel** pnm\_allocarray( int cols, int rows )
+\Se
+Allocate an array of xels.
+\Ss
+xel* pnm\_allocrow( int cols )
+\Se
+Allocate a row of the given number of xels.
+\Ss
+void pnm\_freearray( xel** xels, int rows )
+\Se
+Free the array allocated with
+{\bf pnm\_allocarray()}
+containing the given number
+of rows.
+\Ss
+void pnm\_freerow( xel* xelrow )
+\Se
+Free a row of xels.
+%.SS READING FILES
+\Ss
+void pnm\_readpnminit( FILE* fp, int* colsP, int* rowsP, xelval* maxvalP, int* formatP )
+\Se
+Read the header from a PNM file, filling in the rows, cols, maxval and format
+variables.
+\Ss
+void pnm\_readpnmrow( FILE* fp, xel* xelrow, int cols, xelval maxval, int format )
+\Se
+Read a row of xels into the xelrow array.
+Format, cols, and maxval were filled in by
+{\bf pnm\_readpnminit()}{\rm .}
+\Ss
+xel** pnm\_readpnm( FILE* fp, int* colsP, int* rowsP, xelval* maxvalP, int* formatP )
+\Se
+Read an entire anymap file into memory, returning the allocated array and
+filling in the rows, cols, maxval, and format variables.
+This function combines
+{\bf pnm\_readpnminit()}{\rm ,}
+{\bf pnm\_allocarray()}
+and
+{\bf pnm\_readpnmrow()}{\rm .}
+Unlike the equivalent functions in PBM, PGM, and PPM, it returns the format
+so you can tell what type the file is.
+%.SS WRITING FILES
+\Ss
+void pnm\_writepnminit( FILE* fp, int cols, int rows, xelval maxval, int format, int forceplain )
+\Se
+Write the header for a portable anymap file.
+Unlike the equivalent functions in PBM, PGM, and PPM, you have to specify
+the output type.
+The forceplain flag forces a plain-format file to be written, as opposed
+to a raw-format one.
+\Ss
+void pnm\_writepnmrow( FILE* fp, xel* xelrow, int cols, xelval maxval, int format, int forceplain )
+\Se
+Write a row from a portable anymap.
+\Ss
+void pnm\_writepnm( FILE* fp, xel** xels, int cols, int rows, xelval maxval, int format, int forceplain )
+\Se
+Write the header and all data for a portable anymap.
+This function combines
+{\bf pnm\_writepnminit()}
+and
+{\bf pnm\_writepnmrow()}{\rm .}
+%.SS FORMAT PROMOTION
+\Ss
+void pnm\_promoteformatrow( xel* xelrow, int cols, xelval maxval, int format, xelval newmaxval, int newformat )
+\Se
+Promote a row of xels from one maxval and format to a new set.
+Used when combining multiple anymaps of different types - just
+take the max of the maxvals and the max of the formats, and
+promote them all to that.
+\Ss
+void pnm\_promoteformat( xel** xels, int cols, int rows, xelval maxval, int format, xelval newmaxval, int newformat )
+\Se
+Promote an entire anymap.
+%.SS XEL MANIPULATION
+\Ss
+xel pnm\_whitexel( xelval maxval, int format )
+xel pnm\_blackxel( xelval maxval, int format )
+\Se
+Return a white or black xel for the given maxval and format.
+\Ss
+void pnm\_invertxel( xel* x, xelval maxval, int format )
+\Se
+Invert an xel.
+\Ss
+xel pnm\_backgroundxelrow( xel* xelrow, int cols, xelval maxval, int format )
+\Se
+Figure out an appropriate background xel based on this row.
+\Ss
+xel pnm\_backgroundxel( xel** xels, int cols, int rows, xelval maxval, int format )
+\Se
+Figure out a background xel based on an entire anymap.
+This can do a slightly better job than
+{\bf pnm\_backgroundxelrow()}{\rm .}
+\shead{SEE ALSO}
+pbm(3), pgm(3), ppm(3)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Tony Hansen and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: libpnm.3
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:12 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: libppm.3
+
+\newpage
+%--------------------------------------------------
+% start of input file: libppm.3
+%
+\phead{libppm}{3}{}{}{}
+
+\shead{NAME}
+libppm - functions to support portable pixmap programs
+\shead{SYNOPSIS}
+\def\Ss{\par\vspace{1.0\baselineskip}%.ft CW
+\nofill
+}
+\def\Se{\fill
+%.ft P
+\par\vspace{1.0\baselineskip}}
+\Ss
+\#include $<$ppm.h$>$
+cc ... libppm.a libpgm.a libpbm.a
+\Se
+\shead{DESCRIPTION}
+%.SS TYPES AND CONSTANTS
+\Ss
+typedef ... pixel;
+typedef ... pixval;
+\#define PPM\_MAXMAXVAL ...
+extern pixval ppm\_pbmmaxval;
+\Se
+Each
+{\bf pixel}
+contains three
+{\bf pixval}{\rm s,}
+each of which should contain only the values between
+{\bf 0}
+and
+{\bf PPM\_MAXMAXVAL}{\rm .}
+{\bf ppm\_pbmmaxval}
+is the maxval used when a PPM program reads a PBM file.
+Normally it is 1; however, for some programs, a larger value gives better
+results.
+\Ss
+\#define PPM\_FORMAT ...
+\#define RPPM\_FORMAT ...
+\#define PPM\_TYPE PPM\_FORMAT
+int PPM\_FORMAT\_TYPE( int format )
+\Se
+For distinguishing different file formats and types.
+\Ss
+pixval PPM\_GETR( pixel p )
+pixval PPM\_GETG( pixel p )
+pixval PPM\_GETB( pixel p )
+\Se
+These three macros retrieve the red, green or blue value from the given
+pixel.
+\Ss
+void PPM\_ASSIGN( pixel p, pixval red, pixval grn, pixval blu )
+\Se
+This macro assigns the given red, green and blue values to the pixel.
+\Ss
+int PPM\_EQUAL( pixel p, pixel q )
+\Se
+This macro checks two pixels for equality.
+\Ss
+void PPM\_DEPTH( pixel newp, pixel p, pixval oldmaxval, pixval newmaxval )
+\Se
+This macro scales the colors of pixel
+{\bf p}
+according the old and new maximum values and assigns the new values to
+{\bf newp}{\rm .}
+It is intended to make writing ppmtowhatever easier.
+\Ss
+float PPM\_LUMIN( pixel p )
+\Se
+This macro determines the luminance of the pixel
+{\bf p}{\rm .}
+%.SS MEMORY MANAGEMENT
+\Ss
+pixel** ppm\_allocarray( int cols, int rows )
+\Se
+Allocate an array of pixels.
+\Ss
+pixel* ppm\_allocrow( int cols )
+\Se
+Allocate a row of the given number of pixels.
+\Ss
+void ppm\_freearray( pixel** pixels, int rows )
+\Se
+Free the array allocated with
+{\bf ppm\_allocarray()}
+containing the given number
+of rows.
+\Ss
+void pbm\_freerow( pixel* pixelrow )
+\Se
+Free a row of pixels.
+%.SS READING PBM FILES
+\Ss
+void ppm\_readppminit( FILE* fp, int* colsP, int* rowsP, pixval* maxvalP, int* formatP )
+\Se
+Read the header from a PPM file, filling in the rows, cols, maxval and format
+variables.
+\Ss
+void ppm\_readppmrow( FILE* fp, pixel* pixelrow, int cols, pixval maxval, int format )
+\Se
+Read a row of pixels into the pixelrow array.
+Format, cols, and maxval were filled in by
+{\bf ppm\_readppminit()}{\rm .}
+\Ss
+pixel** ppm\_readppm( FILE* fp, int* colsP, int* rowsP, pixval* maxvalP )
+\Se
+Read an entire pixmap file into memory, returning the allocated array and
+filling in the rows, cols and maxval variables.
+This function combines
+{\bf ppm\_readppminit()}{\rm ,}
+{\bf ppm\_allocarray()}
+and
+{\bf ppm\_readppmrow()}{\rm .}
+%.SS WRITING FILES
+\Ss
+void ppm\_writeppminit( FILE* fp, int cols, int rows, pixval maxval, int forceplain )
+\Se
+Write the header for a portable pixmap file.
+The forceplain flag forces a plain-format file to be written, as opposed
+to a raw-format one.
+\Ss
+void ppm\_writeppmrow( FILE* fp, pixel* pixelrow, int cols, pixval maxval, int forceplain )
+\Se
+Write a row from a portable pixmap.
+\Ss
+void ppm\_writeppm( FILE* fp, pixel** pixels, int cols, int rows, pixval maxval, int forceplain )
+\Se
+Write the header and all data for a portable pixmap.
+This function combines
+{\bf ppm\_writeppminit()}
+and
+{\bf ppm\_writeppmrow()}{\rm .}
+%.SS COLOR NAMES
+\Ss
+pixel ppm\_parsecolor( char* colorname, pixval maxval )
+\Se
+Parses an ASCII color name into a pixel.
+The color can be specified in three ways.  One, as a name, assuming
+that a pointer to an X11-style color names file was compiled in.  Two,
+as an X11-style hexadecimal number: \#rgb, \#rrggbb, \#rrrgggbbb, or
+\#rrrrggggbbbb.  Three, as a triplet of decimal floating point numbers
+separated by commas: r.r,g.g,b.b.
+\Ss
+char* ppm\_colorname( pixel* colorP, pixval maxval, int hexok )
+\Se
+Returns a pointer to a string describing the given color.
+If the X11 color names file is available and the color appears in
+it, that name is returned.
+Otherwise, if the hexok flag is true then a hexadecimal colorspec
+is returned; if hexok is false and the X11 color names file is
+available, then the closest matching color is returned;
+otherwise, it's an error.
+\shead{SEE ALSO}
+pbm(3), pgm(3)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Tony Hansen and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: libppm.3
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:25 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: lispmtopgm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: lispmtopgm.1
+%
+\phead{lispmtopgm}{1}{06 March 1990}{}{}
+
+%.IX lispmtopgm
+\shead{NAME}
+lispmtopgm - convert a Lisp Machine bitmap file into pgm format
+\shead{SYNOPSIS}
+{\bf lispmtopgm}
+{\rm [}{\it lispmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a Lisp Machine bitmap as input.
+%.IX "Lisp Machine bitmap"
+Produces a portable graymap as output.
+\par
+This is the file format written by the tv:write-bit-array-file function on
+TI Explorer and Symbolics lisp machines.
+\par
+Multi-plane bitmaps on lisp machines are color; but the lispm image file
+format does not include a color map, so we must treat it as a graymap 
+instead.  This is unfortunate.
+\shead{SEE ALSO}
+pgmtolispm(1), pgm(5)
+\shead{BUGS}
+The Lispm bitmap file format is a bit quirky;  Usually the image in the file
+has its width rounded up to the next higher multiple of 32, but not always.
+If the width is not a multiple of 32, we don't deal with it properly, but 
+because of the Lispm microcode, such arrays are probably not image data 
+anyway.
+\par
+Also, the lispm code for saving bitmaps has a bug, in that if you are writing a
+bitmap which is not mod32 across, the file may be up to 7 bits too short!  They
+round down instead of up, and we don't handle this bug gracefully.
+\par
+No color.
+\shead{AUTHOR}
+\copyright 1991 by Jamie Zawinski and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: lispmtopgm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:07:57 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: macptopbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: macptopbm.1
+%
+\phead{macptopbm}{1}{29 March 1989}{}{}
+
+%.IX macptopbm
+\shead{NAME}
+macptopbm - convert a MacPaint file into a portable bitmap
+\shead{SYNOPSIS}
+{\bf macptopbm}
+{\rm [}{\bf -extraskip}
+{\it N}{\rm ]}
+{\rm [}{\it macpfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a MacPaint file as input.
+%.IX MacPaint
+%.IX Macintosh
+Produces a portable bitmap as output.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -extraskip}}
+\item[{{\bf -extraskip}}]
+This flag is to get around a problem with some methods
+of transferring files from the Mac world to the Unix world.
+Most of these methods leave the Mac files alone, but a few of
+them add the ``finderinfo'' data onto the front of the Unix file.
+This means an extra 128 bytes to skip over when reading the file.
+The symptom to watch for is that the resulting PBM file looks shifted
+to one side.
+If you get this, try
+{\bf -extraskip}
+128, and if that still doesn't look right try another value.
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+picttoppm(1), pbmtomacp(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1988 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+The MacPaint-reading code is \copyright 1987 by Patrick J. Naughton
+(naughton@wind.sun.com).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted,
+% provided that the above copyright notice appear in all copies and that
+% both that copyright notice and this permission notice appear in
+% supporting documentation. 
+%
+% end of input file: macptopbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:07:58 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: mgrtopbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: mgrtopbm.1
+%
+\phead{mgrtopbm}{1}{24 January 1989}{}{}
+
+%.IX mgrtopbm
+\shead{NAME}
+mgrtopbm - convert a MGR bitmap into a portable bitmap
+\shead{SYNOPSIS}
+{\bf mgrtopbm}
+{\rm [}{\it mgrfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a MGR bitmap as input.
+%.IX MGR
+Produces a portable bitmap as output.
+\shead{SEE ALSO}
+pbmtomgr(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: mgrtopbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:42 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: mtvtoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: mtvtoppm.1
+%
+\phead{mtvtoppm}{1}{02 February 1989}{}{}
+
+%.IX mtvtoppm
+\shead{NAME}
+mtvtoppm - convert output from the MTV or PRT ray tracers into a portable pixmap
+\shead{SYNOPSIS}
+{\bf mtvtoppm}
+{\rm [}{\it mtvfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads an input file from Mark VanDeWettering's MTV ray tracer.
+%.IX "MTV raytracer"
+Produces a portable pixmap as output.
+\par
+The PRT raytracer also produces this format.
+%.IX "PRT raytracer"
+\shead{SEE ALSO}
+ppm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: mtvtoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:20 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbm.5
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbm.5
+%
+\phead{pbm}{5}{27 September 1991}{}{}
+
+\shead{NAME}
+pbm - portable bitmap file format
+\shead{DESCRIPTION}
+The portable bitmap format is a lowest common denominator monochrome
+file format.
+%.IX "PBM file format"
+It was originally designed to make it reasonable to mail bitmaps
+between different types of machines using the typical stupid network
+mailers we have today.
+Now it serves as the common language of a large family of bitmap
+conversion filters.
+The definition is as follows:
+\begin{IPlist}
+\IPitem{{-}}
+A ``magic number'' for identifying the file type.
+A pbm file's magic number is the two characters ``P1''.
+%.IX "magic numbers"
+\IPitem{{-}}
+Whitespace (blanks, TABs, CRs, LFs).
+\IPitem{{-}}
+A width, formatted as ASCII characters in decimal.
+\IPitem{{-}}
+Whitespace.
+\IPitem{{-}}
+A height, again in ASCII decimal.
+\IPitem{{-}}
+Whitespace.
+\IPitem{{-}}
+Width * height bits, each either '1' or '0', starting at the top-left
+corner of the bitmap, proceeding in normal English reading order.
+\IPitem{{-}}
+The character '1' means black, '0' means white.
+\IPitem{{-}}
+Whitespace in the bits section is ignored.
+\IPitem{{-}}
+Characters from a ``\#'' to the next end-of-line are ignored (comments).
+\IPitem{{-}}
+No line should be longer than 70 characters.
+\end{IPlist}
+
+\par
+Here is an example of a small bitmap in this format:
+\nofill
+P1
+\# feep.pbm
+24 7
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0
+0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
+0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
+0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
+0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+\fill
+\par
+Programs that read this format should be as lenient as possible,
+accepting anything that looks remotely like a bitmap.
+\par
+There is also a variant on the format, available
+by setting the RAWBITS option at compile time.  This variant is
+%.IX RAWBITS
+different in the following ways:
+\begin{IPlist}
+\IPitem{{-}}
+The ``magic number'' is ``P4'' instead of ``P1''.
+\IPitem{{-}}
+The bits are stored eight per byte, high bit first low bit last.
+\IPitem{{-}}
+No whitespace is allowed in the bits section, and only a single character
+of whitespace (typically a newline) is allowed after the height.
+\IPitem{{-}}
+The files are eight times smaller and many times faster to read and write.
+\end{IPlist}
+
+\shead{SEE ALSO}
+atktopbm(1), brushtopbm(1), cmuwmtopbm(1), g3topbm(1),
+gemtopbm(1), icontopbm(1),
+macptopbm(1), mgrtopbm(1), pi3topbm(1), xbmtopbm(1),
+ybmtopbm(1),
+pbmto10x(1), pnmtoascii(1), pbmtoatk(1), pbmtobbnbg(1),
+pbmtocmuwm(1), pbmtoepson(1),
+pbmtog3(1), pbmtogem(1), pbmtogo(1), pbmtoicon(1), pbmtolj(1),
+pbmtomacp(1), pbmtomgr(1), pbmtopi3(1), pbmtoplot(1), pbmtoptx(1),
+pbmtox10bm(1), pbmtoxbm(1), pbmtoybm(1),
+pbmtozinc(1),
+pbmlife(1), pbmmake(1), pbmmask(1), pbmreduce(1),
+pbmtext(1), pbmupc(1),
+pnm(5), pgm(5), ppm(5)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbm.5
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:16 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmclean.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmclean.1
+%
+\phead{pbmclean}{12 Dec 1990}{}{}{}
+
+\shead{NAME}
+pbmclean - flip isolated pixels in portable bitmap
+\shead{SYNOPSIS}
+pbmclean [-connect] [pbmfile]
+\shead{DESCRIPTION}
+Reads a portable bitmap as input. Outputs a portable bitmap with every 
+pixel which has less than %
+\it connect %
+\rm identical neighbours inverted.
+Pbmclean can be used to clean up ``snow'' on bitmap images.
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+\copyright 1990 by Angus Duggan.
+\copyright 1989 by Jef Poskanzer.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.  This software is provided "as is" without express or
+implied warranty.
+%
+% end of input file: pbmclean.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:07:58 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmlife.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmlife.1
+%
+\phead{pbmlife}{1}{21 February 1991}{}{}
+
+%.IX pbmlife
+\shead{NAME}
+pbmlife - apply Conway's rules of Life to a portable bitmap
+\shead{SYNOPSIS}
+{\bf pbmlife}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Applies the rules of Life to it for one generation,
+%.IX Life
+and produces a portable bitmap as output.
+\par
+A white pixel in the image is interpreted as a live beastie, and a
+black pixel as an empty space.
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+\copyright 1988, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmlife.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:07:59 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmmake.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmmake.1
+%
+\phead{pbmmake}{1}{22 February 1989}{}{}
+
+%.IX pbmmake
+\shead{NAME}
+pbmmake - create a blank bitmap of a specified size
+\shead{SYNOPSIS}
+{\bf pbmmake}
+{\rm [}{\bf -white}{\rm $|$}{\bf -black}{\rm $|$}{\bf -gray}
+{\rm ]}
+{\it width height}
+\shead{DESCRIPTION}
+Produces a portable bitmap of the specified width and height.
+%.IX "generating bitmaps"
+The color defaults to white.
+\shead{OPTIONS}
+\par
+In addition to the usual
+{\bf -white}
+and
+{\bf -black}{\rm ,}
+this program implements
+{\bf -gray}{\rm .}
+This gives a simple 50\% gray pattern with 1's and 0's alternating.
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pbm(5), ppmmake(1)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmmake.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:00 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmmask.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmmask.1
+%
+\phead{pbmmask}{1}{08 August 1989}{}{}
+
+%.IX pbmmask
+\shead{NAME}
+pbmmask - create a mask bitmap from a regular bitmap
+\shead{SYNOPSIS}
+{\bf pbmmask}
+{\rm [}{\bf -expand}{\rm ]}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Creates a corresponding mask bitmap and writes it out.
+\par
+The color to be interpreted as ``background'' is determined automatically.
+Regardless of which color is background, the mask will be white where
+the background is and black where the figure is.
+\par
+This lets you do a masked paste like this, for objects with a black background:
+\nofill
+    pbmmask obj $>$ objmask
+    pnmpaste $<$ dest -and objmask $<$x$>$ $<$y$>$ $|$ pnmpaste -or obj $<$x$>$ $<$y$>$
+\fill
+%.IX pnmpaste
+For objects with a white background, you can either invert them or
+add a step:
+\nofill
+    pbmmask obj $>$ objmask
+    pnminvert objmask $|$ pnmpaste -and obj 0 0 $>$ blackback
+    pnmpaste $<$ dest -and objmask $<$x$>$ $<$y$>$ $|$ pnmpaste -or blackback $<$x$>$ $<$y$>$
+\fill
+%.IX pnminvert
+Note that this three-step version works for objects with black backgrounds
+too, if you don't care about the wasted time.
+\par
+You can also use masks with graymaps and pixmaps, using the
+{\it pnmarith}
+tool.  For instance:
+\nofill
+    ppmtopgm obj.ppm $|$ pgmtopbm -threshold $|$ pbmmask $>$ objmask.pbm
+    pnmarith -multiply dest.ppm objmask.pbm $>$ t1.ppm
+    pnminvert objmask.pbm $|$ pnmarith -multiply obj.ppm - $>$ t2.ppm
+    pnmarith -add t1.ppm t2.ppm
+\fill
+%.IX pnmarith
+An interesting variation on this is to pipe the mask through the
+{\it pnmsmooth}
+%.IX pnmsmooth
+script before using it.  This makes the boundary between the two images less
+sharp.
+%.OPTIONS
+\begin{TPlist}{{\bf -expand}}
+\item[{{\bf -expand}}]
+Expands the mask by one pixel out from the image.
+This is useful if you want a little white border around your image.
+(A better solution might be to turn the
+{\it pbmlife}
+tool into a general cellular automaton tool...)
+\end{TPlist}
+
+\shead{SEE ALSO}
+pnmpaste(1), pnminvert(1), pbm(5), pnmarith(1), pnmsmooth(1)
+\shead{AUTHOR}
+\copyright 1988 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmmask.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:16 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmpscale.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmpscale.1
+%
+\phead{pbmpscale}{12 Dec 1990}{}{}{}
+
+\shead{NAME}
+pbmpscale - enlarge a portable bitmap with edge smoothing
+\shead{SYNOPSIS}
+pbmpscale N [ pbmfile ]
+\shead{DESCRIPTION}
+Reads a portable bitmap as input, and outputs a portable bitmap
+enlarged N times. Enlargement is done by pixel replication,
+with some additional smoothing of corners and edges.
+\shead{SEE ALSO}
+pnmenlarge(1), ppmscale(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1990 by Angus Duggan.
+\copyright 1989 by Jef Poskanzer.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.  This software is provided "as is" without express or
+implied warranty.
+\shead{NOTES}
+pbmpscale works best for enlargements of 2. Enlargements greater than 2
+should be done by as many enlargements of 2 as possible, followed by an
+enlargement by the remaining factor.
+%
+% end of input file: pbmpscale.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:00 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmreduce.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmreduce.1
+%
+\phead{pbmreduce}{1}{02 August 1989}{}{}
+
+%.IX pbmreduce
+\shead{NAME}
+pbmreduce - read a portable bitmap and reduce it N times
+\shead{SYNOPSIS}
+{\bf pbmreduce}
+{\rm [}{\bf -floyd}{\rm $|$}{\bf -fs}{\rm $|$}{\bf -threshold}
+{\rm ]}
+{\rm [}{\bf -value}
+{\it val}{\rm ]}
+{\it N}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Reduces it by a factor of
+{\it N}{\rm ,}
+and produces a portable bitmap as output.
+%.IX shrinking
+\par
+{\it pbmreduce}
+duplicates a lot of the functionality of
+{\it pgmtopbm;}
+%.IX pgmtopbm
+you could do something like
+{\bf pnmscale $|$ pgmtopbm,}
+%.IX pnmscale
+but
+{\it pbmreduce}
+is a lot faster.
+\par
+{\it pbmreduce}
+can be used to ``re-halftone'' an image.
+%.IX halftoning
+Let's say you have a scanner that only produces black\&white, not
+grayscale, and it does a terrible job of halftoning (most b\&w scanners
+fit this description).
+One way to fix the halftoning is to scan at the highest possible
+resolution, say 300 dpi, and then reduce by a factor of three or
+so using
+{\it pbmreduce}{\rm .}
+You can even correct the brightness of an image, by using the
+{\bf -value}
+flag.
+\shead{OPTIONS}
+\par
+By default, the halftoning after the reduction is done via
+boustrophedonic Floyd-Steinberg error diffusion; however, the
+%.IX Floyd-Steinberg
+%.IX "error diffusion"
+{\bf -threshold}
+flag can be used to specify simple thresholding.  This gives better
+%.IX thresholding
+results when reducing line drawings.
+\par
+The
+{\bf -value}
+flag alters the thresholding value for all quantizations.
+It should be a real number between 0 and 1.
+Above 0.5 means darker images; below 0.5 means lighter.
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pnmenlarge(1), pnmscale(1), pgmtopbm(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1988 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmreduce.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:01 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtext.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtext.1
+%
+\phead{pbmtext}{1}{5 January 1991}{}{}
+
+%.IX pbmtext
+\shead{NAME}
+pbmtext - render text into a bitmap
+\shead{SYNOPSIS}
+{\bf pbmtext}
+{\rm [}{\bf -font}
+{\it fontfile}{\rm ]}
+{\rm [}{\it text}{\rm ]}
+\shead{DESCRIPTION}
+\par
+Takes the specified text, either a single line from the command
+line or multiple lines from standard input, and renders it
+into a bitmap.
+%.IX text
+\shead{OPTIONS}
+\par
+By default, pbmtext uses a built-in font.
+You can also specify your own font with the
+{\bf -font}
+flag.
+The
+{\it fontfile}
+is a pbm file, created in a very specific way.
+In your window system of choice, display the following text
+in the desired (fixed-width) font:
+\nofill
+
+    M ",/\^{}\_[`jpqy$|$ M
+
+    /  !"\#\$\%\&'()*+ /
+    $<$ ,-./01234567 $<$
+    $>$ 89:;$<$=$>$?@ABC $>$
+    @ DEFGHIJKLMNO @
+    \_ PQRSTUVWXYZ[ \_
+    \{ \bs ]\^{}\_`abcdefg \{
+    \} hijklmnopqrs \}
+    \~{} tuvwxyz\{$|$\}\~{}  \~{}
+
+    M ",/\^{}\_[`jpqy$|$ M
+
+\fill
+Do a screen grab or window dump of that text, using for instance
+{\it xwd}{\rm ,}
+{\it xgrabsc}{\rm ,}
+or
+{\it screendump}{\rm .}
+Convert the result into a pbm file.
+If necessary, use
+{\it pnmcut}
+to remove everything except the text.
+Finally, run it through
+{\it pnmcrop}
+%.IX pnmcrop
+to make sure the edges are right up against the text.
+{\it pbmtext}
+can figure out the sizes and spacings from that.
+\shead{SEE ALSO}
+pbm(5), pnmcut(1), pnmcrop(1)
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtext.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:02 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmto10x.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmto10x.1
+%
+\phead{pbmto10x}{1}{1 January 1990}{}{}
+
+%.IX pbmto10x
+\shead{NAME}
+pbmto10x - convert a portable bitmap into Gemini 10X printer graphics
+\shead{SYNOPSIS}
+{\bf pbmto10x}
+{\rm [}{\bf -h}{\rm ]}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces a file of Gemini 10X printer graphics as output.
+%.IX "Gemini 10X printer graphics"
+The 10x's printer codes are alleged to be similar to the Epson codes.
+%.IX Epson
+\par
+Note that there is no 10xtopbm tool - this transformation is one way.
+\shead{OPTIONS}
+\par
+The resolution is normally 60H by 72V.
+If the
+{\bf -h}
+flag is specified, resolution is 120H by 144V.
+You may find it useful to rotate landscape images before printing.
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+\copyright 1990 by Ken Yap.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmto10x.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:02 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtoascii.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtoascii.1
+%
+\phead{pbmtoascii}{1}{20 March 1992}{}{}
+
+\shead{NAME}
+pbmtoascii - convert a portable bitmap into ASCII graphics
+\shead{SYNOPSIS}
+{\bf pbmtoascii}
+{\rm [}{\bf -1x2}{\rm $|$}{\bf -2x4}{\rm ]}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces a somewhat crude ASCII graphic as output.
+\par
+Note that there is no asciitopbm tool - this transformation is one-way.
+\shead{OPTIONS}
+The
+{\bf -1x2}
+and
+{\bf -2x4}
+flags give you two alternate ways for the bits to get mapped to characters.
+With
+{\bf 1x2}{\rm ,}
+the default, each character represents a group of 1 bit across by 2 bits down.
+With
+{\bf -2x4}{\rm ,}
+each character represents 2 bits across by 4 bits down.
+With the 1x2 mode you can see the individual bits, so it's useful for
+previewing small bitmaps on a non-graphics terminal.
+The 2x4 mode lets you display larger bitmaps on a standard 80-column display,
+but it obscures bit-level details.
+2x4 mode is also good for displaying
+graymaps - ``pnmscale -width 158 $|$ pgmnorm $|$ pgmtopbm -thresh''
+should give good results.
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+\copyright 1988, 1992 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtoascii.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:03 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtoatk.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtoatk.1
+%
+\phead{pbmtoatk}{1}{26 September 1991}{}{}
+
+%.IX pbmtoatk
+\shead{NAME}
+pbmtoatk - convert portable bitmap to Andrew Toolkit raster object
+\shead{SYNOPSIS}
+{\bf pbmtoatk}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces a Andrew Toolkit raster object as output.
+%.IX "Andrew Toolkit raster object"
+\shead{SEE ALSO}
+atktopbm(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1991 by Bill Janssen.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtoatk.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:03 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtobbnbg.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtobbnbg.1
+%
+\phead{pbmtobg}{1}{16 May 1989}{}{}
+
+%.IX pbmtobbnbg
+\shead{NAME}
+pbmtobg - convert a portable bitmap into BitGraph graphics
+\shead{SYNOPSIS}
+{\bf pbmtobg}
+{\rm [}{\it rasterop}{\rm ]}
+{\rm [}{\it x}
+{\it y}{\rm ]}
+$<$
+{\it pbmfile}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces BBN BitGraph terminal Display Pixel Data (DPD) sequence as output.
+%.IX "BBN BitGraph"
+\par
+The rasterop can be specified on the command line.  If this is omitted, 3
+(replace) will be used.  A position in (x,y) coordinates can also be
+specified.  If both are given, the rasterop comes first.  The portable bitmap
+is always taken from the standard input.
+\par
+Note that there is no bgtopbm tool.
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+Copyright 1989 by Mike Parker.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtobbnbg.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:04 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtocmuwm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtocmuwm.1
+%
+\phead{pbmtocmuwm}{1}{15 April 1989}{}{}
+
+%.IX pbmtocmuwm
+\shead{NAME}
+pbmtocmuwm - convert a portable bitmap into a CMU window manager bitmap
+\shead{SYNOPSIS}
+{\bf pbmtocmuwm}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces a CMU window manager bitmap as output.
+%.IX "CMU window manager bitmap"
+\shead{SEE ALSO}
+cmuwmtopbm(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtocmuwm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:17 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtoepsi.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtoepsi.1
+%
+\phead{pbmtoepsi}{1}{1992}{}{}
+
+%.IX pbmtoepsi
+\shead{NAME}
+pbmtoepsi - convert a portable bitmap into an encapsulated PostScript
+style preview bitmap
+\shead{SYNOPSIS}
+{\bf pbmtoepsi}
+{\rm [}{\bf -bbonly}{\rm ]}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produce an encapsulated Postscript style bitmap as output. The output
+is not a stand alone postscript file, it is only a preview bitmap,
+which can be included in an encapsulated PostScript file.
+Note that there is no epsitopbm tool - this transformation is one way.
+
+This utility is a part of the pstoepsi tool by Doug Crabill
+(dgc@cs.purdue.edu).
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -bbonly}}
+\item[{{\bf -bbonly}}]
+Only create a boundary box, don't fill it with the image.
+\end{TPlist}
+
+\shead{SEE ALSO}
+pbm(5), pnmtops(1), psidtopgm(1)
+\shead{AUTHOR}
+\copyright 1988 Jef Poskanzer
+\nwl
+modified by Doug Crabill 1992.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtoepsi.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:04 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtoepson.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtoepson.1
+%
+\phead{pbmtoepson}{1}{4 January 1991}{}{}
+
+%.IX pbmtoepson
+\shead{NAME}
+pbmtoepson - convert a portable bitmap into Epson printer graphics
+\shead{SYNOPSIS}
+{\bf pbmtoepson}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces a file of Epson printer graphics as output.
+%.IX Epson
+\par
+Note that there is no epsontopbm tool - this transformation is one way.
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+\copyright 1991 by John Tiller (tiller@galois.msfc.nasa.gov) and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtoepson.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:05 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtog3.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtog3.1
+%
+\phead{pbmtog3}{1}{02 October 1989}{}{}
+
+%.IX pbmtog3
+\shead{NAME}
+pbmtog3 - convert a portable bitmap into a Group 3 fax file
+\shead{SYNOPSIS}
+{\bf pbmtog3}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as output.
+Produces a Group 3 fax file as input.
+%.IX "Group 3 fax"
+%.IX fax
+\shead{REFERENCES}
+The standard for Group 3 fax is defined in CCITT Recommendation T.4.
+\shead{BUGS}
+Probably.
+\shead{SEE ALSO}
+g3topbm(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1989 by Paul Haeberli (paul@manray.sgi.com).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtog3.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:05 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtogem.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtogem.1
+%
+\phead{pbmtogem}{1}{11 March 1990}{}{}
+
+%.IX pbmtogem
+\shead{NAME}
+pbmtogem - convert a portable bitmap into a GEM .img file
+\shead{SYNOPSIS}
+{\bf pbmtogem}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces a GEM .img file as output.
+%.IX GEM
+\shead{BUGS}
+It does not support compression of the data.
+\shead{SEE ALSO}
+gemtopbm(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1988 by David Beckemeyer (bdt!david) and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted,
+% provided that the above copyright notice appear in all copies and that
+% both that copyright notice and this permission notice appear in
+% supporting documentation.
+%
+% end of input file: pbmtogem.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:06 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtogo.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtogo.1
+%
+\phead{pbmtogo}{1}{24 November 1989}{}{}
+
+%.IX pbmtogo
+\shead{NAME}
+pbmtogo - convert a portable bitmap into compressed GraphOn graphics
+\shead{SYNOPSIS}
+{\bf pbmtogo}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces 2D compressed GraphOn graphics as output.
+%.IX GraphOn
+Be sure to set up your GraphOn with the following modes: 8 bits / no parity;
+obeys no XON/XOFF; NULs are accepted.  These are all on the Comm menu.
+Also, remember to turn off tty post processing.
+Note that there is no gotopbm tool.
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+\copyright 1988, 1989 by Jef Poskanzer, Michael Haberler, and Bo Thide'.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtogo.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:06 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtoicon.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtoicon.1
+%
+\phead{pbmtoicon}{1}{31 August 1988}{}{}
+
+%.IX pbmtoicon
+\shead{NAME}
+pbmtoicon - convert a portable bitmap into a Sun icon
+\shead{SYNOPSIS}
+{\bf pbmtoicon}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces a Sun icon as output.
+%.IX Sun
+%.IX "Sun icon format"
+\shead{SEE ALSO}
+icontopbm(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1988 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtoicon.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:07 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtolj.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtolj.1
+%
+\phead{pbmtolj}{1}{29 August 1988}{}{}
+
+%.IX pbmtolj
+\shead{NAME}
+pbmtolj - convert a portable bitmap into HP LaserJet format
+\shead{SYNOPSIS}
+{\bf pbmtolj}
+{\rm [}{\bf -resolution}
+{\it N}{\rm ]}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces HP LaserJet data as output.
+%.IX "HP LaserJet"
+\par
+Note that there is no ljtopbm tool.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -resolution}}
+\item[{{\bf -resolution}}]
+Specifies the resolution of the output device, in dpi.
+Typical values are 75, 100, 150, 300.
+The default is 75.
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+\copyright 1988 by Jef Poskanzer and Michael Haberler.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtolj.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:15 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtoln03.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtoln03.1
+%
+\phead{pbmtoln03}{1}{7 May 1993}{}{}
+
+%.IX pbmtoln03
+\shead{NAME}
+pbmtoln03 - convert protable bitmap to DEC LN03+ Sixel output
+\shead{SYNOPSIS}
+{\bf pbmtoln03}
+{\rm [}{\bf -rltbf}{\rm ]}
+{\it pbmfile}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+%.IX "DEC LN03+ Sixel"
+Produces a DEC LN03+ Sixel output file.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -l nn}}
+\item[{{\bf -l nn}}]
+Use ``nn'' as value for left margin (default 0).
+\item[{{\bf -r nn}}]
+Use ``nn'' as value for right margin (default 2400).
+\item[{{\bf -t nn}}]
+Use ``nn'' as value for top margin (default 0).
+\item[{{\bf -b nn}}]
+Use ``nn'' as value for bottom margin (default 3400).
+\item[{{\bf -f nn}}]
+Use ``nn'' as value for form length (default 3400).
+\end{TPlist}
+
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+Tim Cook, 26 Feb 1992
+%
+% end of input file: pbmtoln03.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:18 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtolps.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtolps.1
+%
+\phead{pbmtolps}{12 Dec 1990}{}{}{}
+
+\shead{NAME}
+pbmtolps - convert portable bitmap to PostScript
+\shead{SYNOPSIS}
+pbmtolps [ -dpi n ] [ pbmfile ]
+\shead{DESCRIPTION}
+Reads a portable bitmap as input, and outputs PostScript.
+The output Postscript uses lines instead of the image operator to
+generate a (device dependent) picture which will be imaged
+much faster.
+\par
+The Postscript path length is constrained to be less that 1000
+points so that no limits are overrun on the Apple Laserwriter
+and (presumably) no other printers.
+\shead{SEE ALSO}
+pgmtops(1), ppmtops(1), pbm(5)
+\shead{AUTHOR}
+\copyright George Phillips (phillips@cs.ubc.ca).
+%
+% end of input file: pbmtolps.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:08 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtomacp.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtomacp.1
+%
+\phead{pbmtomacp}{1}{31 August 1988}{}{}
+
+%.IX pbmtomacp
+\shead{NAME}
+pbmtomacp - convert a portable bitmap into a MacPaint file
+\shead{SYNOPSIS}
+{\bf pbmtomacp}
+{\rm [}{\bf -l}
+{\it left}{\rm ]}
+{\rm [}{\bf -r}
+{\it right}{\rm ]}
+{\rm [}{\bf -b}
+{\it bottom}{\rm ]}
+{\rm [}{\bf -t}
+{\it top}{\rm ]}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+If no input-file is given, standard input is assumed.
+Produces a MacPaint file as output.
+%.IX MacPaint
+%.IX Macintosh
+\par
+The generated file is only the data fork of a picture.
+You will need a program such as
+{\it mcvert}
+to generate a Macbinary or a BinHex file that contains the necessary
+information to identify the file as a PNTG file to MacOS.
+\shead{OPTIONS}
+\par
+Left, right, bottom \& top let you define a square into the pbm file,
+that must be converted.
+Default is the whole file.
+If the file is too large for a MacPaint-file, the bitmap is cut to fit
+from ( left, top ).
+\shead{BUGS}
+The source code contains comments in a language other than English.
+\shead{SEE ALSO}
+ppmtopict(1), macptopbm(1), pbm(5), mcvert(1)
+\shead{AUTHOR}
+\copyright 1988 by Douwe van der Schaaf ($\ldots$!mcvax!uvapsy!vdschaaf).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtomacp.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:08 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtomgr.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtomgr.1
+%
+\phead{pbmtomgr}{1}{24 January 1989}{}{}
+
+%.IX pbmtomgr
+\shead{NAME}
+pbmtomgr - convert a portable bitmap into a MGR bitmap
+\shead{SYNOPSIS}
+{\bf pbmtomgr}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces a MGR bitmap as output.
+%.IX MGR
+\shead{SEE ALSO}
+mgrtopbm(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtomgr.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:36 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtopgm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtopgm.1
+%
+\phead{pbmtopgm}{12 Dec 1990}{}{}{}
+
+\shead{NAME}
+pbmtopgm - convert portable bitmap to portable graymap by averaging areas
+\shead{SYNOPSIS}
+pbmtopgm $<$width$>$ $<$height$>$ [pbmfile]
+\shead{DESCRIPTION}
+Reads a portable bitmap as input. Outputs a portable graymap created by
+averaging the number of pixels within a sample area of
+%
+\it width %
+\rm by %
+\it height %
+\rm around each point. Pbmtopgm is similar to a
+special case of ppmconvol. A ppmsmooth step may be needed after pbmtopgm.
+\par
+Pbmtopgm has the effect of anti-aliasing bitmaps which contain distinct
+line features.
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+\copyright 1990 by Angus Duggan.
+\copyright 1989 by Jef Poskanzer.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.  This software is provided "as is" without express or
+implied warranty.
+\shead{NOTES}
+Pbmtopgm works best with odd sample width and heights.
+%
+% end of input file: pbmtopgm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:09 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtopi3.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtopi3.1
+%
+\phead{pbmtopi3}{1}{11 March 1990}{}{}
+
+%.IX pbmtopi3
+\shead{NAME}
+pbmtopi3 - convert a portable bitmap into an Atari Degas .pi3 file 
+\shead{SYNOPSIS}
+{\bf pbmtopi3}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces an Atari Degas .pi3 file as output.
+%.IX Atari
+%.IX "Degas .pi3"
+\shead{SEE ALSO}
+pi3topbm(1), pbm(5), ppmtopi1(1), pi1toppm(1)
+\shead{AUTHOR}
+\copyright 1988 by David Beckemeyer (bdt!david) and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted,
+% provided that the above copyright notice appear in all copies and that
+% both that copyright notice and this permission notice appear in
+% supporting documentation.
+%
+% end of input file: pbmtopi3.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:18 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtopk.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtopk.1
+%
+\phead{pbmtopk}{1}{6 August 1990}{}{}
+
+\shead{NAME}
+pbmtopk - convert a portable bitmap into a packed (PK) format font
+\shead{SYNOPSIS}
+pbmtopk pkfile[.pk] tfmfile[.tfm] resolution [-s designsize] [-p num param...]
+[-C codingscheme] [-F family] [-f optfile] [-c num]
+[-W width] [-H height] [-D depth]
+[-I ital] [-h horiz] [-v vert] [-x xoff] [-y yoff] [pbmfile]...
+\shead{DESCRIPTION}
+Reads portable bitmaps as input, and produces a packed (PK) font file and a
+TFM (TeX font metric) file as output. The resolution parameter indicates the
+resolution of the font, in dots per inch. If the filename ``-'' is used for any
+of the filenames, the standard input stream (or standard output where
+appropriate) will be used.
+\shead{OPTIONS}
+\begin{IPlist}
+\IPitem{{-s\ designsize}}
+Sets the design size of the font, in TeX's points (72.27pt to the inch). The
+default design size is 1. The TFM parameters are given as multiples of the
+design size.
+\IPitem{{-p\ num\ param...}}
+Sets the first num font parameters for the font. The first seven parameters
+are the slant,
+interword spacing, interword space stretchability, interword space
+shrinkability, x-height, quad width, and post-sentence extra space of the
+font. Math and symbol fonts may have more parameters; see The TeXbook for a
+list of these. Reasonable default values are chosen for parameters which are
+not specified.
+\IPitem{{-C\ codingscheme}}
+Sets the coding scheme comment in the TFM file.
+\IPitem{{-F\ family}}
+Sets the font family comment in the TFM file.
+\IPitem{{-f\ optfile}}
+Reads the file optfile, which should contain a lines of the form:
+\par\vspace{1.0\baselineskip}
+\nofill
+\raggedright
+   filename xoff yoff horiz vert width height depth ital
+\fill
+%.ad
+\par\vspace{1.0\baselineskip}
+The pbm files specified by the filename parameters are inserted consecutively
+in the font with the specified attributes. If any of the attributes are
+omitted, or replaced with ``*'', a default value will be calculated from the
+size of the bitmap. The settings of the -W, -H, -D, -I, -h, -v, -x, and -y
+options do not affected characters created in this way.
+The character number can be changed by including a line starting with
+``='',
+followed by the new number.
+Lines beginning with
+``\%'' or ``\#'' are ignored.
+\IPitem{{-c\ num}}
+Sets the character number of the next bitmap encountered to num.
+\IPitem{{-W\ width}}
+Sets the TFM width of the next character to width (in design size multiples).
+\IPitem{{-H\ height}}
+Sets the TFM height of the next character to height (in design size multiples).
+\IPitem{{-D\ depth}}
+Sets the TFM depth of the next character to depth (in design size multiples).
+\IPitem{{-I\ ital}}
+Sets the italic correction of the next character to
+ital (in design size multiples).
+\IPitem{{-h\ horiz}}
+Sets the horizontal escapement of the next character to horiz (in pixels).
+\IPitem{{-v\ vert}}
+Sets the vertical escapement of the next character to vert (in pixels).
+\IPitem{{-x\ xoff}}
+Sets the horizontal offset of the next character to xoff (in pixels).
+\IPitem{{-y\ yoff}}
+Sets the vertical offset of the next character to yoff (in pixels, from the
+top row).
+\end{IPlist}
+
+\shead{SEE ALSO}
+pktopbm(1), pbm(5)
+\shead{AUTHOR}
+Adapted from Tom Rokicki's pxtopk by Angus Duggan (ajcd@dcs.ed.ac.uk).
+
+%
+% end of input file: pbmtopk.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:09 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtoplot.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtoplot.1
+%
+\phead{pbmtoplot}{1}{1 September 1990}{}{}
+
+%.IX pbmtoplot
+\shead{NAME}
+pbmtoplot - convert a portable bitmap into a Unix plot(5) file
+\shead{SYNOPSIS}
+{\bf pbmtoplot}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces a Unix
+{\it plot}
+file.
+%.IX plot
+\par
+Note that there is no plottopbm tool - this transformation is one-way.
+\shead{SEE ALSO}
+pbm(5), plot(5)
+\shead{AUTHOR}
+\copyright 1990 by Arthur David Olson.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtoplot.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:10 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtoptx.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtoptx.1
+%
+\phead{pbmtoptx}{1}{31 August 1988}{}{}
+
+%.IX pbmtoptx
+\shead{NAME}
+pbmtoptx - convert a portable bitmap into Printronix printer graphics
+\shead{SYNOPSIS}
+{\bf pbmtoptx}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces a file of Printronix printer graphics as output.
+%.IX Printronix
+\par
+Note that there is no ptxtopbm tool - this transformation is one way.
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+\copyright 1988 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtoptx.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:10 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtox10bm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtox10bm.1
+%
+\phead{pbmtox10bm}{1}{31 August 1988}{}{}
+
+%.IX pbmtox10bm
+\shead{NAME}
+pbmtox10bm - convert a portable bitmap into an X10 bitmap
+\shead{SYNOPSIS}
+{\bf pbmtox10bm}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces an X10 bitmap as output.
+This older format is maintained for compatibility.
+%.IX "X bitmap"
+%.IX "X window system"
+\par
+Note that there is no x10bmtopbm tool, because
+{\it xbmtopbm}
+can read both X11 and X10 bitmaps.
+\shead{SEE ALSO}
+pbmtoxbm(1), xbmtopbm(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1988 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtox10bm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:11 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtoxbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtoxbm.1
+%
+\phead{pbmtoxbm}{1}{31 August 1988}{}{}
+
+%.IX pbmtoxbm
+\shead{NAME}
+pbmtoxbm - convert a portable bitmap into an X11 bitmap
+\shead{SYNOPSIS}
+{\bf pbmtoxbm}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces an X11 bitmap as output.
+%.IX "X bitmap"
+%.IX "X window system"
+\shead{SEE ALSO}
+pbmtox10bm(1), xbmtopbm(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1988 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtoxbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:12 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtoybm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtoybm.1
+%
+\phead{pbmtoybm}{1}{06 March 1990}{}{}
+
+%.IX pbmtoybm
+\shead{NAME}
+pgmtoybm - convert a portable bitmap into a Bennet Yee ``face'' file
+\shead{SYNOPSIS}
+{\bf pbmtoybm}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces as output a file acceptable to the
+{\it face}
+and
+{\it xbm}
+programs by Bennet Yee (bsy+@cs.cmu.edu).
+%.IX face
+\shead{SEE ALSO}
+ybmtopbm(1), pbm(5), face(1), face(5), xbm(1)
+\shead{AUTHOR}
+\copyright 1991 by Jamie Zawinski and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmtoybm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:12 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmtozinc.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmtozinc.1
+%
+\phead{pbmtozinc}{l}{02 November 1990}{}{}
+
+%.IX pbmtozinc
+\shead{NAME}
+pbmtozinc - convert a portable bitmap into a Zinc bitmap
+\shead{SYNOPSIS}
+{\bf pbmtozinc}
+{\rm [}{\it pbmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable bitmap as input.
+Produces a bitmap in the format used by the Zinc Interface Library
+(ZIL) Version 1.0 as output.
+%.IX "Zinc Interface Library"
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+\copyright 1988 by James Darrell McCauley (jdm5548@diamond.tamu.edu)
+and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% Zinc and Zinc Interface Library are trademarks of
+% Zinc Software Inc., Pleasant Grove, Utah.
+%
+% end of input file: pbmtozinc.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:13 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pbmupc.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pbmupc.1
+%
+\phead{pbmupc}{1}{14 March 1989}{}{}
+
+%.IX pbmupc
+\shead{NAME}
+pbmupc - create a Universal Product Code bitmap
+\shead{SYNOPSIS}
+{\bf pbmupc}
+{\rm [}{\bf -s1}{\rm $|$}{\bf -s2}{\rm ]}
+{\it type manufac product}
+\shead{DESCRIPTION}
+Generates a Universal Product Code symbol.
+%.IX "Universal Product Code"
+The three arguments are: a one digit product type, a five digit
+manufacturer code, and a five digit product code.
+For example, ``0 72890 00011'' is the code for Heineken.
+%.IX Heineken
+\par
+As presently configured,
+{\it pbmupc}
+produces a bitmap 230 bits wide and 175 bits high.
+The size can be altered by changing the defines at the beginning of
+the program, or by running the output through
+{\it pnmenlarge}
+or
+{\it pnmscale}{\rm .}
+\shead{OPTIONS}
+\par
+The
+{\bf -s1}
+and
+{\bf -s2}
+flags select the style of UPC to generate.
+The default,
+{\bf -s1}{\rm ,}
+looks more or less like this:
+\nofill
+ $|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$
+ $|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$
+ $|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$
+ $|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$
+0$|$$|$12345$|$$|$67890$|$$|$5
+\fill
+The other style,
+{\bf -s2}{\rm ,}
+puts the product type digit higher up, and
+doesn't display the checksum digit:
+\nofill
+ $|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$
+ $|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$
+0$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$
+ $|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$$|$
+ $|$$|$12345$|$$|$67890$|$$|$
+\fill
+\shead{SEE ALSO}
+pbm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pbmupc.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:42 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pcxtoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pcxtoppm.1
+%
+\phead{pcxtoppm}{1}{9 April 1990}{}{}
+
+%.IX pcxtoppm
+\shead{NAME}
+pcxtoppm - convert a PCX file into a portable pixmap
+\shead{SYNOPSIS}
+{\bf pcxtoppm}
+{\rm [}{\it pcxfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a PCX file as input.
+%.IX PCX
+Produces a portable pixmap as output.
+\shead{SEE ALSO}
+ppmtopcx(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1990 by Michael Davidson.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pcxtoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:38 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgm.5
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgm.5
+%
+\phead{pgm}{5}{12 November 1991}{}{}
+
+\shead{NAME}
+pgm - portable graymap file format
+\shead{DESCRIPTION}
+The portable graymap format is a lowest common denominator grayscale
+file format.
+%.IX "PGM file format"
+The definition is as follows:
+\begin{IPlist}
+\IPitem{{-}}
+A ``magic number'' for identifying the file type.
+A pgm file's magic number is the two characters ``P2''.
+%.IX "magic numbers"
+\IPitem{{-}}
+Whitespace (blanks, TABs, CRs, LFs).
+\IPitem{{-}}
+A width, formatted as ASCII characters in decimal.
+\IPitem{{-}}
+Whitespace.
+\IPitem{{-}}
+A height, again in ASCII decimal.
+\IPitem{{-}}
+Whitespace.
+\IPitem{{-}}
+The maximum gray value, again in ASCII decimal.
+\IPitem{{-}}
+Whitespace.
+\IPitem{{-}}
+Width * height gray values, each in ASCII decimal, between 0 and the specified
+maximum value, separated by whitespace, starting at the top-left
+corner of the graymap, proceeding in normal English reading order.
+A value of 0 means black, and the maximum value means white.
+\IPitem{{-}}
+Characters from a ``\#'' to the next end-of-line are ignored (comments).
+\IPitem{{-}}
+No line should be longer than 70 characters.
+\end{IPlist}
+
+\par
+Here is an example of a small graymap in this format:
+\nofill
+P2
+\# feep.pgm
+24 7
+15
+0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
+0  3  3  3  3  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15 15 15 15  0
+0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0 15  0
+0  3  3  3  0  0  0  7  7  7  0  0  0 11 11 11  0  0  0 15 15 15 15  0
+0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0  0  0
+0  3  0  0  0  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15  0  0  0  0
+0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
+\fill
+\par
+Programs that read this format should be as lenient as possible,
+accepting anything that looks remotely like a graymap.
+\par
+There is also a variant on the format, available
+by setting the RAWBITS option at compile time.  This variant is
+different in the following ways:
+%.IX RAWBITS
+\begin{IPlist}
+\IPitem{{-}}
+The ``magic number'' is ``P5'' instead of ``P2''.
+\IPitem{{-}}
+The gray values are stored as plain bytes, instead of ASCII decimal.
+\IPitem{{-}}
+No whitespace is allowed in the grays section, and only a single character
+of whitespace (typically a newline) is allowed after the maxval.
+\IPitem{{-}}
+The files are smaller and many times faster to read and write.
+\end{IPlist}
+
+\par
+Note that this raw format can only be used for maxvals less than
+or equal to 255.
+If you use the
+{\it pgm}
+library and try to write a file with a larger maxval,
+it will automatically fall back on the slower but more general plain
+format.
+\shead{SEE ALSO}
+fitstopgm(1), fstopgm(1), hipstopgm(1), lispmtopgm(1), psidtopgm(1),
+rawtopgm(1),
+pgmbentley(1), pgmcrater(1), pgmedge(1), pgmenhance(1), pgmhist(1), pgmnorm(1),
+pgmoil(1), pgmramp(1), pgmtexture(1),
+pgmtofits(1), pgmtofs(1), pgmtolispm(1), pgmtopbm(1),
+pnm(5), pbm(5), ppm(5)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgm.5
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:26 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmbentley.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmbentley.1
+%
+\phead{pgmbentley}{1}{11 January 1991}{}{}
+
+%.IX pgmbentley
+\shead{NAME}
+pgmbentley - Bentleyize a portable graymap
+\shead{SYNOPSIS}
+{\bf pgmbentley}
+{\rm [}{\it pgmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable graymap as input.
+Performs The Bentley Effect, and writes a portable graymap as output.
+%.IX "Bentley Effect"
+\par
+The Bentley Effect is described in ``Beyond Photography'' by Holzmann,
+chapter 4, photo 4.
+It's a vertical smearing based on brightness.
+\shead{SEE ALSO}
+pgmoil(1), ppmrelief(1), pgm(5)
+\shead{AUTHOR}
+\copyright 1990 by Wilson Bent (whb@hoh-2.att.com).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmbentley.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:27 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmcrater.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmcrater.1
+%
+\phead{pgmcrater}{1}{15 October 1991}{}{}
+
+%.IX pgmcrater
+%.IX fractals
+%.IX craters
+\shead{NAME}
+pgmcrater - create cratered terrain by fractal forgery
+\shead{SYNOPSIS}
+\raggedright
+{\bf pgmcrater}
+'ti 15
+{\rm [}{\bf -number}
+{\it n}{\rm ]}
+{\rm [}{\bf -height}{\rm $|$}{\bf -ysize}
+{\it s}{\rm ]}
+{\rm [}{\bf -width}{\rm $|$}{\bf -xsize}
+{\it s}{\rm ]}
+{\rm [}{\bf -gamma}
+{\it g}{\rm ]}
+%.ad
+\shead{DESCRIPTION}
+{\bf pgmcrater}
+creates a portable graymap which mimics cratered terrain.  The graymap
+is created by simulating the impact of a given number of craters with
+random position and size, then rendering the resulting terrain
+elevations based on a light source shining from one side of the
+screen.  The size distribution of the craters is based on a power law
+which results in many more small craters than large ones.  The number
+of craters of a given size varies as the reciprocal of the area as
+described on pages 31 and 32 of Peitgen and Saupe[1]; cratered bodies
+in the Solar System are observed to obey this relationship.  The
+formula used to obtain crater radii governed by this law from a
+uniformly distributed pseudorandom sequence was developed by Rudy
+Rucker.
+\par
+High resolution images with large numbers of craters often benefit
+from being piped through
+{\bf pnmsmooth}{\rm .}
+The averaging performed by this process eliminates some of the jagged
+pixels and lends a mellow ``telescopic image'' feel to the overall
+picture.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -number}{\it \ n}
+}
+\item[{{\bf -number}{\it \ n}
+}]
+Causes
+{\it n}
+craters to be generated.  If no
+{\bf -number}
+specification is given, 50000 craters will be generated.  Don't expect
+to see them all!  For every large crater there are many, many more
+tiny ones which tend simply to erode the landscape.  In general, the
+more craters you specify the more realistic the result; ideally you
+want the entire terrain to have been extensively turned over again and
+again by cratering.  High resolution images containing five to ten
+million craters are stunning but take quite a while to create.
+\item[{{\bf -height}{\it \ height}
+}]
+Sets the height of the generated image to
+{\it height}
+pixels.  The default height is 256 pixels.
+\item[{{\bf -width}{\it \ width}
+}]
+Sets the width of the generated image to
+{\it width}
+pixels.  The default width is 256 pixels.
+\item[{{\bf -xsize}{\it \ width}
+}]
+Sets the width of the generated image to
+{\it width}
+pixels.  The default width is 256 pixels.
+\item[{{\bf -ysize}{\it \ height}
+}]
+Sets the height of the generated image to
+{\it height}
+pixels.  The default height is 256 pixels.
+\item[{{\bf -gamma}{\it \ factor}
+}]
+The specified
+{\it factor}
+is used to gamma correct the graymap in the same manner as performed
+by
+{\bf pnmgamma}{\rm .}
+The default value is 1.0, which results in a medium contrast image.
+Values larger than 1 lighten the image and reduce contrast, while
+values less than 1 darken the image, increasing contrast.
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{BUGS}
+The
+{\bf -gamma}
+option isn't really necessary since you can achieve the same
+effect by piping the output from
+{\bf pgmcrater}
+through
+{\bf pnmgamma}{\rm .}
+However,
+{\bf pgmcrater}
+performs an internal gamma map anyway in the process of rendering the
+elevation array into a graymap, so there's no additional overhead in
+allowing a user-specified gamma.
+\par
+Real craters have two distinct morphologies.
+{\bf pgmcrater}
+simulates only small craters, which are hemispherical in shape
+(regardless of the incidence angle of the impacting body, as long as the
+velocity is sufficiently high).  Large craters, such as Copernicus and
+Tycho on the Moon, have a ``walled plain'' shape with a cross-section more
+like:
+\nofill
+%.ne 2
+%.cs R 18
+                /\bs                             /\bs 
+\nwl
+          \_\_\_\_\_/  \bs \_\_\_\_\_\_\_\_\_\_\_\_/\bs \_\_\_\_\_\_\_\_\_\_\_\_/  \bs \_\_\_\_\_
+%.cs R
+\fill
+%.ss 12
+Larger craters should really use this profile, including the central
+peak, and totally obliterate the pre-existing terrain.
+\shead{SEE ALSO}
+{\bf pgm}{\rm (5),}
+{\bf pnmgamma}{\rm (1),}
+{\bf pnmsmooth}{\rm (1)}
+\begin{TPlist}{[1]}
+\item[{[1]}]
+Peitgen, H.-O., and Saupe, D. eds., The Science Of Fractal Images,
+New York: Springer Verlag, 1988.
+%.ne 10
+\end{TPlist}
+
+\shead{AUTHOR}
+\ind{1\parindent}{\nofill
+    John Walker
+    Autodesk SA
+    Avenue des Champs-Montants 14b
+    CH-2074 MARIN
+    Suisse/Schweiz/Svizzera/Svizra/Switzerland
+\fill}
+\begin{TPlist}{Usenet:}
+\item[{Usenet:}]
+kelvin@Autodesk.com
+\item[{Fax:}]
+038/33 88 15
+\item[{Voice:}]
+038/33 76 33
+\end{TPlist}
+
+\par
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+without any conditions or restrictions.  This software is provided ``as
+is'' without express or implied warranty.
+\par
+{\bf PLUGWARE!}
+If you like this kind of stuff, you may also enjoy ``James Gleick's
+Chaos--The Software'' for MS-DOS, available for \$59.95 from your
+local software store or directly from Autodesk, Inc., Attn: Science
+Series, 2320 Marinship Way, Sausalito, CA 94965, USA.  Telephone:
+(800) 688-2344 toll-free or, outside the U.S. (415) 332-2344 Ext
+4886.  Fax: (415) 289-4718.  ``Chaos--The Software'' includes a more
+comprehensive fractal forgery generator which creates
+three-dimensional landscapes as well as clouds and planets, plus five
+more modules which explore other aspects of Chaos.  The user guide of
+more than 200 pages includes an introduction by James Gleick and
+detailed explanations by Rudy Rucker of the mathematics and algorithms
+used by each program.
+%
+% end of input file: pgmcrater.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:27 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmedge.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmedge.1
+%
+\phead{pgmedge}{1}{04 February 1990}{}{}
+
+%.IX pgmedge
+\shead{NAME}
+pgmedge - edge-detect a portable graymap
+\shead{SYNOPSIS}
+{\bf pgmedge}
+{\rm [}{\it pgmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable graymap as input.
+Outlines the edges, and writes a portable graymap as output.
+%.IX "edge detection"
+Piping the result through
+{\bf pgmtopbm -threshold}
+and playing with the
+threshold value will give a bitmap of the edges.
+%.IX thresholding
+\par
+The edge detection technique used is to take the Pythagorean sum of
+two Sobel gradient operators at 90 degrees to each other.
+For more details see ``Digital Image Processing'' by Gonzalez and Wintz,
+chapter 7.
+\shead{SEE ALSO}
+pgmenhance(1), pgmtopbm(1), pgm(5), pbm(5)
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmedge.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:28 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmenhance.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmenhance.1
+%
+\phead{pgmenhance}{1}{13 January 1989}{}{}
+
+%.IX pgmenhance
+\shead{NAME}
+pgmenhance - edge-enhance a portable graymap
+\shead{SYNOPSIS}
+{\bf pgmenhance}
+{\rm [}{\it -N}{\rm ]}
+{\rm [}{\it pgmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable graymap as input.
+Enhances the edges, and writes a portable graymap as output.
+%.IX "edge enhancement"
+\par
+The edge enhancing technique is taken from Philip R. Thompson's ``xim''
+program, which in turn took it from section 6 of ``Digital Halftones by
+Dot Diffusion'', D. E. Knuth, ACM Transaction on Graphics Vol. 6, No. 4,
+October 1987, which in turn got it from two 1976 papers by J. F. Jarvis
+{\it et. al.}
+\shead{OPTIONS}
+\par
+The optional
+{\it -N}
+flag should be a digit from 1 to 9.
+1 is the lowest level of enhancement, 9 is the highest,
+The default is 9.
+\shead{SEE ALSO}
+pgmedge(1), pgm(5), pbm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmenhance.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:29 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmhist.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmhist.1
+%
+\phead{pgmhist}{1}{28 February 1989}{}{}
+
+%.IX pgmhist
+\shead{NAME}
+pgmhist - print a histogram of the values in a portable graymap
+\shead{SYNOPSIS}
+{\bf pgmhist}
+{\rm [}{\it pgmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable graymap as input.
+Prints a histogram of the gray values.
+\shead{SEE ALSO}
+pgmnorm(1), pgm(5), ppmhist(1)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmhist.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Feb  4 14:35:48 1994
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmkernel.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmkernel.1
+%
+\phead{pgmkernel}{1}{10 December 1992}{}{}
+
+%.IX pgmkernel
+\shead{NAME}
+pgmkernel - generate a convolution kernel
+\shead{SYNOPSIS}
+{\bf pgmkernel} [{\bf --weight}{\it w}] {\it width} [{\it height}]
+\shead{DESCRIPTION}
+Generates a portable graymap array of size
+{\it width} x {\it height} (or {\it width} x {\it width} if {\it height}
+is not specified) to be used as a convolution file by
+{\bf pnmconvol}{\rm .}
+The data in the convolution array K are computed according to the
+formula:
+\par
+K(i,j) = 1 / ( 1 + w * sqrt((i-width/2)\^{}2 + (j-height/2)\^{}2)) 
+\par
+where 
+{\it w}
+is a coefficient specified via the 
+{\it --weight}
+flag, and
+{\it width}
+and 
+{\it height}
+are the X and Y filter sizes.
+\par
+The output PGM file is always written out in ASCII format.
+\shead{OPTIONS}
+The optional 
+{\it -weight}
+flag should be a real number greater than -1.
+The default value is 6.0.
+\shead{BUGS}
+The computation time is proportional to 
+{\it width}
+* 
+{\it height}{\rm .}
+This increases rapidly with the increase of the kernel size.  
+A better approach could be using a FFT in these cases.
+\shead{SEE ALSO}
+pnmconvol(1), pnmsmooth(1)
+\shead{AUTHOR}
+Alberto Accomazzi (alberto@cfa.harvard.edu).
+%
+% end of input file: pgmkernel.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Mon Nov 29 13:21:08 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmnoise.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmnoise.1
+%
+\phead{pgmnoise}{1}{16 November 1993}{}{}
+
+%.IX pgmnoise
+\shead{NAME}
+pgmnoise - create a graymap made up of white noise
+\shead{SYNOPSIS}
+{\bf pgmnoise}
+{\it width height}
+\shead{DESCRIPTION}
+Creates a portable graymap that is made up of random pixels with
+gray values in the range of 0 to PGM\_MAXMAXVAL (depends on the compilation,
+either 255 or 65535). The graymap has a size of width * height pixels.
+\shead{SEE ALSO}
+pgm(5)
+\shead{AUTHOR}
+\copyright 1993 by Frank Neumann.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmnoise.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:29 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmnorm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmnorm.1
+%
+\phead{pgmnorm}{1}{28 February 1989}{}{}
+
+%.IX pgmnorm
+\shead{NAME}
+pgmnorm - normalize the contrast in a portable graymap
+\shead{SYNOPSIS}
+{\bf pgmnorm}
+{\rm [}{\bf -bpercent}
+{\it N}
+$|$
+{\bf -bvalue}
+{\it N}{\rm ]}
+{\rm [}{\bf -wpercent}
+{\it N}
+$|$
+{\bf -wvalue}
+{\it N}{\rm ]}
+{\rm [}{\it pgmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable graymap as input.
+Normalizes the contrast by forcing the lightest pixels to white, the
+%.IX "contrast normalization"
+darkest pixels to black, and linearly rescaling the ones in between;
+and produces a portable graymap as output.
+\shead{OPTIONS}
+\par
+By default, the darkest 2 percent of all pixels are mapped to black, and
+the lightest 1 percent are mapped to white.
+You can override these percentages by using the
+{\bf -bpercent}
+and
+{\bf -wpercent}
+flags,
+or you can specify the exact pixel values to be mapped by using the
+{\bf -bvalue}
+and
+{\bf -wvalue}
+flags.
+Appropriate numbers for the flags can be gotten from the
+{\it pgmhist}
+tool.
+%.IX pgmhist
+If you just want to enhance the contrast, then choose values at elbows in the
+histogram; {\it e.g.}, if value 29 represents 3\% of the image but value 30
+represents 20\%, choose 30 for
+{\it bvalue}{\rm .}
+If you want to lighten the
+image, then set
+{\it bvalue}
+to 0 and just fiddle with
+{\it wvalue}{\rm ;}
+similarly, to darken the image, set
+{\it wvalue}
+to maxval and play with
+{\it bvalue}{\rm .}
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pgmhist(1), pgm(5)
+\shead{AUTHOR}
+Partially based on the fbnorm filter in Michael Mauldin's ``Fuzzy
+Pixmap''
+package.
+
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmnorm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:30 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmoil.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmoil.1
+%
+\phead{pgmoil}{1}{11 January 1991}{}{}
+
+%.IX pgmoil
+\shead{NAME}
+pgmoil - turn a portable graymap into an oil painting
+\shead{SYNOPSIS}
+{\bf pgmoil}
+{\rm [}{\bf -n}
+{\it N}{\rm ]}
+{\rm [}{\it pgmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable graymap as input.
+Does an ``oil transfer'', and writes a portable graymap as output.
+%.IX "oil transfer"
+\par
+The oil transfer is described in ``Beyond Photography'' by Holzmann,
+chapter 4, photo 7.
+It's a sort of localized smearing.
+\shead{OPTIONS}
+\par
+The optional
+{\bf -n}
+flag controls the size of the area smeared.  The default value is 3.
+\shead{BUGS}
+Takes a long time to run.
+\shead{SEE ALSO}
+pgmbentley(1), ppmrelief(1), pgm(5)
+\shead{AUTHOR}
+\copyright 1990 by Wilson Bent (whb@hoh-2.att.com).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmoil.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:30 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmramp.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmramp.1
+%
+\phead{pgmramp}{1}{24 November 1989}{}{}
+
+%.IX pgmramp
+\shead{NAME}
+pgmramp - generate a grayscale ramp
+\shead{SYNOPSIS}
+{\bf pgmramp}
+{\bf -lr}{\rm $|$}{\bf -tb}
+$|$
+{\bf -rectangle}{\rm $|$}{\bf -ellipse}
+{\it width height}
+\shead{DESCRIPTION}
+Generates a graymap of the specified size containing a black-to-white ramp.
+%.IX "generating graymaps"
+These ramps are useful for multiplying with other images, using the
+{\it pnmarith}
+tool.
+%.IX pnmarith
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -lr}}
+\item[{{\bf -lr}}]
+A left to right ramp.
+\item[{{\bf -tb}}]
+A top to bottom ramp.
+\item[{{\bf -rectangle}}]
+A rectangular ramp.
+\item[{{\bf -ellipse}}]
+An elliptical ramp.
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pnmarith(1), pgm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmramp.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:35 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmtexture.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmtexture.1
+%
+\phead{pgmtexture}{1}{22 Aug 1991}{}{}
+
+%.IX pgmtexture
+\shead{NAME}
+pgmtexture - calculate textural features on a portable graymap
+\shead{SYNOPSIS}
+{\bf pgmtexture}
+{\rm [}{\bf -d}
+{\it d}{\rm ]}
+{\rm [}{\it pgmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable graymap as input.  Calculates textural features
+based on spatial dependence matrices at 0, 45, 90, and 135 degrees for
+a distance 
+{\it d}
+(default = 1).
+Textural features include:
+\begin{IPlist}
+\IPitem{{}}
+(1) Angular Second Moment,
+\nwl
+(2) Contrast,
+\nwl
+(3) Correlation,
+\nwl
+(4) Variance,          
+\nwl
+(5) Inverse Difference Moment,
+\nwl
+(6) Sum Average,
+\nwl
+(7) Sum Variance,
+\nwl
+(8) Sum Entropy,
+\nwl
+(9) Entropy,
+\nwl
+(10) Difference Variance,
+\nwl
+(11) Difference Entropy,
+\nwl
+(12, 13) Information Measures of Correlation, and
+\nwl
+(14) Maximal Correlation Coefficient.
+\end{IPlist}
+
+\par
+Algorithm taken from:
+\nwl
+Haralick, R.M., K. Shanmugam, and I. Dinstein. 1973. Textural features
+for image classification.  
+{\it IEEE Transactions on Systems, Man,}
+{\it and Cybertinetics,}
+SMC-3(6):610-621.
+\shead{BUGS}
+The program can run incredibly slow for large images (larger than 64 x 64)
+and command line options are limited.
+The method for finding (14) the maximal correlation coefficient, which
+requires finding the second largest eigenvalue of a matrix Q, does not
+always converge.
+\shead{REFERENCES}
+{\it IEEE Transactions on Systems, Man,}
+{\it and Cybertinetics,}
+SMC-3(6):610-621.
+\shead{SEE ALSO}
+pgm(5), pnmcut(1)
+\shead{AUTHOR}
+\copyright 1991 by Texas Agricultural Experiment Station, employer for
+hire of James Darrell McCauley. 
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% THE TEXAS AGRICULTURAL EXPERIMENT STATION (TAES) AND THE TEXAS A&M
+% UNIVERSITY SYSTEM (TAMUS) MAKE NO EXPRESS OR IMPLIED WARRANTIES
+% (INCLUDING BY WAY OF EXAMPLE, MERCHANTABILITY) WITH RESPECT TO ANY
+% ITEM, AND SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL
+% OR CONSEQUENTAL DAMAGES ARISING OUT OF THE POSESSION OR USE OF
+% ANY SUCH ITEM. LICENSEE AND/OR USER AGREES TO INDEMNIFY AND HOLD
+% TAES AND TAMUS HARMLESS FROM ANY CLAIMS ARISING OUT OF THE USE OR
+% POSSESSION OF SUCH ITEMS.
+%
+% end of input file: pgmtexture.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:31 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmtofits.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmtofits.1
+%
+\phead{pgmtofits}{1}{20 September 1989}{}{}
+
+%.IX pgmtofits
+\shead{NAME}
+pgmtofits - convert a portable graymap into FITS format
+\shead{SYNOPSIS}
+{\bf pgmtofits}
+{\rm [}{\it pgmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable graymap as input.
+Produces a FITS file as output.
+%.IX FITS
+\par
+FITS stands for Flexible Image Transport System.  A full description
+can be found in Astronomy \& Astrophysics Supplement Series 44 (1981),
+page 363.
+\shead{SEE ALSO}
+fitstopgm(1), pgm(5)
+\shead{AUTHOR}
+\copyright 1989 by Wilson H. Bent (whb@hoh-2.att.com).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmtofits.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:31 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmtofs.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmtofs.1
+%
+\phead{pgmtofs}{1}{18 May 1990}{}{}
+
+%.IX pgmtofs
+\shead{NAME}
+pgmtofs - convert portable graymap to Usenix FaceSaver(tm) format
+\shead{SYNOPSIS}
+{\bf pgmtofs}
+{\rm [}{\it pgmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable graymap as input.
+Produces Usenix FaceSaver(tm) format as output.
+%.IX FaceSaver
+\par
+FaceSaver is a registered trademark of Metron Computerware Ltd. of
+Oakland, CA.
+\shead{SEE ALSO}
+fstopgm(1), pgm(5)
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmtofs.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:32 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmtolispm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmtolispm.1
+%
+\phead{pgmtolispm}{1}{06 March 1990}{}{}
+
+%.IX pgmtolispm
+\shead{NAME}
+pgmtolispm - convert a portable graymap into Lisp Machine format
+\shead{SYNOPSIS}
+{\bf pgmtolispm}
+{\rm [}{\it pgmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable graymap as input.
+Produces a Lisp Machine bitmap as output.
+%.IX "Lisp Machine bitmap"
+\par
+This is the file format read by the tv:read-bit-array-file function on
+TI Explorer and Symbolics lisp machines.
+\par
+Given a pgm (instead of a pbm) a multi-plane image will be output.
+This is probably not useful unless you have a color lisp machine.
+\par
+Multi-plane bitmaps on lisp machines are color; but the lispm image file
+format does not include a color map, so we must treat it as a graymap 
+instead.  This is unfortunate.
+\shead{SEE ALSO}
+lispmtopgm(1), pgm(5)
+\shead{BUGS}
+Output width is always rounded up to the nearest multiple of 32; this might 
+not always be what you want, but it probably is (arrays which are not 
+modulo 32 cannot be passed to the Lispm BITBLT function, and thus cannot 
+easily be displayed on the screen).
+\par
+No color.
+\shead{AUTHOR}
+\copyright 1991 by Jamie Zawinski and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmtolispm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:33 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmtopbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmtopbm.1
+%
+\phead{pgmtopbm}{1}{26 July 1988}{}{}
+
+%.IX pgmtopbm
+\shead{NAME}
+pgmtopbm - convert a portable graymap into a portable bitmap
+\shead{SYNOPSIS}
+{\bf pgmtopbm}
+{\rm [}{\bf -floyd}{\rm $|$}{\bf -fs}{\rm $|$}{\bf -threshold}
+{\rm $|$}{\bf -dither8}{\rm $|$}{\bf -d8}{\rm $|$}{\bf -cluster3}
+{\rm $|$}{\bf -c3}{\rm $|$}{\bf -cluster4}{\rm $|$}{\bf -c4}
+{\rm $|$}{\bf -cluster8}{\rm $|$}{\bf -c8}{\rm ]}
+{\rm [}{\bf -value}
+{\it val}{\rm ]}
+{\rm [}{\it pgmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable graymap as input.
+Produces a portable bitmap as output.
+%.IX halftoning
+\par
+Note that there is no pbmtopgm converter, because any pgm program can
+read pbm files automagically.
+\shead{OPTIONS}
+\par
+The default quantization method is boustrophedonic Floyd-Steinberg error
+diffusion
+{\rm (}{\bf -floyd}
+or
+{\bf -fs}{\rm ).}
+%.IX Floyd-Steinberg
+%.IX "error diffusion"
+Also available are simple thresholding
+{\rm (}{\bf -threshold}{\rm );}
+%.IX thresholding
+Bayer's ordered dither
+{\rm (}{\bf -dither8}{\rm )}
+with a 16x16 matrix; and three different sizes of 45-degree clustered-dot dither
+{\rm (}{\bf -cluster3}{\rm ,}
+{\bf -cluster4}{\rm ,}
+{\bf -cluster8}{\rm ).}
+%.IX dithering
+\par
+Floyd-Steinberg will almost always give the best looking results; however,
+looking good is not always what you want.
+For instance, thresholding can be used in a pipeline with the
+{\it pnmconvol}
+%.IX pnmconvol
+tool, for tasks like edge and peak detection.
+And clustered-dot dithering gives a newspaper-ish look, a useful special effect.
+\par
+The
+{\bf -value}
+flag alters the thresholding value for Floyd-Steinberg and
+simple thresholding.
+It should be a real number between 0 and 1.
+Above 0.5 means darker images; below 0.5 means lighter.
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{REFERENCES}
+The only reference you need for this stuff is ``Digital Halftoning'' by
+Robert Ulichney, MIT Press, ISBN 0--262--21009--6.
+\shead{SEE ALSO}
+pbmreduce(1), pgm(5), pbm(5), pnmconvol(1)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmtopbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:43 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pgmtoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pgmtoppm.1
+%
+\phead{pgmtoppm}{1}{11 January 1991}{}{}
+
+%.IX pgmtoppm
+\shead{NAME}
+pgmtoppm - colorize a portable graymap into a portable pixmap
+\shead{SYNOPSIS}
+{\bf pgmtoppm}
+{\it colorspec}
+{\rm [}{\it pgmfile}{\rm ]}
+\nwl
+{\bf pgmtoppm}
+{\it colorspec1}{\bf -}{\it colorspec2}
+{\rm [}{\it pgmfile}{\rm ]}
+\nwl
+{\bf pgmtoppm -map}
+{\it mapfile}
+{\rm [}{\it pgmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable graymap as input.
+Colorizes it by multiplying the the gray values by specified color or colors,
+and produces a portable pixmap as output.
+%.IX colorization
+\par
+If only one color is specified, black in the pgm file stays black and
+white in the pgm file turns into the specified color in the ppm file.
+If two colors (separated by a dash) are specified, then black gets mapped
+to the first color and white gets mapped to the second.
+\par
+The color can be specified in five ways:
+%.IX "specifying colors"
+\begin{TPlist}{o}
+\item[{o}]
+A name, assuming
+that a pointer to an X11-style color names file was compiled in.
+\item[{o}]
+An X11-style hexadecimal specifier: rgb:r/g/b, where r g and b are
+each 1- to 4-digit hexadecimal numbers.
+\item[{o}]
+An X11-style decimal specifier: rgbi:r/g/b, where r g and b are
+floating point numbers between 0 and 1.
+\item[{o}]
+For backwards compatibility, an old-X11-style hexadecimal
+number: \#rgb, \#rrggbb, \#rrrgggbbb, or \#rrrrggggbbbb.
+\item[{o}]
+For backwards compatibility, a triplet of numbers
+separated by commas: r,g,b, where r g and b are
+floating point numbers between 0 and 1.
+(This style was added before MIT came up with the similar rgbi style.)
+\end{TPlist}
+
+\par
+Also, the
+{\bf -map}
+flag lets you specify an entire colormap to be used.
+The mapfile is just a
+{\it ppm}
+file; it can be any shape, all that matters
+is the colors in it and their order.
+In this case, black gets mapped into the first
+color in the map file, and white gets mapped to the last.
+\shead{SEE ALSO}
+rgb3toppm(1), ppmtopgm(1), ppmtorgb3(1), ppm(5), pgm(5)
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pgmtoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:43 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pi1toppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pi1toppm.1
+%
+\phead{pi1toppm}{1}{19 July 1990}{}{}
+
+%.IX pi1toppm
+\shead{NAME}
+pi1toppm - convert an Atari Degas .pi1 into a portable pixmap
+\shead{SYNOPSIS}
+{\bf pi1toppm}
+{\rm [}{\it pi1file}{\rm ]}
+\shead{DESCRIPTION}
+Reads an Atari Degas .pi1 file as input.
+%.IX Atari
+%.IX "Degas .pi1"
+Produces a portable pixmap as output.
+\shead{SEE ALSO}
+ppmtopi1(1), ppm(5), pi3topbm(1), pbmtopi3(1)
+\shead{AUTHOR}
+\copyright 1991 by Steve Belczyk (seb3@gte.com) and Jef Poskanzer.
+% Permission to use, copy, modify and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pi1toppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:13 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pi3topbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pi3topbm.1
+%
+\phead{pi3topbm}{1}{11 March 1990}{}{}
+
+%.IX pi3topbm
+\shead{NAME}
+pi3topbm - convert an Atari Degas .pi3 file into a portable bitmap
+\shead{SYNOPSIS}
+{\bf pi3topbm}
+{\rm [}{\it pi3file}{\rm ]}
+\shead{DESCRIPTION}
+Reads an Atari Degas .pi3 file as input.
+%.IX Atari
+%.IX "Degas .pi3"
+Produces a portable bitmap as output.
+\shead{SEE ALSO}
+pbmtopi3(1), pbm(5), pi1toppm(1), ppmtopi1(1)
+\shead{AUTHOR}
+\copyright 1988 by David Beckemeyer (bdt!david) and Diomidis D. Spinellis.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted,
+% provided that the above copyright notice appear in all copies and that
+% both that copyright notice and this permission notice appear in
+% supporting documentation.
+%
+% end of input file: pi3topbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:44 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: picttoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: picttoppm.1
+%
+\phead{picttoppm}{1}{29 November 1991}{}{}
+
+%.IX picttoppm
+\shead{NAME}
+picttoppm - convert a Macintosh PICT file into a portable pixmap
+\shead{SYNOPSIS}
+{\bf picttoppm}
+{\rm [}{\bf -verbose}{\rm ]}
+{\rm [}{\bf -fullres}{\rm ]}
+{\rm [}{\bf -noheader}{\rm ]}
+{\rm [}{\it pictfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a PICT file (version 1 or 2) and outputs a portable pixmap.
+%.IX PICT
+%.IX Macintosh
+Useful as the first step in converting a scanned image to something
+that can be displayed on Unix.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf --fullres}}
+\item[{{\bf --fullres}}]
+Force any images in the PICT file to be output with at least their
+full resolution.  A PICT file may indicate that a contained
+image is to be scaled down before output.  This option forces images
+to retain their sizes and prevent information loss.
+\item[{{\bf --noheader}}]
+Do not skip the 512 byte header that is present on all PICT files.
+This is useful when you have PICT data that was not stored in
+the data fork of a PICT file.
+\item[{{\bf --verbose}}]
+Turns on verbose mode which prints a 
+a whole bunch of information that only
+{\it picttoppm}
+hackers really care about.
+\end{TPlist}
+
+\shead{BUGS}
+The PICT file format is a general drawing format.
+{\it picttoppm}
+only supports a small subset of its operations but is still very useful for
+files produced by scanning software.  In particular, text added to a
+scanned image will be silently ignored.
+\shead{SEE ALSO}
+Inside Macintosh volume 5,
+ppmtopict(1),
+ppm(5)
+\shead{AUTHOR}
+\copyright 1989 George Phillips (phillips@cs.ubc.ca).
+% Permission is granted to freely distribute this program in whole or in
+% part provided you don't make money off it, you don't pretend that you
+% wrote it and that this notice accompanies the code.
+%
+% George Phillips <phillips@cs.ubc.ca>
+% Department of Computer Science
+% University of British Columbia
+%
+% end of input file: picttoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:44 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pjtoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pjtoppm.1
+%
+\phead{pjtoppm}{1}{14 July 1991}{}{}
+
+%.IX pjtoppm
+\shead{NAME}
+pjtoppm - convert an HP PaintJet file to a portable pixmap
+\shead{SYNOPSIS}
+{\bf pjtoppm}
+{\rm [}{\it paintjet}{\rm ]}
+\shead{DESCRIPTION}
+Reads an HP PaintJet file as input and converts it into a portable pixmap.
+This was a quick hack to save some trees, and it only handles a small
+subset of the paintjet commands.
+In particular, it will only handle 
+enough commands to convert most raster image files.
+\shead{REFERENCES}
+HP PaintJet XL Color Graphics Printer User's Guide
+\shead{SEE ALSO}
+ppmtopj(1)
+\shead{AUTHOR}
+\copyright 1991 by Christos Zoulas.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pjtoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:19 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pktopbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pktopbm.1
+%
+\phead{pktopbm}{1}{6 August 1990}{}{}
+
+\shead{NAME}
+pktopbm - convert packed (PK) format font into portable bitmap(s)
+\shead{SYNOPSIS}
+pktopbm pkfile[.pk] [-c num] pbmfile ...
+\shead{DESCRIPTION}
+Reads a packed (PK) font file as input, and produces portable bitmaps as
+output. If the filename ``-'' is used for any
+of the filenames, the standard input stream (or standard output where
+appropriate) will be used.
+\shead{OPTIONS}
+\begin{IPlist}
+\IPitem{{-c\ num}}
+Sets the character number of the next bitmap written to num.
+\end{IPlist}
+
+\shead{SEE ALSO}
+pbmtopk(1), pbm(5)
+\shead{AUTHOR}
+Adapted from Tom Rokicki's pxtopk by Angus Duggan (ajcd@dcs.ed.ac.uk.
+
+%
+% end of input file: pktopbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:35 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnm.5
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnm.5
+%
+\phead{pnm}{5}{27 September 1991}{}{}
+
+\shead{NAME}
+pnm - portable anymap file format
+\shead{DESCRIPTION}
+The
+{\it pnm}
+programs operate on portable bitmaps, graymaps, and pixmaps, produced by the
+{\it pbm, pgm,}
+and
+{\it ppm}
+segments.  There is no file format associated with
+{\it pnm}
+itself.
+\shead{SEE ALSO}
+anytopnm(1), rasttopnm(1), tifftopnm(1), xwdtopnm(1),
+pnmtops(1), pnmtorast(1), pnmtotiff(1), pnmtoxwd(1),
+pnmarith(1), pnmcat(1), pnmconvol(1), pnmcrop(1), pnmcut(1),
+pnmdepth(1), pnmenlarge(1), pnmfile(1), pnmflip(1), pnmgamma(1),
+pnmindex(1), pnminvert(1), pnmmargin(1), pnmnoraw(1), pnmpaste(1),
+pnmrotate(1), pnmscale(1), pnmshear(1), pnmsmooth(1), pnmtile(1),
+ppm(5), pgm(5), pbm(5)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnm.5
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Mon Feb  7 08:47:49 1994
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmalias.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmalias.1
+%
+\phead{pnmalias}{1}{30 April 1992}{}{}
+
+\shead{NAME}
+pnmalias - antialias a portable anyumap.
+\shead{SYNOPSIS}
+{\bf pnmalias}
+{\rm [}{\bf -bgcolor}
+{\it color}{\rm ]}
+{\rm [}{\bf -fgcolor}
+{\it color}{\rm ]}
+{\rm [}{\bf -bonly}{\rm ]}
+{\rm [}{\bf -fonly}{\rm ]}
+{\rm [}{\bf -balias}{\rm ]}
+{\rm [}{\bf -falias}{\rm ]}
+{\rm [}{\bf -weight}
+{\it w}{\rm ]}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input, and applies anti-aliasing to background and
+foreground pixels.
+If the input file is a portable bitmap, the 
+output anti-aliased image is promoted to a graymap, and a message is printed
+informing the user of the change in format.
+\shead{OPTIONS}
+\par
+{\bf --bgcolor}
+{\it colorb,}
+{\bf --fgcolor}
+{\it colorf}
+\ind{1\parindent}set the background color to 
+{\it colorb,}
+and the foreground to color to
+{\it colorf.}
+Pixels with these values will be anti-aliased. by default,
+the background color is taken to be black, and foreground color
+is assumed to be white.  
+The colors can be specified in five ways:
+\begin{TPlist}{{\bf o}}
+\item[{{\bf o}}]
+A name, assuming
+that a pointer to an X11-style color names file was compiled in.
+\item[{{\bf o}}]
+An X11-style hexadecimal specifier: rgb:r/g/b, where r g and b are
+each 1- to 4-digit hexadecimal numbers.
+\item[{{\bf o}}]
+An X11-style decimal specifier: rgbi:r/g/b, where r g and b are
+floating point numbers between 0 and 1.
+\item[{{\bf o}}]
+For backwards compatibility, an old-X11-style hexadecimal
+number: \#rgb, \#rrggbb, \#rrrgggbbb, or \#rrrrggggbbbb.
+\item[{{\bf o}}]
+For backwards compatibility, a triplet of numbers
+separated by commas: r,g,b, where r g and b are
+floating point numbers between 0 and 1.
+(This style was added before MIT came up with the similar rgbi style.)
+\end{TPlist}
+\par\noindent
+Note that even when dealing with graymaps, background and foreground
+colors need to be specified in the fashion described above.
+In this case, background and foreground pixel values are taken to be the
+value of the red component for the given color.
+\ind{1\parindent}
+\par
+{\bf --bonly}{\rm ,}
+{\bf --fonly}
+\ind{1\parindent}Apply anti-aliasing only to background 
+{\rm (}{\bf --bonly}{\rm ),}
+or foreground
+{\rm (}{\bf --fonly}{\rm )}
+pixels.
+\ind{1\parindent}
+\par
+{\bf --balias}{\rm ,}
+{\bf --falias}
+\ind{1\parindent}Apply anti-aliasing to all pixels surrounding background
+{\rm (}{\bf --balias}{\rm ),}
+or foreground
+{\rm (}{\bf --falias}{\rm )}
+pixels.  By default, anti-aliasing takes place only among neighboring
+background and foreground pixels.
+\ind{1\parindent}
+\par
+{\bf --weight}
+{\it w}
+\ind{1\parindent}Use 
+{\it w}
+as the central weight for the aliasing filter.
+{\it W}
+must be a real number in the range
+0 $<$ 
+{\it w}
+$<$ 1.
+The lower the value of 
+{\it w}
+is, the ``blurrier'' the output image is.  The default is w = 1/3.
+\shead{SEE ALSO}
+pbmtext(1), pnmsmooth(1), pnm(5)
+\shead{AUTHOR}
+Copyright (C) 1992 by Alberto Accomazzi, Smithsonian Astrophysical Observatory.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmalias.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:17 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmarith.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmarith.1
+%
+\phead{pnmarith}{1}{26 August 1993}{}{}
+
+%.IX pnmarith
+\shead{NAME}
+pnmarith - perform arithmetic on two portable anymaps
+\shead{SYNOPSIS}
+{\bf pnmarith}
+{\bf -add}{\rm $|$}{\bf -subtract}{\rm $|$}{\bf -multiply}{\rm $|$}{\bf -difference}
+{\it pnmfile1 pnmfile2}
+\shead{DESCRIPTION}
+Reads two portable anymaps as input.
+Performs the specified arithmetic operation,
+and produces a portable anymap as output.
+The two input anymaps must be the same width and height.
+\par
+The arithmetic is performed between corresponding pixels in the two
+anymaps, as if maxval was 1.0, black was 0.0, and a linear scale in between.
+Results that fall outside of [0..1) are truncated.
+\par
+The operator
+{\it -difference}
+calculates the absolute value of
+{\it pnmarith -subtract pnmfile1 pnmfile2,}
+{\it i.e.}, no truncation is done.
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pbmmask(1), pnmpaste(1), pnminvert(1), pnm(5)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer..
+Lightly modified by Marcel Wijkstra (wijkstra@fwi.uva.nl).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmarith.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:17 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmcat.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmcat.1
+%
+\phead{pnmcat}{1}{12 March 1989}{}{}
+
+%.IX pnmcat
+\shead{NAME}
+pnmcat - concatenate portable anymaps
+\shead{SYNOPSIS}
+{\bf pnmcat}
+{\rm [}{\bf -white}{\rm $|$}{\bf -black}{\rm ]}
+{\bf -leftright}{\rm $|$}{\bf -lr}
+{\rm [}{\bf -jtop}{\rm $|$}{\bf -jbottom}{\rm ]}
+{\it pnmfile pnmfile}
+{\rm ...}
+\nwl
+{\bf pnmcat}
+{\rm [}{\bf -white}{\rm $|$}{\bf -black}{\rm ]}
+{\bf -topbottom}{\rm $|$}{\bf -tb}
+{\rm [}{\bf -jleft}{\rm $|$}{\bf -jright}{\rm ]}
+{\it pnmfile pnmfile}
+{\rm ...}
+\shead{DESCRIPTION}
+Reads portable anymaps as input.
+Concatenates them either left to right or top to bottom, and produces a
+portable anymap as output.
+%.IX concatenation
+\shead{OPTIONS}
+\par
+If the anymaps are not all the same height (left-right) or width (top-bottom),
+the smaller ones have to be justified with the largest.
+By default, they get centered, but you can specify one side or the other
+with one of the -j* flags.
+So,
+{\bf -topbottom -jleft}
+would stack the anymaps on top of each other, flush with the left edge.
+\par
+The
+{\bf -white}
+and
+{\bf -black}
+flags specify what color to use to fill in the extra space
+when doing this justification.
+If neither is specified, the program makes a guess.
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pnm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmcat.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:31 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmcomp.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmcomp.1
+%
+\phead{pnmcomp}{1}{21 February 1989}{}{}
+
+%.IX pnmcomp
+\shead{NAME}
+pnmcomp - composite two portable anymap files together
+\shead{SYNOPSIS}
+{\bf pnmcomp}
+{\rm [}{\it -invert}{\rm ]}
+{\rm [}{\it -xoff}{\rm N}{\it ]}
+{\rm [}{\it -yoff}{\rm N}{\it ]}
+{\rm [}{\it -alpha}{\rm pgmfile}{\it ]}
+{\rm overlay}
+{\rm [}{\it pnm-input}{\rm ]}
+{\rm [}{\it pnm-output}{\rm ]}
+\shead{DESCRIPTION}
+Reads in a portable any map image and put a overlay upon it, with optional
+alpha mask.  The 
+{\it -alpha pgmfile}
+allows you to also add an alpha mask file to the compositing process, the
+range of max and min can be swapped by using the
+{\it -invert}
+option.
+The
+{\it -xoff}
+and
+{\it -yoff}
+arguments can be negative, allowing you to shift the overlay off the
+top corner of the screen.
+\shead{SEE ALSO}
+pnm(5)
+\shead{AUTHOR}
+\copyright 1992 by David Koblas (koblas@mips.com).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmcomp.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:18 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmconvol.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmconvol.1
+%
+\phead{pnmconvol}{1}{13 January 1991}{}{}
+
+%.IX pnmconvol
+\shead{NAME}
+pnmconvol - general MxN convolution on a portable anymap
+\shead{SYNOPSIS}
+{\bf pnmconvol}
+{\it convolutionfile}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads two portable anymaps as input.
+Convolves the second using the first,
+and writes a portable anymap as output.
+%.IX convolution
+\par
+Convolution means replacing each pixel with a weighted average of the
+nearby pixels.  The weights and the area to average are determined by
+the convolution matrix.
+The unsigned numbers in the convolution file are offset by -maxval/2 to
+make signed numbers, and then normalized, so the actual values in the
+convolution file are only relative.
+\par
+Here is a sample convolution file;
+it does a simple average of the nine immediate neighbors, resulting
+in a smoothed image:
+\nofill
+    P2
+    3 3
+    18
+    10 10 10
+    10 10 10
+    10 10 10
+\fill
+\par
+To see how this works, do the above-mentioned offset: 10 - 18/2 gives 1.
+The possible range of values is from 0 to 18, and after the offset
+that's -9 to 9.  The normalization step makes the range -1 to 1, and
+the values get scaled correspondingly so they become 1/9 - exactly what
+you want.
+The equivalent matrix for 5x5 smoothing would have maxval 50 and be
+filled with 26.
+\par
+The convolution file will usually be a graymap,
+so that the same convolution gets applied to each color component.
+However, if you want to use a pixmap and do a different convolution to
+different colors, you can certainly do that.
+\shead{SEE ALSO}
+pnmsmooth(1), pnm(5)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmconvol.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:18 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmcrop.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmcrop.1
+%
+\phead{pnmcrop}{1}{25 February 1989}{}{}
+
+%.IX pnmcrop
+\shead{NAME}
+pnmcrop - crop a portable anymap
+\shead{SYNOPSIS}
+{\bf pnmcrop}
+{\rm [}{\bf -white}{\rm $|$}{\bf -black}{\rm ]}
+{\rm [}{\bf -left}{\rm ]}
+{\rm [}{\bf -right}{\rm ]}
+{\rm [}{\bf -top}{\rm ]}
+{\rm [}{\bf -bottom}{\rm ]}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Removes edges that are the background color,
+and produces a portable anymap as output.
+%.IX cropping
+\shead{OPTIONS}
+\par
+By default, it makes a guess as to what the background color is.
+You can override the default with the
+{\bf -white}
+and
+{\bf -black}
+flags.
+\par
+The options
+{\bf -left, -right, -top}
+and
+{\bf -bottom}
+restrict cropping to the sides specified. The default is to crop all sides of
+the image.
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pnmcut(1), pnm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmcrop.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:19 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmcut.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmcut.1
+%
+\phead{pnmcut}{1}{21 February 1989}{}{}
+
+%.IX pnmcut
+\shead{NAME}
+pnmcut - cut a rectangle out of a portable anymap
+\shead{SYNOPSIS}
+{\bf pnmcut}
+{\it x y width height}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Extracts the specified rectangle,
+and produces a portable anymap as output.
+%.IX cut
+The
+{\it x}
+and
+{\it y}
+can be negative, in which case they are interpreted
+relative to the right and bottom of the anymap, respectively.
+\shead{SEE ALSO}
+pnm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmcut.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:20 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmdepth.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmdepth.1
+%
+\phead{pnmdepth}{1}{12 January 1991}{}{}
+
+%.IX pnmdepth
+\shead{NAME}
+pnmdepth - change the maxval in a portable anymap
+\shead{SYNOPSIS}
+{\bf pnmdepth}
+{\it newmaxval}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Scales all the pixel values, and writes out the image with the new maxval.
+Scaling the colors down to a smaller maxval will result in some loss
+of information.
+\par
+Be careful of off-by-one errors when choosing the new maxval.
+For instance, if you want the color values to be five bits wide,
+use a maxval of 31, not 32.
+\shead{SEE ALSO}
+pnm(5), ppmquant(1), ppmdither(1)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmdepth.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:20 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmenlarge.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmenlarge.1
+%
+\phead{pnmenlarge}{1}{26 February 1989}{}{}
+
+%.IX pnmenlarge
+\shead{NAME}
+pnmenlarge - read a portable anymap and enlarge it N times
+\shead{SYNOPSIS}
+{\bf pnmenlarge}
+{\it N}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Replicates its pixels
+{\it N}
+times, and produces a portable anymap as output.
+%.IX enlarging
+\par
+{\it pnmenlarge}
+can only enlarge by integer factors.
+The slower but more general
+{\it pnmscale}
+%.IX pnmscale
+can enlarge or reduce by arbitrary
+factors, and
+{\it pbmreduce}
+%.IX pbmreduce
+can reduce by integer factors, but only for bitmaps.
+\par
+If you enlarge by a factor of 3 or more, you should probably add a
+{\it pnmsmooth}
+%.IX pnmsmooth
+step; otherwise, you can see the original pixels in the resulting image.
+\shead{SEE ALSO}
+pbmreduce(1), pnmscale(1), pnmsmooth(1), pnm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmenlarge.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:21 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmfile.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmfile.1
+%
+\phead{pnmfile}{1}{9 January 1991}{}{}
+
+%.IX pnmfile
+\shead{NAME}
+pnmfile - describe a portable anymap
+\shead{SYNOPSIS}
+{\bf pnmfile}
+{\rm [}{\it pnmfile}{\rm ]}
+{\rm ...}
+\shead{DESCRIPTION}
+Reads one or more portable anymaps as input.
+Writes out short descriptions of the image type, size, etc.
+This is mostly for use in shell scripts, so the format is not
+particularly pretty.
+\shead{SEE ALSO}
+pnm(5), file(1)
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmfile.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:21 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmflip.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmflip.1
+%
+\phead{pnmflip}{1}{25 July 1989}{}{}
+
+%.IX pnmflip
+\shead{NAME}
+pnmflip - perform one or more flip operations on a portable anymap
+\shead{SYNOPSIS}
+{\bf pnmflip}
+{\rm [}{\bf -leftright}{\rm $|$}{\bf -lr}{\rm ]}
+{\rm [}{\bf -topbottom}{\rm $|$}{\bf -tb}{\rm ]}
+{\rm [}{\bf -transpose}{\rm $|$}{\bf -xy}{\rm ]}
+{\rm [}{\bf -rotate90}{\rm $|$}{\bf -r90}{\rm $|$}{\bf -ccw}
+{\rm ]}
+{\rm [}{\bf -rotate270}{\rm $|$}{\bf -r270}{\rm $|$}{\bf -cw}
+{\rm ]}
+{\rm [}{\bf -rotate180}{\rm $|$}{\bf -r180}{\rm ]}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Performs one or more flip operations, in the order specified, and
+writes out a portable anymap.
+%.IX rotation
+%.IX reflection
+%.IX transposition
+\shead{OPTIONS}
+\par
+The flip operations available are: left for right
+{\rm (}{\bf -leftright}
+or
+{\bf -lr}{\rm );}
+top for bottom
+{\rm (}{\bf -topbottom}
+or
+{\bf -tb}{\rm );}
+and transposition
+{\rm (}{\bf -transpose}
+or
+{\bf -xy}{\rm ).}
+In addition, some canned concatenations are available:
+{\bf -rotate90}
+or
+{\bf -ccw}
+is equivalent to
+{\bf -transpose}
+{\bf -topbottom}{\rm ;}
+{\bf -rotate270}
+or
+{\bf -cw}
+is equivalent to
+{\bf -transpose}
+{\bf -leftright}{\rm ;}
+and
+{\bf -rotate180}
+is equivalent to
+{\bf -leftright}
+{\bf -topbottom}{\rm .}
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pnmrotate(1), pnm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmflip.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:29 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmgamma.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmgamma.1
+%
+\phead{pnmgamma}{1}{12 January 1991}{}{}
+
+%.IX pnmgamma
+\shead{NAME}
+pnmgamma - perform gamma correction on a portable anymap
+\shead{SYNOPSIS}
+{\bf pnmgamma}
+{\it value}
+{\rm [}{\it pnmfile}{\rm ]}
+\nwl
+{\bf pnmgamma}
+{\it redvalue greenvalue bluevalue}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Performs gamma correction,
+and produces a portable anymap as output.
+%.IX "gamma correction"
+\par
+The arguments specify what gamma value(s) to use.
+A value of 1.0 leaves the image alone, less than one darkens it,
+and greater than one lightens it.
+\shead{SEE ALSO}
+pnm(5)
+\shead{AUTHOR}
+\copyright 1991 by Bill Davidson and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmgamma.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:22 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnminvert.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnminvert.1
+%
+\phead{pnminvert}{1}{08 August 1989}{}{}
+
+%.IX pnminvert
+\shead{NAME}
+pnminvert - invert a portable anymap
+\shead{SYNOPSIS}
+{\bf pnminvert}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Inverts it black for white and produces a portable anymap as output.
+\shead{SEE ALSO}
+pnm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnminvert.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:32 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmnlfilt.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmnlfilt.1
+%
+\phead{pnmnlfilt}{1}{5 February 1993}{}{}
+
+%.IX pnmnlfilt
+\shead{NAME}
+pnmnlfilt - non-linear filters: smooth, alpha trim mean, optimal
+estimation smoothing, edge enhancement.
+\shead{SYNOPSIS}
+{\bf pnmnlfilt}
+{\rm alpha}
+{\rm radius}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+%.IX smoothing
+%.IX dithering
+%.IX alpha trim
+%.IX mean filter
+%.IX median filter
+%.IX optimal estimation
+This is something of a swiss army knife filter. It has 3 distinct operating
+modes. In all of the modes each pixel in the image is examined and processed
+according to it and its surrounding pixels values. Rather than using the
+9 pixels in a 3x3 block, 7 hexagonal area samples are taken, the size of
+the hexagons being controlled by the radius parameter. A radius value of
+0.3333 means that the 7 hexagons exactly fit into the center pixel ({\it i.e.},
+there will be no filtering effect). A radius value of 1.0 means that
+the 7 hexagons exactly fit a 3x3 pixel array.
+\shead{Alpha trimmed mean filter.	(0.0 $<$= alpha $<$= 0.5)}
+\par
+The value of the center pixel will be
+replaced by the mean of the 7 hexagon values, but the 7 values are
+sorted by size and the top and bottom alpha portion of the 7 are
+excluded from the mean.  This implies that an alpha value of 0.0 gives
+the same sort of output as a normal convolution ({\it i.e.}, averaging or
+smoothing filter), where radius will determine the ``strength'' of the
+filter. A good value to start from for subtle filtering is alpha = 0.0, radius = 0.55
+For a more blatant effect, try alpha 0.0 and radius 1.0
+\par
+An alpha value of 0.5 will cause the median value of the
+7 hexagons to be used to replace the center pixel value. This sort
+of filter is good for eliminating ``pop'' or single pixel noise from
+an image without spreading the noise out or smudging features on
+the image. Judicious use of the radius parameter will fine tune the
+filtering. Intermediate values of alpha give effects somewhere
+between smoothing and ``pop'' noise reduction. For subtle filtering
+try starting with values of alpha = 0.4, radius = 0.6  For a more blatant
+effect try alpha = 0.5, radius = 1.0
+\shead{Optimal estimation smoothing. (1.0 $<$= alpha $<$= 2.0)}
+\par
+This type of filter applies a smoothing filter adaptively over the image.
+For each pixel the variance of the surrounding hexagon values is calculated,
+and the amount of smoothing is made inversely proportional to it. The idea
+is that if the variance is small then it is due to noise in the image, while
+if the variance is large, it is because of ``wanted'' image features. As usual
+the radius parameter controls the effective radius, but it probably advisable to
+leave the radius between 0.8 and 1.0 for the variance calculation to be meaningful.
+The alpha parameter sets the noise threshold, over which less smoothing will be done.
+This means that small values of alpha will give the most subtle filtering effect,
+while large values will tend to smooth all parts of the image. You could start
+with values like alpha = 1.2, radius = 1.0 and try increasing or decreasing the
+alpha parameter to get the desired effect. This type of filter is best for
+filtering out dithering noise in both bitmap and color images.
+\shead{Edge enhancement. (-0.1 $>$= alpha $>$= -0.9)}
+\par
+This is the opposite type of filter to the smoothing filter. It enhances
+edges. The alpha parameter controls the amount of edge enhancement, from
+subtle (-0.1) to blatant (-0.9). The radius parameter controls the effective
+radius as usual, but useful values are between 0.5 and 0.9. Try starting
+with values of alpha = 0.3, radius = 0.8
+\shead{Combination use.}
+\par
+The various modes of 
+{\bf pnmnlfilt}
+can be used one after the other to get the desired result. For instance to
+turn a monochrome dithered image into a grayscale image you could try
+one or two passes of the smoothing filter, followed by a pass of the optimal estimation
+filter, then some subtle edge enhancement. Note that using edge enhancement is
+only likely to be useful after one of the non-linear filters (alpha trimmed mean
+or optimal estimation filter), as edge enhancement is the direct opposite of
+smoothing.
+\par
+For reducing color quantization noise in images ({\it i.e.}, turning .gif files back into
+24 bit files) you could try a pass of the optimal estimation filter
+(alpha 1.2, radius 1.0), a pass of the median filter (alpha 0.5, radius 0.55),
+and possibly a pass of the edge enhancement filter.
+Several passes of the optimal estimation filter with declining alpha
+values are more effective than a single pass with a large alpha value.
+As usual, there is a tradeoff between filtering effectiveness and loosing
+detail. Experimentation is encouraged.
+\shead{References:}
+\par
+The alpha-trimmed mean filter is 
+based on the description in IEEE CG\&A May 1990 
+Page 23 by Mark E. Lee and Richard A. Redner,
+and has been enhanced to allow continuous alpha adjustment.
+\par
+The optimal estimation filter is taken from an article ``Converting Dithered
+Images Back to Gray Scale'' by Allen Stenger, Dr Dobb's Journal, November
+1992, and this article references ``Digital Image Enhancement and Noise Filtering by
+Use of Local Statistics'', Jong-Sen Lee, IEEE Transactions on Pattern Analysis and
+Machine Intelligence, March 1980.
+\par
+The edge enhancement details are from pgmenhance(1),
+which is taken from Philip R. Thompson's ``xim''
+program, which in turn took it from section 6 of ``Digital Halftones by
+Dot Diffusion'', D. E. Knuth, ACM Transaction on Graphics Vol. 6, No. 4,
+October 1987, which in turn got it from two 1976 papers by J. F. Jarvis
+{\it et. al.}
+\shead{SEE ALSO}
+pgmenhance(1), pnmconvol(1), pnm(5)
+\shead{BUGS}
+Integers and tables may overflow if PPM\_MAXMAXVAL is greater than 255.
+\shead{AUTHOR}
+Graeme W. Gill    graeme@labtam.oz.au
+%
+% end of input file: pnmnlfilt.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:23 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmnoraw.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmnoraw.1
+%
+\phead{pnmnoraw}{1}{8 January 1991}{}{}
+
+%.IX pnmnoraw
+\shead{NAME}
+pnmnoraw - force a portable anymap into plain format
+\shead{SYNOPSIS}
+{\bf pnmnoraw}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Writes it out in plain (non-raw) format.
+This is fairly useless if you haven't defined the PBMPLUS\_RAWBITS
+compile-time option.
+%.IX RAWBITS
+\shead{SEE ALSO}
+pnm(5)
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmnoraw.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:33 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmpad.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmpad.1
+%
+\phead{pnmpad}{12 Dec 1990}{}{}{}
+
+\shead{NAME}
+pnmpad - add borders to portable anymap
+\shead{SYNOPSIS}
+pnmpad [-white$|$-black] [-l\#] [-r\#] [-t\#] [-b\#] [pnmfile]
+\shead{DESCRIPTION}
+Reads a portable anymap as input. Outputs a portable anymap with extra
+borders of the sizes specified. The colour of the borders can be set to
+black or white (default black).
+
+\shead{SEE ALSO}
+pbmmake(1), pnmpaste(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1990 by Angus Duggan.
+\copyright 1989 by Jef Poskanzer.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.  This software is provided "as is" without express or
+implied warranty.
+%
+% end of input file: pnmpad.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:23 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmpaste.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmpaste.1
+%
+\phead{pnmpaste}{1}{21 February 1991}{}{}
+
+%.IX pnmpaste
+\shead{NAME}
+pnmpaste - paste a rectangle into a portable anymap
+\shead{SYNOPSIS}
+{\bf pnmpaste}
+{\rm [}{\bf -replace}{\rm $|$}{\bf -or}{\rm $|$}{\bf -and}
+{\rm $|$}{\bf -xor}{\rm ]}
+{\it frompnmfile x y}
+{\rm [}{\it intopnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads two portable anymaps as input.
+Inserts the first anymap into the second at the specified location,
+and produces a portable anymap the same size as the second as output.
+%.IX paste
+If the second anymap is not specified, it is read from stdin.
+The
+{\it x}
+and
+{\it y}
+can be negative, in which case they are interpreted
+relative to the right and bottom of the anymap, respectively.
+\par
+This tool is most useful in combination with
+{\it pnmcut}{\rm .}
+%.IX pnmcut
+For instance, if you want to edit a small segment of a large
+image, and your image editor cannot edit the
+large image, you can cut out the segment you are interested in,
+edit it, and then paste it back in.
+\par
+Another useful companion tool is
+{\it pbmmask}{\rm .}
+%.IX pnmmask
+%.OPTIONS
+\par
+The optional flag specifies the operation to use when doing the paste.
+The default is
+{\bf -replace}{\rm .}
+The other, logical operations are only allowed if both input images
+are bitmaps.
+%.IX "logical operations"
+These operations act as if white is TRUE and black is FALSE.
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pnmcut(1), pnminvert(1), pnmarith(1), pnm(5), pbmmask(1)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmpaste.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:29 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmrotate.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmrotate.1
+%
+\phead{pnmrotate}{1}{12 January 1991}{}{}
+
+%.IX pnmrotate
+\shead{NAME}
+pnmrotate - rotate a portable anymap by some angle
+\shead{SYNOPSIS}
+{\bf pnmrotate}
+{\rm [}{\bf -noantialias}{\rm ]}
+{\it angle}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Rotates it by the specified angle
+and produces a portable anymap as output.
+%.IX rotation
+If the input file is in color, the output will be too,
+otherwise it will be grayscale.
+The angle is in degrees (floating point), measured counter-clockwise.
+It can be negative, but it should be between -90 and 90.
+Also, for rotations greater than 45 degrees you may get better results
+if you first use
+{\it pnmflip}
+%.IX pnmflip
+to do a 90 degree rotation and then
+{\it pnmrotate}
+less than 45 degrees back the other direction
+\par
+The rotation algorithm is Alan Paeth's three-shear method.
+Each shear is implemented by looping over the source pixels and distributing
+fractions to each of the destination pixels.
+This has an ``anti-aliasing'' effect - it avoids jagged edges and similar
+artifacts.
+%.IX anti-aliasing
+However, it also means that the original colors or gray levels in the image
+are modified.
+If you need to keep precisely the same set of colors, you can use the
+{\bf -noantialias}
+flag.  This does the shearing by moving pixels without changing their values.
+If you want anti-aliasing and don't care about the precise colors, but
+still need a limited *number* of colors, you can run the result through
+{\it ppmquant}{\rm .}
+%.IX ppmquant
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{REFERENCES}
+``A Fast Algorithm for General Raster Rotation'' by Alan Paeth,
+Graphics Interface '86, pp. 77-81.
+\shead{SEE ALSO}
+pnmshear(1), pnmflip(1), pnm(5), ppmquant(1)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmrotate.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:24 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmscale.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmscale.1
+%
+\phead{pnmscale}{1}{12 January 1991}{}{}
+
+%.IX pnmscale
+\shead{NAME}
+pnmscale - scale a portable anymap
+\shead{SYNOPSIS}
+{\bf pnmscale}
+{\it s}
+{\rm [}{\it pnmfile}{\rm ]}
+\nwl
+{\bf pnmscale}
+{\bf -xsize}{\rm $|$}{\bf -width}{\rm $|$}{\bf -ysize}{\rm $|$}
+{\bf -height}
+{\it s}
+{\rm [}{\it pnmfile}{\rm ]}
+\nwl
+{\bf pnmscale}
+{\bf -xscale}{\rm $|$}{\bf -yscale}
+{\it s}
+{\rm [}{\it pnmfile}{\rm ]}
+\nwl
+{\bf pnmscale}
+{\bf -xscale}{\rm $|$}{\bf -xsize}{\rm $|$}{\bf -width}
+{\it s}
+{\bf -yscale}{\rm $|$}{\bf -ysize}{\rm $|$}{\bf -height}
+{\it s}
+{\rm [}{\it pnmfile}{\rm ]}
+\nwl
+{\bf pnmscale -xysize}
+{\it x y}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Scales it by the specified factor or factors and produces a portable
+anymap as output.
+%.IX shrinking
+%.IX enlarging
+If the input file is in color, the output will be too,
+otherwise it will be grayscale.
+You can both enlarge (scale factor $>$ 1) and reduce (scale factor $<$ 1).
+\par
+You can specify one dimension as a pixel size, and the other dimension
+will be scaled correspondingly.
+\par
+You can specify one dimension as a scale, and the other dimension
+will not be scaled.
+\par
+You can specify different sizes or scales for each axis.
+\par
+Or, you can use the special
+{\bf -xysize}
+flag, which fits the image into
+the specified size without changing the aspect ratio.
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\par
+If you enlarge by a factor of 3 or more, you should probably add a
+{\it pnmsmooth}
+%.IX pnmsmooth
+step; otherwise, you can see the original pixels in the resulting image.
+\shead{SEE ALSO}
+pbmreduce(1), pnmenlarge(1), pnmsmooth(1), pnm(5)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmscale.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:30 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmshear.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmshear.1
+%
+\phead{pnmshear}{1}{12 January 1991}{}{}
+
+%.IX pnmshear
+\shead{NAME}
+pnmshear - shear a portable anymap by some angle
+\shead{SYNOPSIS}
+{\bf pnmshear}
+{\rm [}{\bf -noantialias}{\rm ]}
+{\it angle}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Shears it by the specified angle and produces a portable
+anymap as output.
+%.IX shearing
+If the input file is in color, the output will be too,
+otherwise it will be grayscale.
+The angle is in degrees (floating point), and measures this:
+\nofill
+    +-------+  +-------+
+    $|$       $|$  $|$\bs        \bs 
+    $|$  OLD  $|$  $|$ \bs   NEW  \bs 
+    $|$       $|$  $|$an\bs        \bs 
+    +-------+  $|$gle+-------+
+\fill
+If the angle is negative, it shears the other way:
+\nofill
+    +-------+  $|$-an+-------+
+    $|$       $|$  $|$gl/       /
+    $|$  OLD  $|$  $|$e/  NEW  /
+    $|$       $|$  $|$/       /
+    +-------+  +-------+
+\fill
+The angle should not get too close to 90 or -90, or the resulting
+anymap will be unreasonably wide.
+\par
+The shearing is implemented by looping over the source pixels and distributing
+fractions to each of the destination pixels.
+This has an ``anti-aliasing'' effect - it avoids jagged edges and similar
+artifacts.
+%.IX anti-aliasing
+However, it also means that the original colors or gray levels in the image
+are modified.
+If you need to keep precisely the same set of colors, you can use
+the
+{\bf -noantialias}
+flag.  This does the shearing by moving pixels without changing their values.
+If you want anti-aliasing and don't care about the precise colors, but
+still need a limited *number* of colors, you can run the result through
+{\it ppmquant}{\rm .}
+%.IX ppmquant
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pnmrotate(1), pnmflip(1), pnm(5), ppmquant(1)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmshear.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:24 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmtile.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmtile.1
+%
+\phead{pnmtile}{1}{13 May 1989}{}{}
+
+%.IX pnmtile
+\shead{NAME}
+pnmtile - replicate a portable anymap into a specified size
+\shead{SYNOPSIS}
+{\bf pnmtile}
+{\it width height}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Replicates it until it is the specified size,
+and produces a portable anymap as output.
+%.IX tiling
+\shead{SEE ALSO}
+pnm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmtile.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Mon Feb  7 08:49:06 1994
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmtofits.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmtofits.1
+%
+\phead{pnmtofits}{1}{5 Dec 1992}{}{}
+\shead{NAME}
+pnmtofits - convert a portable anymap into FITS format
+\shead{SYNOPSIS}
+{\bf pnmtofits}
+{\rm [}{\bf --max}
+{\it f}{\rm ]}
+{\rm [}{\bf --min}
+{\it f}{\rm ]}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Produces a FITS (Flexible Image Transport System) file as output.
+The resolution of the output file is either 8 bits/pixel,
+or 16 bits/pixel, depending on the value of maxval in the input file.
+If the input file is a portable bitmap or a portable graymap, the output file
+consists of a single plane image (NAXIS = 2). If instead the input file is
+a portable pixmap, the output file will consist of a three-plane image
+(NAXIS = 3, NAXIS3 = 3).
+A full description of the FITS format
+can be found in Astronomy \& Astrophysics Supplement Series 44 (1981), page 363.
+\shead{OPTIONS}
+\par
+Flags 
+{\bf --min}
+and 
+{\bf --max}
+can be used to set DATAMAX, DATAMIN, BSCALE and BZERO in the FITS
+header, but do not cause the data to be rescaled.
+\shead{SEE ALSO}
+fitstopnm(1), pgm(5)
+\shead{AUTHOR}
+Copyright (C) 1989 by Wilson H. Bent (whb@hoh-2.att.com), with
+modifications
+by Alberto Accomazzi (alberto@cfa.harvard.edu).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmtofits.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:25 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmtops.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmtops.1
+%
+\phead{pnmtops}{1}{26 October 1991}{}{}
+
+%.IX pnmtops
+\shead{NAME}
+pnmtops - convert portable anymap to PostScript
+\shead{SYNOPSIS}
+{\bf pnmtops}
+{\rm [}{\bf -scale}
+{\it s}{\rm ]}
+{\rm [}{\bf -turn}{\rm $|$}{\bf -noturn}{\rm ]}
+{\rm [}{\bf -rle}{\rm $|$}{\bf -runlength}{\rm ]}
+{\rm [}{\bf -dpi}
+{\it n}{\rm ]}
+{\rm [}{\bf -width}
+{\it n}{\rm ]}
+{\rm [}{\bf -height}
+{\it n}{\rm ]}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Produces Encapsulated PostScript as output.
+%.IX PostScript
+\par
+If the input file is in color (PPM), a color PostScript file gets
+written.
+Some PostScript interpreters can't handle color PostScript.
+If you have one of these you will need to run your image through
+{\it ppmtopgm}
+first.
+\par
+Note that there is no pstopnm
+tool - this transformation is one-way, because a pstopnm tool would
+be a full-fledged PostScript interpreter, which is beyond the scope
+of this package.
+However, see the
+{\it psidtopgm}
+tool, which can read grayscale non-runlength PostScript image data.
+Also, if you're willing to install the fairly large GhostScript package,
+it comes with a pstoppm script.
+\shead{OPTIONS}
+\par
+The
+{\bf -scale}
+flag controls the scale of the result.  The default scale is 1,
+which on a 300 dpi printer such as the Apple LaserWriter makes
+the output look about the same size as the input would if it was displayed
+on a typical 72 dpi screen.
+To get one PNM pixel per 300 dpi printer pixel, use ``-scale 0.25''.
+\par
+The
+{\bf -turn}
+and
+{\bf -noturn}
+flags control whether the image gets turned 90 degrees.
+Normally, if an image is wider than it is tall, it gets turned
+automatically to better fit the page.
+If the
+{\bf -turn}
+flag is specified, it will be turned no matter what its shape; and if the
+{\bf -noturn}
+flag is specified, it will
+{\it not}
+be turned no matter what its shape.
+\par
+The
+{\bf -rle}
+or
+{\bf -runlength}
+flag specifies run-length compression.  This may save
+time if the host-to-printer link is slow; but normally the printer's processing
+time dominates, so
+{\bf -rle}
+makes things slower.
+\par
+The
+{\bf -dpi}
+flag lets you specify the dots per inch of your output device.
+The default is 300 dpi.
+In theory PostScript is device-independent and you don't have to
+worry about this, but in practice its raster rendering can have
+unsightly bands if the device pixels and the image pixels aren't
+in sync.
+\par
+The
+{\bf -width}
+and
+{\bf -height}
+flags let you specify the size of the page.
+The default is 8.5 inches by 11 inches.
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pnm(5), psidtopgm(1)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmtops.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:26 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmtorast.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmtorast.1
+%
+\phead{pnmtorast}{1}{12 January 1991}{}{}
+
+%.IX pnmtorast
+\shead{NAME}
+pnmtorast - convert a portable pixmap into a Sun rasterfile
+\shead{SYNOPSIS}
+{\bf pnmtorast}
+{\rm [}{\bf -standard}{\rm $|$}{\bf -rle}{\rm ]}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces a Sun rasterfile as output.
+%.IX Sun
+%.IX rasterfile
+\par
+Color values in Sun rasterfiles are eight bits wide, so
+{\it pnmtorast}
+will automatically scale colors to have a maxval of 255.
+An extra
+{\it pnmdepth}
+step is not necessary.
+\shead{OPTIONS}
+\par
+The
+{\bf -standard}
+flag forces the result to be in RT\_STANDARD form; the
+{\bf -rle}
+flag, RT\_BYTE\_ENCODED, which is smaller but, well, less standard.
+The default is
+{\bf -rle}{\rm .}
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+rasttopnm(1), pnm(5)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmtorast.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:31 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmtosir.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmtosir.1
+%
+\phead{pnmtosir}{1}{20 March 1991}{}{}
+
+\shead{NAME}
+pnmtosir - convert a portable anymap into a Solitaire format
+\shead{SYNOPSIS}
+{\bf pnmtosir}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Produces a Solitaire Image Recorder format.
+\par
+pnmtosir produces an MGI TYPE 17 file for
+{\it pbm}
+and
+{\it pgm}
+files.
+For
+{\it ppm}{\rm ,}
+it writes a MGI TYPE 11 file.
+\shead{SEE ALSO}
+sirtopnm(1), pnm(5)
+\shead{BUGS}
+
+\shead{AUTHOR}
+\copyright 1991 by Marvin Landis.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+
+%
+% end of input file: pnmtosir.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:36 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmtotiff.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmtotiff.1
+%
+\phead{pnmtotiff}{1}{13 January 1991}{}{}
+
+%.IX pnmtotiff
+\shead{NAME}
+pnmtotiff - convert a a portable anymap into a TIFF file
+\shead{SYNOPSIS}
+{\bf pnmtotiff}
+{\rm [}{\bf -none}{\rm $|$}{\bf -packbits}{\rm $|$}
+{\bf -lzw}{\rm $|$}{\bf -g3}{\rm $|$}{\bf -g4}{\rm ]}
+{\rm [}{\bf -2d}{\rm ]}
+{\rm [}{\bf -fill}{\rm ]}
+{\rm [}{\bf -predictor}
+{\it n}{\rm ]}
+{\rm [}{\bf -msb2lsb}{\rm $|$}{\bf -lsb2msb}{\rm ]}
+{\rm [}{\bf -rowsperstrip}
+{\it n}{\rm ]}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Produces a TIFF file as output.
+%.IX TIFF
+\shead{OPTIONS}
+\par
+By default,
+{\it pnmtotiff}
+creates a TIFF file with LZW compression.
+This is your best bet most of the time.
+However, some TIFF readers can't deal with it.
+If you want to try another compression scheme or tweak some of the
+other even more obscure output options, there are a number of
+flags to play with.
+\par
+The
+{\bf -none}{\rm ,}
+{\bf -packbits}{\rm ,}
+{\bf -lzw}{\rm ,}
+{\bf -g3}{\rm ,}
+and
+{\bf -g4}
+options are used to override the default and set the compression
+scheme used in creating the output file.  The CCITT Group 3 and Group
+4 compression algorithms can only be used with bilevel data.  The
+{\bf -2d}
+and
+{\bf -fill}
+options are meaningful only with Group 3 compression:
+{\bf -2d}
+requests 2-dimensional encoding, while
+{\bf -fill}
+requests that each encoded scanline be zero-filled to a byte boundry.
+The
+{\bf -predictor}
+option is only meaningful with LZW compression: a predictor value of 2
+causes each scanline of the output image to undergo horizontal
+differencing before it is encoded; a value of 1 forces each scanline
+to be encoded without differencing.
+\rm
+By default,
+{\it pnmtotiff}
+creates a TIFF file with msb-to-lsb fill order.
+The
+{\bf -msb2lsb}
+and
+{\bf -lsb2msb}
+options are used to override the default and set the fill order used
+in creating the file.
+\rm
+The
+{\bf -rowsperstrip}
+option can be used to set the number of rows (scanlines) in each
+strip of data in the output file.  By default, the output file has
+the number of rows per strip set to a value that will ensure each
+strip is no more than 8 kilobytes long.
+\shead{BUGS}
+This program is not self-contained.  To use it you must fetch the
+TIFF Software package listed in the OTHER.SYSTEMS file and configure
+PBMPLUS to use libtiff.  See PBMPLUS's Makefile for details on this
+configuration.
+\shead{SEE ALSO}
+tifftopnm(1), pnm(5)
+\shead{AUTHOR}
+Derived by Jef Poskanzer from ras2tiff.c, which is
+\copyright 1990 by Sun Microsystems, Inc.\hfil\break
+Author: Patrick J. Naughton (naughton@wind.sun.com).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted,
+% provided that the above copyright notice appear in all copies and that
+% both that copyright notice and this permission notice appear in
+% supporting documentation.
+% 
+% This file is provided AS IS with no warranties of any kind.  The author
+% shall have no liability with respect to the infringement of copyrights,
+% trade secrets or any patents by this file or any part thereof.  In no
+% event will the author be liable for any lost revenue or profits or
+% other special, indirect and consequential damages.
+%
+% end of input file: pnmtotiff.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:26 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: pnmtoxwd.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: pnmtoxwd.1
+%
+\phead{pnmtoxwd}{1}{24 September 1991}{}{}
+
+%.IX pnmtoxwd
+\shead{NAME}
+pnmtoxwd - convert a portable anymap into an X11 window dump
+\shead{SYNOPSIS}
+{\bf pnmtoxwd}
+{\rm [}{\bf -pseudodepth}
+{\it n}{\rm ]}
+{\rm [}{\bf -directcolor}{\rm ]}
+{\rm [}{\it pnmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable anymap as input.
+Produces an X11 window dump as output.
+%.IX XWD
+%.IX "X window system"
+This window dump can be displayed using the xwud tool.
+\par
+Normally, pnmtoxwd produces a StaticGray dump file for
+{\it pbm}
+and
+{\it pgm}
+files.
+For
+{\it ppm}{\rm ,}
+it writes a PseudoColor dump file if there are up
+to 256 colors in the input, and a DirectColor dump file otherwise.
+The
+{\bf -directcolor}
+flag can be used to force a DirectColor dump.
+And the
+{\bf -pseudodepth}
+flag can be used to change the depth of PseudoColor dumps from the default
+of 8 bits / 256 colors.
+\shead{SEE ALSO}
+xwdtopnm(1), pnm(5), xwud(1)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: pnmtoxwd.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:13 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppm.5
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppm.5
+%
+\phead{ppm}{5}{27 September 1991}{}{}
+
+\shead{NAME}
+ppm - portable pixmap file format
+\shead{DESCRIPTION}
+The portable pixmap format is a lowest common denominator color image
+file format.
+%.IX "PPM file format"
+The definition is as follows:
+\begin{IPlist}
+\IPitem{{-}}
+A ``magic number'' for identifying the file type.
+A ppm file's magic number is the two characters ``P3''.
+%.IX "magic numbers"
+\IPitem{{-}}
+Whitespace (blanks, TABs, CRs, LFs).
+\IPitem{{-}}
+A width, formatted as ASCII characters in decimal.
+\IPitem{{-}}
+Whitespace.
+\IPitem{{-}}
+A height, again in ASCII decimal.
+\IPitem{{-}}
+Whitespace.
+\IPitem{{-}}
+The maximum color-component value, again in ASCII decimal.
+\IPitem{{-}}
+Whitespace.
+\IPitem{{-}}
+Width * height pixels, each three ASCII decimal values between 0 and the
+specified maximum value, starting at the top-left
+corner of the pixmap, proceeding in normal English reading order.
+The three values for each pixel represent red, green, and blue, respectively;
+a value of 0 means that color is off, and the maximum value means that color
+is maxxed out.
+\IPitem{{-}}
+Characters from a ``\#'' to the next end-of-line are ignored (comments).
+\IPitem{{-}}
+No line should be longer than 70 characters.
+\end{IPlist}
+
+\par
+Here is an example of a small pixmap in this format:
+\nofill
+P3
+\# feep.ppm
+4 4
+15
+ 0  0  0    0  0  0    0  0  0   15  0 15
+ 0  0  0    0 15  7    0  0  0    0  0  0
+ 0  0  0    0  0  0    0 15  7    0  0  0
+15  0 15    0  0  0    0  0  0    0  0  0
+\fill
+\par
+Programs that read this format should be as lenient as possible,
+accepting anything that looks remotely like a pixmap.
+\par
+There is also a variant on the format, available
+by setting the RAWBITS option at compile time.  This variant is
+different in the following ways:
+%.IX RAWBITS
+\begin{IPlist}
+\IPitem{{-}}
+The ``magic number'' is ``P6'' instead of ``P3''.
+\IPitem{{-}}
+The pixel values are stored as plain bytes, instead of ASCII decimal.
+\IPitem{{-}}
+Whitespace is not allowed in the pixels area, and only a single character
+of whitespace (typically a newline) is allowed after the maxval.
+\IPitem{{-}}
+The files are smaller and many times faster to read and write.
+\end{IPlist}
+
+\par
+Note that this raw format can only be used for maxvals less than
+or equal to 255.
+If you use the
+{\it ppm}
+library and try to write a file with a larger maxval,
+it will automatically fall back on the slower but more general plain
+format.
+\shead{SEE ALSO}
+giftoppm(1), gouldtoppm(1), ilbmtoppm(1), imgtoppm(1), mtvtoppm(1),
+pcxtoppm(1), pgmtoppm(1), pi1toppm(1), picttoppm(1), pjtoppm(1), qrttoppm(1),
+rawtoppm(1), rgb3toppm(1), sldtoppm(1), spctoppm(1), sputoppm(1), tgatoppm(1),
+ximtoppm(1), xpmtoppm(1), yuvtoppm(1),
+ppmtoacad(1), ppmtogif(1), ppmtoicr(1), ppmtoilbm(1), ppmtopcx(1), ppmtopgm(1),
+ppmtopi1(1), ppmtopict(1), ppmtopj(1), ppmtopuzz(1), ppmtorgb3(1),
+ppmtosixel(1), ppmtotga(1), ppmtouil(1), ppmtoxpm(1), ppmtoyuv(1),
+ppmdither(1), ppmforge(1), ppmhist(1), ppmmake(1), ppmpat(1), ppmquant(1),
+ppmquantall(1), ppmrelief(1),
+pnm(5), pgm(5), pbm(5)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppm.5
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:08 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmbrighten.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmbrighten.1
+%
+\phead{ppmbrighten}{1}{20 Nov 1990}{}{}
+
+\shead{NAME}
+ppmbrighten - change an images Saturation and Value from an HSV map
+\shead{SYNOPSIS}
+ppmbrighten [-n] [-s $<$+- saturation$>$] [-v $<$+- value$>$] $<$ppmfile$>$
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Converts the image from RGB space to HSV space and changes
+the Value by $<$+- value$>$ as a percentage.
+Likewise with the Saturation.
+Doubling the Value would involve
+\par\vspace{1.0\baselineskip}
+ppmbrighten -v 100
+\par\vspace{1.0\baselineskip}
+to add 100 percent to the Value.
+\par
+The 'n' option normalizes the Value to exist between 0 and 1
+(normalized).
+\shead{SEE ALSO}
+pgmnorm(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1990 by Brian Moffet.
+\copyright 1989 by Jef Poskanzer.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.  This software is provided "as is" without express or
+implied warranty.
+\shead{NOTES}
+This program does not change the number of colors.
+%
+% end of input file: ppmbrighten.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Mon Feb  7 08:50:59 1994
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmchange.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmchange.1
+%
+\phead{ppmchange}{1}{3 December 1993}{}{}
+
+\shead{NAME}
+ppmchange - change all pixels of one color to another in a portable pixmap
+\shead{SYNOPSIS}
+{\bf ppmchange}
+{\it oldcolor newcolor [...]}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Changes all pixels of 
+{\it oldcolor}
+to 
+{\it newcolor}{\rm ,}
+leaving all others unchanged.
+Up to 256 colors may be replaced by specifying couples of colors on
+the command line.  
+\par
+The colors can be specified in five ways:
+\begin{TPlist}{o}
+\item[{o}]
+A name, assuming
+that a pointer to an X11-style color names file was compiled in.
+\item[{o}]
+An X11-style hexadecimal specifier: rgb:r/g/b, where r g and b are
+each 1- to 4-digit hexadecimal numbers.
+\item[{o}]
+An X11-style decimal specifier: rgbi:r/g/b, where r g and b are
+floating point numbers between 0 and 1.
+\item[{o}]
+For backwards compatibility, an old-X11-style hexadecimal
+number: \#rgb, \#rrggbb, \#rrrgggbbb, or \#rrrrggggbbbb.
+\item[{o}]
+For backwards compatibility, a triplet of numbers
+separated by commas: r,g,b, where r g and b are
+floating point numbers between 0 and 1.
+(This style was added before MIT came up with the similar rgbi style.)
+\end{TPlist}
+\shead{SEE ALSO}
+pgmtoppm(1), ppm(5)
+\shead{AUTHOR}
+Wilson H. Bent. Jr. (whb@usc.edu)
+with modifications by Alberto Accomazzi (alberto@cfa.harvard.edu)
+%
+% end of input file: ppmchange.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Mon Nov 29 13:33:23 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmdim.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmdim.1
+%
+\phead{ppmdim}{1}{16 November 1993}{}{}
+
+%.IX ppmdim
+\shead{NAME}
+ppmdim - dim a portable pixmap down to total blackness
+\shead{SYNOPSIS}
+ppmdim
+{\it dimfactor}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input. Diminishes its brightness by
+the specified dimfactor down to total blackness.
+The dimfactor may be in the range from 0.0 (total blackness,
+deep night, nada, null, nothing) to 1.0 (original picture's
+brightness).
+\par
+As
+{\it pnmgamma}
+does not do the brightness correction in the way I
+wanted it, this small program was written.
+\par
+ppmdim is similar to
+{\it ppmbrighten}
+, but not exactly the same.
+\shead{SEE ALSO}
+ppm(5), ppmflash(1), pnmgamma(1), ppmbrighten(1)
+\shead{AUTHOR}
+Copyright (C) 1993 by Frank Neumann
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmdim.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:08 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmdist.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmdist.1
+%
+\phead{ppmdist}{1}{22 July 1992}{}{}
+
+%.IX ppmdist
+\shead{NAME}
+ppmdist - simplistic grayscale assignment for machine generated, color images
+\shead{SYNOPSIS}
+{\bf ppmdist}
+{\rm [}{\bf -intensity}{\rm $|$}{\bf -frequency}{\rm ]}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input, performs a simplistic grayscale
+assignment intended for use with grayscale or bitmap printers.
+
+Often conversion from ppm to pgm will yield an image with contrast too
+low for good printer output.  The program maximizes contrast between
+the gray levels output.
+
+A ppm input of n colors is read, and a pgm of n gray levels is written.
+The gray levels take on the values 0..n-1, while maxval takes on n-1.
+
+The mapping from color to stepped grayscale can be performed in order
+of input pixel intensity, or input pixel frequency (number of repetitions).
+\shead{OPTIONS}
+\begin{TPlist}{}
+\item[{}]
+{\bf -frequency}
+Sort input colors by the number of times a color appears in the input,
+before mapping to evenly distributed graylevels of output.
+{\bf -intensity}
+Sort input colors by their grayscale intensity, before mapping to evenly
+distributed graylevels of output.  This is the default.
+\end{TPlist}
+
+\shead{BUGS}
+Helpful only for images with a very small number of colors.
+Perhaps should have been an option to ppmtopgm(1).
+\shead{SEE ALSO}
+ppmtopgm(1), ppmhist(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1993 by Dan Stromberg.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmdist.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:45 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmdither.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmdither.1
+%
+\phead{ppmdither}{1}{14 July 1991}{}{}
+
+%.IX ppmdither
+\shead{NAME}
+ppmdither - ordered dither for color images
+\shead{SYNOPSIS}
+{\bf ppmdither}
+{\rm [}{\bf -dim}
+{\it dimension}{\rm ]}
+{\rm [}{\bf -red}
+{\it shades}{\rm ]}
+{\rm [}{\bf -green}
+{\it shades}{\rm ]}
+{\rm [}{\bf -blue}
+{\it shades}{\rm ]}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input, and applies dithering to it to reduce
+the number of colors used down to the specified number of shades for
+each primary.
+The default number of shades is red=5, green=9, blue=5, for
+a total of 225 colors.
+To convert the image to a binary rgb format 
+suitable for color printers, use -red 2 -green 2 -blue 2.
+The maximum
+number of colors that can be used is 256 and can be computed as the 
+product of the number of red, green and blue shades.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -dim}{\it \ dimension}
+}
+\item[{{\bf -dim}{\it \ dimension}
+}]
+The size of the dithering matrix.
+Must be a power of 2.
+\item[{{\bf -red}{\it \ shades}
+}]
+The number of red shades to be used; minimum of 2.
+\item[{{\bf -green}{\it \ shades}
+}]
+The number of green shades to be used; minimum of 2.
+\item[{{\bf -blue}{\it \ shades}
+}]
+The number of blue shades to be used; minimum of 2.
+\end{TPlist}
+
+\shead{SEE ALSO}
+pnmdepth(1), ppmquant(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1991 by Christos Zoulas.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmdither.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Mon Nov 29 13:33:29 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmflash.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmflash.1
+%
+\phead{ppmflash}{1}{16 November 1993}{}{}
+
+%.IX ppmflash
+\shead{NAME}
+ppmflash - brighten a picture up to complete white-out
+\shead{SYNOPSIS}
+ppmflash 
+{\it flashfactor}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input. Increases its brightness by
+the specified flashfactor up to a total white-out image.
+The flashfactor may be in the range from 0.0 (original picture's
+brightness) to 1.0 (full white-out, The Second After).
+\par
+As
+{\it pnmgamma}
+does not do the brightness correction in the way I
+wanted it, this small program was written.
+\par
+This program is similar to
+{\it ppmbrighten}
+, but not exactly the same.
+\shead{SEE ALSO}
+ppm(5), ppmdim(1), pnmgamma(1), ppmbrighten(1)
+\shead{AUTHOR}
+Copyright (C) 1993 by Frank Neumann
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmflash.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:46 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmforge.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmforge.1
+%
+\phead{ppmforge}{1}{25 October 1991}{}{}
+
+%.IX ppmforge
+%.IX fractals
+%.IX clouds
+%.IX planets
+%.IX stars
+\shead{NAME}
+ppmforge - fractal forgeries of clouds, planets, and starry skies
+\shead{SYNOPSIS}
+\raggedright
+%.nh
+{\bf ppmforge}
+{\rm [}{\bf -clouds}{\rm ]}
+'in +9n
+{\rm [}{\bf -night}{\rm ]}
+{\rm [}{\bf -dimension}
+{\it dimen}{\rm ]}
+{\rm [}{\bf -hour}
+{\it hour}{\rm ]}
+{\rm [}{\bf -inclination$|$-tilt}
+{\it angle}{\rm ]}
+{\rm [}{\bf -mesh}
+{\it size}{\rm ]}
+{\rm [}{\bf -power}
+{\it factor}{\rm ]}
+{\rm [}{\bf -glaciers}
+{\it level}{\rm ]}
+{\rm [}{\bf -ice}
+{\it level}{\rm ]}
+{\rm [}{\bf -saturation}
+{\it sat}{\rm ]}
+{\rm [}{\bf -seed}
+{\it seed}{\rm ]}
+{\rm [}{\bf -stars}
+{\it fraction}{\rm ]}
+{\rm [}{\bf -xsize$|$-width}
+{\it width}{\rm ]}
+{\rm [}{\bf -ysize$|$-height}
+{\it height}{\rm ]}
+\ind{-4.5em}
+%.ad
+%.hy
+\shead{DESCRIPTION}
+{\bf ppmforge}
+generates three kinds of ``random fractal forgeries,'' the term coined
+by Richard F. Voss of the IBM Thomas J. Watson Research Center for
+seemingly realistic pictures of natural objects generated by simple
+algorithms embodying randomness and fractal self-similarity.  The
+techniques used by
+{\bf ppmforge}
+are essentially those
+given by Voss[1], particularly the technique of spectral synthesis
+explained in more detail by Dietmar Saupe[2].
+\par
+The program generates two varieties of pictures: planets and clouds,
+which are just different renderings of data generated in an identical
+manner, illustrating the unity of the fractal structure of these very
+different objects.  A third type of picture, a starry sky, is
+synthesised directly from pseudorandom numbers.
+\par
+The generation of planets or clouds begins with the preparation of an
+array of random data in the frequency domain.  The size of this
+array, the ``mesh size,'' can be set with the
+{\bf -mesh}
+option; the larger the mesh the more realistic the pictures but the
+calculation time and memory requirement increases as the square of the
+mesh size.  The fractal dimension, which you can specify with the
+{\bf -dimension}
+option, determines the roughness of the terrain on the planet or the
+scale of detail in the clouds.  As the fractal dimension is increased,
+more high frequency components are added into the random mesh.
+\par
+Once the mesh is generated, an inverse two dimensional Fourier
+transform is performed upon it.  This converts the original random
+frequency domain data into spatial amplitudes.  We scale the real
+components that result from the Fourier transform into numbers from 0
+to 1 associated with each point on the mesh.  You can further
+modify this number by applying a ``power law scale'' to it with the
+{\bf -power}
+option.   Unity scale
+leaves the numbers unmodified; a power scale of 0.5 takes the square
+root of the numbers in the mesh, while a power scale of 3 replaces the
+numbers in the mesh with their cubes.  Power law scaling is best
+envisioned by thinking of the data as representing the elevation of
+terrain; powers less than 1 yield landscapes with vertical scarps that
+look like glacially-carved valleys; powers greater than one make
+fairy-castle spires (which require large mesh sizes and high
+resolution for best results).
+\par
+After these calculations, we have a array of the specified size
+containing numbers that range from 0 to 1.  The pixmaps are generated as
+follows:
+\begin{TPlist}{{\bf Clouds}}
+\item[{{\bf Clouds}}]
+A colour map is created that ranges from pure blue to white by
+increasing admixture (desaturation) of blue with white.  Numbers less
+than 0.5 are coloured blue, numbers between 0.5 and 1.0 are coloured
+with corresponding levels of white, with 1.0 being pure white.
+\item[{{\bf Planet}}]
+The mesh is projected onto a sphere.  Values less than 0.5 are treated
+as water and values between 0.5 and 1.0 as land.  The water areas are
+coloured based upon the water depth, and land based on its elevation.
+The random depth data are used to create clouds over the oceans.  An
+atmosphere approximately like the Earth's is simulated; its light
+absorption is calculated to create a blue cast around the limb of the
+planet.  A function that rises from 0 to 1 based on latitude is
+modulated by the local elevation to generate polar ice caps--high
+altitude terrain carries glaciers farther from the pole.  Based on the
+position of the star with respect to the observer, the apparent colour
+of each pixel of the planet is calculated by ray-tracing from the star
+to the planet to the observer and applying a lighting model that sums
+ambient light and diffuse reflection (for most planets ambient light
+is zero, as their primary star is the only source of illumination).
+Additional random data are used to generate stars around the planet.
+\item[{{\bf Night}}]
+A sequence of pseudorandom numbers is used to generate stars with a
+user specified density.
+\end{TPlist}
+
+\par
+Cloud pictures always contain 256 or fewer colours and may be
+displayed on most colour mapped devices without further processing.
+Planet pictures often contain tens of thousands of colours which
+must be compressed with
+{\bf ppmquant}
+or
+{\bf ppmdither}
+before encoding in a colour mapped format.  If the display resolution is
+high enough,
+{\bf ppmdither}
+generally produces better looking planets.
+{\bf ppmquant}
+tends to create discrete colour bands, particularly in the oceans,
+which are unrealistic and distracting.  The number of colours in starry
+sky pictures generated with the
+{\bf -night}
+option depends on the value specified for
+{\bf -saturation}{\rm .}
+Small values limit the colour temperature distribution of the stars
+and reduce the number of colours in the image.
+If the
+{\bf -saturation}
+is set to 0, none of the stars will be coloured and the resulting
+image will never contain more than 256 colours.
+Night sky pictures with many different star colours often look
+best when colour compressed by
+{\bf pnmdepth}
+rather than
+{\bf ppmquant}
+or
+{\bf ppmdither}{\rm .}
+Try
+{\it newmaxval}
+settings of 63, 31, or 15 with
+{\bf pnmdepth}
+to reduce the number of colours in the picture to 256 or fewer.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -clouds}}
+\item[{{\bf -clouds}}]
+Generate clouds.  A pixmap of fractal clouds is generated.  Selecting clouds
+sets the default for fractal dimension to 2.15 and power scale factor
+to 0.75.
+\item[{{\bf -dimension}{\it \ dimen}
+}]
+Sets the fractal dimension to the specified
+{\it dimen}{\rm ,}
+which may be any floating point value between 0 and 3.  Higher fractal
+dimensions create more ``chaotic'' images, which require higher
+resolution output and a larger FFT mesh size to look good.  If no
+dimension is specified, 2.4 is used when generating planets and 2.15
+for clouds.
+\item[{{\bf -glaciers}{\it \ level}
+}]
+The floating point
+{\it level}
+setting controls the extent to which terrain elevation causes ice to
+appear at lower latitudes.  The default value of 0.75 makes the polar
+caps extend toward the equator across high terrain and forms glaciers
+in the highest mountains, as on Earth.  Higher values make ice sheets
+that cover more and more of the land surface, simulating planets in the
+midst of an ice age.  Lower values tend to be boring, resulting in
+unrealistic geometrically-precise ice cap boundaries.
+\item[{{\bf -hour}{\it \ hour}
+}]
+When generating a planet,
+{\it hour}
+is used as the ``hour angle at the central meridian.''  If you specify
+{\bf -hour\ 12}{\rm ,}
+for example, the planet will be fully illuminated, corresponding to
+high noon at the longitude at the centre of the screen.  You can
+specify any floating point value between 0 and 24 for
+{\it hour}{\rm ,}
+but values which place most of the planet in darkness (0 to 4 and 20
+to 24) result in crescents which, while pretty, don't give you many
+illuminated pixels for the amount of computing that's required.  If no
+{\bf -hour}
+option is specified, a random hour angle is chosen, biased so that
+only 25\% of the images generated will be crescents.
+\item[{{\bf -ice}{\it \ level}
+}]
+Sets the extent of the polar ice caps to the given floating point
+{\it level}{\rm .}
+The default level of 0.4 produces ice caps similar to those of the Earth.
+Smaller values reduce the amount of ice, while larger
+{\bf -ice}
+settings create more prominent ice caps.  Sufficiently large values,
+such as 100 or more, in conjunction with small settings for
+{\bf -glaciers}
+(try 0.1) create ``ice balls'' like Europa.
+\item[{{\bf -inclination$|$-tilt}{\it \ angle}
+}]
+The inclination angle of the planet with regard to its primary star is
+set to
+{\it angle}{\rm ,}
+which can be any floating point value from -90 to 90.  The inclination
+angle can be thought of as specifying, in degrees, the ``season'' the
+planet is presently experiencing or, more precisely, the latitude at
+which the star transits the zenith at local noon.  If 0, the planet
+is at equinox; the star is directly overhead at the equator.
+Positive values represent summer in the northern hemisphere, negative
+values summer in the southern hemisphere.  The Earth's inclination
+angle, for example, is about 23.5 at the June solstice, 0 at the
+equinoxes in March and September, and -23.5 at the December solstice.
+If no inclination angle is specified, a random value between -21.6 and
+21.6 degrees is chosen.
+\item[{{\bf -mesh}{\it \ size}
+}]
+A mesh of
+{\it size}{\rm \ by\ }{\it size}
+will be used for the fast Fourier transform (FFT).  Note that memory
+requirements and computation speed increase as the square of
+{\it size}{\rm ;}
+if you double the mesh size, the program will use four times the
+memory and run four times as long.  The default mesh is 256x256, which
+produces reasonably good looking pictures while using half a megabyte
+for the 256x256 array of single precision complex numbers
+required by the FFT.  On machines with limited memory capacity, you
+may have to reduce the mesh size to avoid running out of RAM.
+Increasing the mesh size produces better looking pictures; the
+difference becomes particularly noticeable when generating high
+resolution images with relatively high fractal dimensions (between 2.2
+and 3).
+\item[{{\bf -night}}]
+A starry sky is generated.  The stars are created by the same algorithm
+used for the stars that surround planet pictures, but the output
+consists exclusively of stars.
+\item[{{\bf -power}{\it \ factor}
+}]
+Sets the ``power factor'' used to scale elevations synthesised from
+the FFT to
+{\it factor}{\rm ,}
+which can be any floating point number greater than zero.  If no
+factor is specified a default of 1.2 is used if a planet is being
+generated, or 0.75 if clouds are selected by the
+{\bf -clouds}
+option.  The result of the FFT image synthesis is an array of elevation
+values between 0 and 1.  A non-unity power factor exponentiates each
+of these elevations to the specified power.  For example, a power
+factor of 2 squares each value, while a power factor of 0.5 replaces
+each with its square root.  (Note that exponentiating values between 0
+and 1 yields values that remain within that range.)  Power factors
+less than 1 emphasise large-scale elevation changes at the expense of
+small variations.  Power factors greater than 1 increase the roughness
+of the terrain and, like high fractal dimensions, may require a larger
+FFT mesh size and/or higher screen resolution to look good.
+\item[{{\bf -saturation}{\it \ sat}
+}]
+Controls the degree of colour saturation of the stars that surround planet
+pictures and fill starry skies created with the
+{\bf -night}
+option.  The default value of 125 creates stars which resemble the sky
+as seen by the human eye from Earth's surface.  Stars are dim; only
+the brightest activate the cones in the human retina, causing colour
+to be perceived.  Higher values of
+{\it sat}
+approximate the appearance of stars from Earth orbit, where better
+dark adaptation, absence of skyglow, and the concentration of light
+from a given star onto a smaller area of the retina thanks to the lack
+of atmospheric turbulence enhances the perception of colour.  Values
+greater than 250 create ``science fiction'' skies that, while pretty,
+don't occur in this universe.
+\item[{\ }]
+Thanks to the inverse square law combined with Nature's love of
+mediocrity, there are many, many dim stars for every bright one.
+This population relationship is accurately reflected in the skies
+created by
+{\bf ppmforge}{\rm .}
+Dim, low mass stars live much longer than bright massive stars,
+consequently there are many reddish stars for every blue giant.  This
+relationship is preserved by
+{\bf ppmforge}{\rm .}
+You can reverse the proportion, simulating the sky as seen in a starburst
+galaxy, by specifying a negative
+{\it sat}
+value.
+\item[{{\bf -seed}{\it \ num}
+}]
+Sets the seed for the random number generator to the integer
+{\it num}{\rm .}
+The seed used to create each picture is displayed on standard output (unless
+suppressed with the
+{\bf -quiet}
+option).  Pictures generated with the same seed will be identical.  If no
+{\bf -seed}
+is specified, a random seed derived from the date and time will be
+chosen.  Specifying an explicit seed allows you to re-render a picture
+you particularly like at a higher resolution or with different viewing
+parameters.
+\item[{{\bf -stars}{\it \ fraction}
+}]
+Specifies the percentage of pixels, in tenths of a percent, which will
+appear as stars, either surrounding a planet or filling the entire
+frame if
+{\bf -night}
+is specified.  The default
+{\it fraction}
+is 100.
+\item[{{\bf -xsize$|$-width}{\it \ width}
+}]
+Sets the width of the generated image to
+{\it width}
+pixels.  The default width is 256 pixels.  Images must be at least as
+wide as they are high; if a width less than the height is specified,
+it will be increased to equal the height.  If you must have a long
+skinny pixmap, make a square one with
+{\bf ppmforge}{\rm ,}
+then use
+{\bf pnmcut}
+to extract a portion of the shape and size you require.
+\item[{{\bf -ysize$|$-height}{\it \ height}
+}]
+Sets the height of the generated image to
+{\it height}
+pixels.  The default height is 256 pixels.  If the height specified
+exceeds the width, the width will be increased to equal the height.
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{BUGS}
+\par
+The algorithms require the output pixmap to be at least as wide as it
+is high, and the width to be an even number of pixels.  These
+constraints are enforced by increasing the size of the requested
+pixmap if necessary.
+\par
+You may have to reduce the FFT mesh size on machines with 16 bit
+integers and segmented pointer architectures.
+\shead{SEE ALSO}
+{\bf pnmcut}{\rm (1),}
+{\bf pnmdepth}{\rm (1),}
+{\bf ppmdither}{\rm (1),}
+{\bf ppmquant}{\rm (1),}
+{\bf ppm}{\rm (5)}
+\begin{TPlist}{[1] }
+\item[{[1] }]
+Voss, Richard F., ``Random Fractal Forgeries,'' in Earnshaw
+{\it et. al.}, Fundamental Algorithms for Computer Graphics, Berlin:
+Springer-Verlag, 1985.
+\item[{[2]}]
+Peitgen, H.-O., and Saupe, D. eds., The Science Of Fractal Images,
+New York: Springer Verlag, 1988.
+%.ne 10
+\end{TPlist}
+
+\shead{AUTHOR}
+\ind{1\parindent}{\nofill
+    John Walker
+    Autodesk SA
+    Avenue des Champs-Montants 14b
+    CH-2074 MARIN
+    Suisse/Schweiz/Svizzera/Svizra/Switzerland
+\fill}
+\begin{TPlist}{Usenet:}
+\item[{Usenet:}]
+kelvin@Autodesk.com
+\item[{Fax:}]
+038/33 88 15
+\item[{Voice:}]
+038/33 76 33
+\end{TPlist}
+
+\par
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+without any conditions or restrictions.  This software is provided ``as
+is'' without express or implied warranty.
+\par
+{\bf PLUGWARE!}
+If you like this kind of stuff, you may also enjoy ``James Gleick's
+Chaos--The Software'' for MS-DOS, available for \$59.95 from your
+local software store or directly from Autodesk, Inc., Attn: Science
+Series, 2320 Marinship Way, Sausalito, CA 94965, USA.  Telephone:
+(800) 688-2344 toll-free or, outside the U.S. (415) 332-2344 Ext
+4886.  Fax: (415) 289-4718.  ``Chaos--The Software'' includes a more
+comprehensive fractal forgery generator which creates
+three-dimensional landscapes as well as clouds and planets, plus five
+more modules which explore other aspects of Chaos.  The user guide of
+more than 200 pages includes an introduction by James Gleick and
+detailed explanations by Rudy Rucker of the mathematics and algorithms
+used by each program.
+%
+% end of input file: ppmforge.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:47 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmhist.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmhist.1
+%
+\phead{ppmhist}{1}{03 April 1989}{}{}
+
+%.IX ppmhist
+\shead{NAME}
+ppmhist - print a histogram of a portable pixmap
+\shead{SYNOPSIS}
+{\bf ppmhist}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Generates a histogram of the colors in the pixmap.
+\shead{SEE ALSO}
+ppm(5), pgmhist(1)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmhist.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:48 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmmake.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmmake.1
+%
+\phead{ppmmake}{1}{24 September 1991}{}{}
+
+%.IX ppmmake
+\shead{NAME}
+ppmmake - create a pixmap of a specified size and color
+\shead{SYNOPSIS}
+{\bf ppmmake}
+{\it color width height}
+\shead{DESCRIPTION}
+Produces a portable pixmap of the specified color, width, and height.
+%.IX "generating pixmaps"
+\par
+The color can be specified in five ways:
+%.IX "specifying colors"
+\begin{TPlist}{o}
+\item[{o}]
+A name, assuming
+that a pointer to an X11-style color names file was compiled in.
+\item[{o}]
+An X11-style hexadecimal specifier: rgb:r/g/b, where r g and b are
+each 1- to 4-digit hexadecimal numbers.
+\item[{o}]
+An X11-style decimal specifier: rgbi:r/g/b, where r g and b are
+floating point numbers between 0 and 1.
+\item[{o}]
+For backwards compatibility, an old-X11-style hexadecimal
+number: \#rgb, \#rrggbb, \#rrrgggbbb, or \#rrrrggggbbbb.
+\item[{o}]
+For backwards compatibility, a triplet of numbers
+separated by commas: r,g,b, where r g and b are
+floating point numbers between 0 and 1.
+(This style was added before MIT came up with the similar rgbi style.)
+\end{TPlist}
+
+\shead{SEE ALSO}
+ppm(5), pbmmake(1)
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmmake.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Mon Nov 29 13:23:43 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmmix.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmmix.1
+%
+\phead{ppmmix}{1}{16 November 1993}{}{}
+
+%.IX ppmmix
+\shead{NAME}
+ppmmix - blend together two portable pixmaps
+\shead{SYNOPSIS}
+ppmmix 
+{\it fadefactor}
+{\it ppmfile1 ppmfile2}
+\shead{DESCRIPTION}
+Reads two portable pixmaps as input. Mixes them together using the
+specified fade factor. The fade factor may be in the range from 0.0
+(only ppmfile1's image data) to 1.0 (only ppmfile2's image data).
+Anything in between gains a smooth blend between the two images.
+\par
+The two pixmaps must have the same size.
+\shead{SEE ALSO}
+ppm(5)
+\shead{AUTHOR}
+\copyright 1993 by Frank Neumann.
+% Permission to use, , modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmmix.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:06 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmpat.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmpat.1
+%
+\phead{ppmpat}{1}{04 September 1989}{}{}
+
+%.IX ppmpat
+\shead{NAME}
+ppmpat - make a pretty pixmap
+\shead{SYNOPSIS}
+{\bf ppmpat}
+{\bf -gingham2}{\rm $|$}{\bf -g2}{\rm $|$}{\bf -gingham3}{\rm $|$}
+{\bf -g3}{\rm $|$}{\bf -madras}{\rm $|$}{\bf -tartan}{\rm $|$}
+{\bf -poles}{\rm $|$}{\bf -squig}{\rm $|$}{\bf -camo}{\rm $|$}
+{\bf -anticamo}
+{\it width height}
+\shead{DESCRIPTION}
+Produces a portable pixmap of the specified width and height,
+with a pattern in it.
+%.IX "generating pixmaps"
+\par
+This program is mainly to demonstrate use of the ppmdraw routines, a
+simple but powerful drawing library.
+See the ppmdraw.h include file for more info on using these routines.
+Still, some of the patterns can be rather pretty.
+If you have a color workstation, something like
+{\bf ppmpat\ -squig\ 300\ 300 $|$ ppmquant\ 128}
+should generate a nice background.
+\shead{OPTIONS}
+\par
+The different flags specify various different pattern types:
+\begin{TPlist}{{\bf -gingham2}}
+\item[{{\bf -gingham2}}]
+A gingham check pattern.  Can be tiled.
+\item[{{\bf -gingham3}}]
+A slightly more complicated gingham.  Can be tiled.
+\item[{{\bf -madras}}]
+A madras plaid.  Can be tiled.
+\item[{{\bf -tartan}}]
+A tartan plaid.  Can be tiled.
+\item[{{\bf -poles}}]
+Color gradients centered on randomly-placed poles.
+May need to be run through
+{\it ppmquant}{\rm .}
+\item[{{\bf -squig}}]
+Squiggley tubular pattern.  Can be tiled.
+May need to be run through
+{\it ppmquant}{\rm .}
+\item[{{\bf -camo}}]
+Camouflage pattern.
+May need to be run through
+{\it ppmquant}{\rm .}
+\item[{{\bf -anticamo}}]
+Anti-camouflage pattern - like -camo, but ultra-bright colors.
+May need to be run through
+{\it ppmquant}{\rm .}
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{REFERENCES}
+Some of the patterns are from ``Designer's Guide to Color 3'' by Jeanne Allen.
+\shead{SEE ALSO}
+pnmtile(1), ppmquant(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmpat.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:48 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmquant.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmquant.1
+%
+\phead{ppmquant}{1}{12 January 1991}{}{}
+
+%.IX ppmquant
+\shead{NAME}
+ppmquant - quantize the colors in a portable pixmap down to a specified number
+
+\shead{SYNOPSIS}
+{\bf ppmquant}
+{\rm [}{\bf -floyd}{\rm $|$}{\bf -fs}{\rm ]}
+{\it ncolors}
+{\rm [}{\it ppmfile}{\rm ]}
+\nwl
+{\bf ppmquant}
+{\rm [}{\bf -floyd}{\rm $|$}{\bf -fs}{\rm ]}
+{\bf -map}
+{\it mapfile}
+{\rm [}{\it ppmfile}{\rm ]}
+
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Chooses
+{\it ncolors}
+colors to best represent the image, maps the existing colors
+to the new ones, and writes a portable pixmap as output.
+%.IX "colormap reduction"
+\par
+The quantization method is Heckbert's ``median cut''.
+%.IX "median cut"
+\par
+Alternately, you can skip the color-choosing step by
+specifying your own set of colors with the
+{\bf -map}
+flag.  The
+{\it mapfile}
+is just a
+{\it ppm}
+file; it can be any shape, all that matters is the colors in it.
+For instance, to quantize down to the 8-color IBM TTL color set, you
+might use:
+{\tt\nofill
+    P3
+    8 1
+    255
+      0   0   0
+    255   0   0
+      0 255   0
+      0   0 255
+    255 255   0
+    255   0 255
+      0 255 255
+    255 255 255
+\fill}
+
+If you want to quantize one pixmap to use the colors in another one,
+just use the second one as the mapfile.
+You don't have to reduce it down to only one pixel of each color,
+just use it as is.
+\par
+The
+{\bf -floyd}{\rm /}{\bf -fs}
+flag enables a Floyd-Steinberg error diffusion step.
+%.IX Floyd-Steinberg
+%.IX "error diffusion"
+Floyd-Steinberg gives vastly better results on images where the unmodified
+quantization has banding or other artifacts, especially when going to a
+small number of colors such as the above IBM set.
+However, it does take substantially more CPU time, so the default is off.
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{REFERENCES}
+``Color Image Quantization for Frame Buffer Display'' by Paul Heckbert,
+SIGGRAPH '82 Proceedings, page 297.
+\shead{SEE ALSO}
+ppmquantall(1), pnmdepth(1), ppmdither(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmquant.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Mon Nov 29 13:33:41 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmquantall.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmquantall.1
+%
+\phead{ppmquantall}{1}{27 July 1990}{}{}
+
+%.IX ppmquantall
+\shead{NAME}
+ppmquantall - run ppmquant on a bunch of files all at once, so they share a common colormap
+\shead{SYNOPSIS}
+{\bf ppmquantall}
+{\it ncolors ppmfile}
+{\rm ...}
+\shead{DESCRIPTION}
+Takes a bunch of portable pixmap as input.
+Chooses
+{\it ncolors}
+colors to best represent all of the images, maps the
+existing colors to the new ones, and
+{\bf overwrites the input files}
+with the new quantized versions.
+%.IX "colormap reduction"
+\par
+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
+{\it ppmquant}{\rm ;}
+%.IX ppmquant
+this script solves it for multiple pixmaps.  All it does is
+concatenate them together into one big pixmap, run
+{\it ppmquant}
+on that, and then split it up into little pixmaps again.
+\par
+(Note that another way to solve this problem is to pre-select a set of
+colors and then use
+{\it ppmquant}{\rm 's}
+{\bf -map}
+option to separately quantize each pixmap to that set.)
+\shead{SEE ALSO}
+ppmquant(1), ppm(5)
+\shead{BUGS}
+It's a csh script.
+Csh scripts are not portable to System V.
+Scripts in general are not portable to non-Unix environments.
+\shead{AUTHOR}
+Copyright (C) 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmquantall.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:09 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmqvga.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmqvga.1
+%
+\phead{PPMQVGA}{1}{local}{}{}
+
+'% Heading: name(sect)    center (paren)    name(sect)
+\shead{NAME}
+ppmqvga - 8 plane quantization
+'% name [, name] ... \- brief description on a single line of \s-1INPUT\s+1
+\shead{SYNOPSIS}
+ppmqvga [ options ] [ input file ]
+'% foo [ options ] files1 [ file2 [ ... ] ]
+\shead{DESCRIPTION}
+{\bf ppmqvga}
+quantizes PPM files to 8 planes, with optional Floyd-Steinberg dithering.
+Input is a PPM file from the file named, or standard input of no file is
+provided.
+%.SS Options
+{\bf -d}
+dither. Apply Floyd-Steinberg dithering to the data
+
+{\bf -q}
+quiet. Produces no progress reporting, and no terminal output unless
+and error occurs.
+
+{\bf -v}
+verbose. Produces additional output describing the number of colors found,
+and some information on the resulting mapping. May be repeated to generate
+loads of internal table output, but generally only useful once.
+\shead{EXAMPLES}
+ppmqvga -d my\_image.ppm $|$ ppmtogif $>$my\_image.gif
+
+tgatoppm zombie.tga $|$ ppmqvga $|$ ppmtotif $>$ zombie.tif
+\shead{SEE ALSO}
+ppmquant
+\shead{DIAGNOSTICS}
+Error messages if problems, various levels of optional progress reporting.
+\shead{LIMITATIONS}
+none known.
+\shead{AUTHOR}
+Original by Lyle Rains (lrains@netcom.com) as ppmq256 and ppmq256fs
+combined, documented, and enhanced by Bill Davidsen (davidsen@crd.ge.com)
+\shead{Copyright}
+Copyright 1991,1992 by Bill Davidsen, all rights reserved.
+The program and documentation may be freely distributed by anyone in source
+or binary format. Please clearly note any changes.
+%
+% end of input file: ppmqvga.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:49 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmrelief.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmrelief.1
+%
+\phead{ppmrelief}{1}{11 January 1991}{}{}
+
+%.IX ppmrelief
+\shead{NAME}
+ppmrelief - run a Laplacian relief filter on a portable pixmap
+\shead{SYNOPSIS}
+{\bf ppmrelief}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Does a Laplacian relief filter, and writes a portable pixmap as output.
+%.IX "Laplacian relief"
+\par
+The Laplacian relief filter is described in ``Beyond Photography'' by Holzmann,
+equation 3.19.
+It's a sort of edge-detection.
+%.IX "edge detection"
+\shead{SEE ALSO}
+pgmbentley(1), pgmoil(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1990 by Wilson Bent (whb@hoh-2.att.com).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmrelief.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Mon Nov 29 13:24:20 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmshift.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmshift.1
+%
+\phead{ppmshift}{1}{16 November 1993}{}{}
+
+%.IX ppmshift
+\shead{NAME}
+ppmshift - shift lines of a portable pixmap left or right by a random amount
+\shead{SYNOPSIS}
+ppmshift 
+{\it shift}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input. Shifts every row of image data to the
+left or right by a certain amount. The 'shift' parameter determines by how 
+many pixels a row is to be shifted at most.
+\par
+Another one of those effects I intended to use for MPEG tests.
+Unfortunately, this program will not help me here - it creates too random
+patterns to be used for animations. Still, it might give interesting
+results on still images.
+\shead{EXAMPLE}
+Check this out: Save your favourite model's picture from something like
+alt.binaries.pictures.supermodels (ok, or from any other picture source),
+convert it to ppm, and process it e.g. like this, assuming the picture is 
+800x600 pixels:
+\nofill\ind{1\parindent}\tt{}  \# take the upper half, and leave it like it is
+  pnmcut 0 0 800 300 cs.ppm $>$upper.ppm
+
+  \# take the lower half, flip it upside down, dim it and distort it a little
+  pnmcut 0 300 800 300 cs.ppm $|$ pnmflip -tb $|$ ppmdim 0.7 $|$ 
+     ppmshift 10 $>$lower.ppm
+
+  \# and concatenate the two pieces
+  pnmcat -tb upper.ppm lower.ppm $>$newpic.ppm
+\fill 
+The resulting picture looks like the image being reflected on a water 
+surface with slight ripples.
+\shead{SEE ALSO}
+ppm(5), pnmcut(1), pnmflip(1), ppmdim(1), pnmcat(1)
+\shead{AUTHOR}
+\copyright 1993 by Frank Neumann
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmshift.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Mon Nov 29 13:24:10 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmspread.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmspread.1
+%
+\phead{ppmspread}{1}{16 November 1993}{}{}
+
+%.IX ppmspread
+\shead{NAME}
+ppmspread - displace a portable pixmap's pixels by a random amount
+\shead{SYNOPSIS}
+ppmspread
+{\it amount}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input. Moves every pixel around a bit
+relative to its original position. amount determines by how many
+pixels a pixel is to be moved around at most.
+\par
+Pictures processed with this filter will seem to be somewhat 
+dissolved or unfocussed (although they appear more coarse than
+images processed by something like
+{\it pnmconvol}
+).
+\shead{SEE ALSO}
+ppm(5), pnmconvol(1)
+\shead{AUTHOR}
+\copyright 1993 by Frank Neumann
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty
+%
+% end of input file: ppmspread.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:50 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtoacad.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtoacad.1
+%
+\phead{ppmtoacad}{1}{10 October 1991}{}{}
+
+%.IX ppmtoacad
+%.IX AutoCAD
+\shead{NAME}
+ppmtoacad - convert portable pixmap to AutoCAD database or slide
+\shead{SYNOPSIS}
+\raggedright
+{\bf ppmtoacad}
+'in 15n
+{\rm [}{\bf -dxb}{\rm ]}
+{\rm [}{\bf -poly}{\rm ]}
+{\rm [}{\bf -background}
+{\it colour}{\rm ]}
+{\rm [}{\bf -white}{\rm ]}
+{\rm [}{\bf -aspect}
+{\it ratio}{\rm ]}
+{\rm [}{\bf -8}{\rm ]}
+{\rm [}{\it ppmfile}{\rm ]}
+\ind{-7.5em}
+%.ad
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.  Produces an AutoCAD{l}ide file or
+binary database import (.dxb) file as output.
+If no
+{\it ppmfile}
+is specified, input is read from standard input.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -dxb}}
+\item[{{\bf -dxb}}]
+An AutoCAD binary database import (.dxb) file is written.  This file
+is read with the DXBIN command and, once loaded, becomes part of
+the AutoCAD geometrical database and can be viewed and edited like
+any other object.  Each sequence of identical pixels becomes a
+separate object in the database; this can result in very large AutoCAD
+drawing files.  However, if you want to trace over a bitmap, it lets
+you zoom and pan around the bitmap as you wish.
+\item[{{\bf -poly}}]
+If the
+{\bf -dxb}
+option is not specified, the output of
+{\bf ppmtoacad}
+is an AutoCAD slide file.  Normally each row of pixels is
+represented by an AutoCAD line entity.  If
+{\bf -poly}
+is selected, the pixels are rendered as filled polygons.  If the
+slide is viewed on a display with higher resolution than the source
+pixmap, this will cause the pixels to expand instead of appearing as
+discrete lines against the screen background colour.  Regrettably,
+this representation yields slide files which occupy more disc space
+and take longer to display.
+\item[{{\bf -background}{\it \ colour}
+}]
+Most AutoCAD display drivers can be configured to use any available
+colour as the screen background.  Some users perfer a black screen
+background, others white, while splinter groups advocate burnt ocher,
+tawny puce, and shocking grey.  Discarding pixels whose closest
+AutoCAD colour representation is equal to the background colour can
+substantially reduce the size of the AutoCAD database or slide file
+needed to represent a bitmap.  If no
+{\bf -background}
+colour is specified, the screen background colour is assumed to be
+black.  Any AutoCAD colour number may be specified as the screen
+background; colour numbers are assumed to specify the hues defined
+in the standard AutoCAD 256 colour palette.
+\item[{{\bf -white}}]
+Since many AutoCAD users choose a white screen background, this option
+is provided as a short-cut.  Specifying
+{\bf -white}
+is identical in effect to
+{\bf -background\ 7}{\rm .}
+\item[{{\bf -aspect}{\it \ ratio}
+}]
+If the source pixmap had non-square pixels, the ratio of the pixel
+width to pixel height should be specified as
+{\it ratio}{\rm .}
+The resulting slide or .dxb file will be corrected so that pixels on
+the AutoCAD screen will be square.  For example, to correct an image made
+for a 320x200 VGA/MCGA screen, specify
+{\bf -aspect\ 0.8333}{\rm .}
+\item[{{\bf -8}}]
+Restricts the colours in the output file to the 8 RGB shades.
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{BUGS}
+AutoCAD has a fixed palette of 256 colours, distributed along the hue,
+lightness, and saturation axes.  Pixmaps which contain many
+nearly-identical colours, or colours not closely approximated by
+AutoCAD's palette, may be poorly rendered.
+\par
+{\bf ppmtoacad}
+works best if the system displaying its output supports the full 256
+colour AutoCAD palette.  Monochrome, 8 colour, and 16 colour
+configurations will produce less than optimal results.
+\par
+When creating a .dxb file or a slide file with the
+{\bf -poly}
+option,
+{\bf ppmtoacad}
+finds both vertical and horizontal runs of identical pixels and
+consolidates them into rectangular regions to reduce the size of the
+output file.  This is effective for images with large areas of
+constant colour but it's no substitute for true raster to vector
+conversion.  In particular, thin diagonal lines are not optimised at
+all by this process.
+\par
+Output files can be huge.
+\shead{SEE ALSO}
+AutoCAD Reference Manual:
+{\it Slide File Format}
+and
+{\it Binary\ Drawing\ Interchange\ (DXB)\ Files}{\rm ,}
+{\bf ppm}{\rm (5)}
+\shead{AUTHOR}
+\ind{1\parindent}{\nofill
+    John Walker
+    Autodesk SA
+    Avenue des Champs-Montants 14b
+    CH-2074 MARIN
+    Suisse/Schweiz/Svizzera/Svizra/Switzerland
+\fill}
+\begin{TPlist}{Usenet:}
+\item[{Usenet:}]
+kelvin@Autodesk.com
+\item[{Fax:}]
+038/33 88 15
+\item[{Voice:}]
+038/33 76 33
+\end{TPlist}
+
+\par
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+without any conditions or restrictions.  This software is provided ``as
+is'' without express or implied warranty.
+\par
+AutoCAD and Autodesk are registered trademarks of Autodesk, Inc.
+%
+% end of input file: ppmtoacad.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:09 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtobmp.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtobmp.1
+%
+\phead{ppmtobmp}{1}{26 Oct 1992}{}{}
+
+%.IX ppmtobmp
+\shead{NAME}
+ppmtobmp -- convert a portable pixmap into a BMP file
+\shead{SYNOPSIS}
+{\bf ppmtobmp}
+{\rm [}{\it --windows}{\rm ]}
+{\rm [}{\it --os2}{\rm ]}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces a Microsoft Windows or OS/2 BMP file as output.
+%.IX BMP
+\shead{OPTIONS}
+\begin{TPlist}{{\bf --windows}}
+\item[{{\bf --windows}}]
+Tells the program to produce a Microsoft Windows BMP file.
+\item[{{\bf --os2}}]
+Tells the program to produce an OS/2 BMP file.
+(This is the default.)
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+bmptoppm(1),
+ppm(5)
+\shead{AUTHOR}
+\copyright 1992 by David W. Sanderson.
+% Permission to use, copy, modify, and distribute this software and
+% its documentation for any purpose and without fee is hereby granted,
+% provided that the above copyright notice appear in all copies and
+% that both that copyright notice and this permission notice appear in
+% supporting documentation.  This software is provided "as is" without
+% express or implied warranty.
+%
+% end of input file: ppmtobmp.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:50 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtogif.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtogif.1
+%
+\phead{ppmtogif}{1}{30 June 1993}{}{}
+
+%.IX ppmtogif
+\shead{NAME}
+ppmtogif - convert a portable pixmap into a GIF file
+\shead{SYNOPSIS}
+{\bf ppmtogif}
+{\rm [}{\bf -interlace}{\rm ]}
+{\rm [}{\bf -sort}{\rm ]}
+{\rm [}{\bf -map}
+{\it mapfile ]}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces a GIF file as output.
+%.IX GIF
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -interlace}}
+\item[{{\bf -interlace}}]
+Tells the program to produce an interlaced GIF file.
+\item[{{\bf -sort}}]
+Produces a GIF file with a sorted color map.
+\item[{{\bf -map}}]
+{\it mapfile}
+
+Uses the colors found in the
+{\it mapfile}
+to create the colormap in the GIF file, instead of the colors from
+{\it ppmfile.}
+The
+{\it mapfile}
+can be any
+{\it ppm}
+file; all that matters is the colors in it. If the colors in
+{\it ppmfile}
+do not match those in
+{\it mapfile}
+, they are matched to a ``best match''. A (much) better result can be obtained by
+using the following filter in advance:
+
+{\it ppmquant}
+-floyd -map
+{\it mapfile}
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+giftoppm(1), ppmquant(1), ppm(5)
+\shead{AUTHOR}
+Based on GIFENCOD by David Rowley (mgardi@watdcsu.waterloo.edu).
+Lempel-Ziv compression based on ``compress''.
+
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% The Graphics Interchange Format(c) is the Copyright property of
+% CompuServe Incorporated.  GIF(sm) is a Service Mark property of
+% CompuServe Incorporated.
+%
+% end of input file: ppmtogif.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:51 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtoicr.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtoicr.1
+%
+\phead{ppmtoicr}{1}{30 July 1990}{}{}
+
+%.IX ppmtoicr
+\shead{NAME}
+ppmtoicr - convert a portable pixmap into NCSA ICR format 
+\shead{SYNOPSIS}
+{\bf ppmtoicr}
+{\rm [}{\bf -windowname}
+{\it name}{\rm ]}
+{\rm [}{\bf -expand}
+{\it expand}{\rm ]}
+{\rm [}{\bf -display}
+{\it display}{\rm ]}
+{\rm [}{\bf -rle}{\rm ]}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap file as input.
+Produces an NCSA Telnet Interactive Color Raster graphic file as output.
+%.IX "NCSA ICR"
+If
+{\it ppmfile}
+is not supplied, 
+{\it ppmtoicr}
+will read from standard input.
+\par
+Interactive Color Raster (ICR) is a protocol for displaying raster
+graphics on workstation screens. The protocol is implemented in NCSA
+Telnet for the Macintosh version 2.3.
+%.IX Macintosh
+The ICR protocol shares
+characteristics of the Tektronix graphics terminal emulation protocol.
+%.IX Tektronix
+For example, escape sequences are used to control the display.
+\par
+{\it ppmtoicr}
+will output the appropriate sequences to create a window of the
+dimensions of the input pixmap,
+create a colormap of up to 256
+colors on the display, then load the picture data into the window.
+\par
+Note that there is no icrtoppm tool - this transformation is one way.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -windowname}{\it name}
+}
+\item[{{\bf -windowname}{\it name}
+}]
+Output will be displayed in
+{\it name}
+(Default is to use
+{\it ppmfile}
+or ``untitled'' if standard input is read.)
+\item[{{\bf -expand}{\it expand}
+}]
+Output will be expanded on display by factor 
+{\it expand}
+(For example, a value of 2 will cause four pixels to be displayed for
+every input pixel.)
+\item[{{\bf -display}{\it display}
+}]
+Output will be displayed on screen numbered 
+{\it display}
+\item[{{\bf -rle}}]
+Use run-length encoded format for display. (This will nearly always
+result in a quicker display, but may skew the colormap.)
+\end{TPlist}
+
+\shead{EXAMPLES}
+To display a
+{\it ppm}
+file using the protocol:
+\nofill
+    ppmtoicr ppmfile
+\fill
+This will create a window named 
+{\it ppmfile}
+on the display with the correct dimensions for
+{\it ppmfile,}
+create and download a colormap of up
+to 256 colors, and download the picture into the window. The same effect
+may be achieved by the following sequence:
+\nofill
+    ppmtoicr ppmfile $>$ filename
+    cat filename
+\fill
+To display a GIF 
+file using the protocol in a window titled after the input file, zoom
+the displayed image by a factor of 2, and
+run-length encode the data:
+\nofill
+    giftoppm giffile $|$ ppmtoicr -w giffile -r -e 2
+\fill
+\shead{BUGS}
+\par
+The protocol uses frequent 
+{\it fflush}
+calls to speed up display. If the
+output is saved to a file for later display via
+{\it cat,}
+drawing will be
+much slower. In either case, increasing the Blocksize limit on the
+display will speed up transmission substantially.
+\shead{SEE ALSO}
+{\bf ppm(5)}
+\par\noindent
+{\it NCSA\ Telnet\ for\ the\ Macintosh}{\rm ,}
+University of Illinois at Urbana-Champaign (1989)
+\shead{AUTHOR}
+\copyright 1990 by Kanthan Pillay (svpillay@Princeton.EDU),
+Princeton University Computing and Information Technology.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtoicr.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:52 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtoilbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtoilbm.1
+%
+\phead{ppmtoilbm}{1}{29 August 1993}{}{}
+
+%.IX ppmtoilbm
+\shead{NAME}
+ppmtoilbm - convert a portable pixmap into an ILBM file
+\shead{SYNOPSIS}
+{\bf ppmtoilbm}
+{\rm [}{\bf -maxplanes}{\rm $|$}{\bf -mp}
+{\it N}{\rm ]}
+{\rm [}{\bf -fixplanes}{\rm $|$}{\bf -fp}
+{\it N}{\rm ]}
+{\rm [}{\bf -ham6}{\rm $|$}{\bf -ham8}{\rm ]}
+{\rm [}{\bf -dcbits}{\rm $|$}{\bf -dcplanes}{\rm r}{\bf g}{\rm b}{\bf ]}
+{\rm [}{\bf -normal}{\rm $|$}{\bf -hamif}{\rm $|$}{\bf -hamforce}{\rm $|$}{\bf -24if}{\rm $|$}{\bf -24force}{\rm $|$}
+{\rm -dcif}{\bf $|$}{\rm -dcforce}{\bf $|$}{\rm -cmaponly}{\bf ]}
+{\rm [}{\bf -ecs}{\rm $|$}{\bf -aga}{\rm ]}
+{\rm [}{\bf -map}{\rm ppmfile}{\bf ]}
+{\rm [}{\bf ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+%.IX "ILBM"
+Produces an ILBM file as output.
+Supported ILBM types are:
+\begin{TPlist}{Normal ILBMs with 1-16 planes.}
+\item[{Normal ILBMs with 1-16 planes.}]
+\item[{Amiga Hold-and-Modify (HAM) with 3-16 planes.}]
+%.IX "Amiga"
+%.IX "HAM"
+\item[{24 bit.}]
+\item[{Color map (BMHD + CMAP chunk only, nPlanes = 0).}]
+\item[{Unofficial direct color.}]
+1-16 planes for each color component.
+\item[{Chunks written:}]
+BMHD, CMAP, CAMG (only for HAM), BODY (not for colormap files)
+unofficial DCOL chunk for direct color ILBM
+\item[{Chunks ignored:}]
+GRAB, DEST, SPRT, CRNG, CCRT, CLUT, DPPV, DRNG, EPSF
+\item[{Other chunks (ignored but displayed in verbose mode):}]
+NAME, AUTH, (c), ANNO, DPI
+\end{TPlist}
+
+\shead{OPTIONS}
+Options marked with (*) can be prefixed with a ``no'',
+{\it e.g.}, ``-nohamif''. All options can be abbreviated to
+their shortest unique prefix.
+\begin{TPlist}{{\bf -maxplanes $|$ -mp n}}
+\item[{{\bf -maxplanes $|$ -mp n}}]
+(default 5, minimum 1, maximum 16)
+Maximum planes to write in a normal ILBM.  If the pixmap
+does not fit into $<$n$>$ planes, ppmtoilbm writes a HAM file
+(if -hamif is used), a 24bit file (if -24if is used) or a
+direct color file (if -dcif is used) or aborts with an error.
+\item[{{\bf -fixplanes $|$ -fp n}}]
+(min 1, max 16)
+If a normal ILBM is written, it will have exactly $<$n$>$ planes.
+\item[{{\bf -hambits $|$ -hamplanes n}}]
+(default 6, min 3, max 16)
+Select number of planes for HAM picture.  The current Amiga
+hardware supports 6 and 8 planes, so for now you should
+only use this values.
+\item[{{\bf -normal (default)}}]
+Turns off -hamif/-24if/-dcif, -hamforce/-24force/-dcforce and
+-cmaponly.
+\item[{{\bf -hamif (*)}}]
+\item[{{\bf -24if (*)}}]
+\item[{{\bf -dcif (*)}}]
+Write a HAM/24bit/direct color file if the pixmap does not
+fit into $<$maxplanes$>$ planes.
+\item[{{\bf -hamforce (*)}}]
+\item[{{\bf -24force (*)}}]
+\item[{{\bf -dcforce (*)}}]
+Write a HAM/24bit/direct color file.
+\item[{{\bf -dcbits $|$ -dcplanes r g b}}]
+(default 5, min 1, max 16).
+Select number of bits for red, green \& blue in a direct
+color ILBM.
+\item[{{\bf -ecs (default)}}]
+Shortcut for: -hamplanes 6 -maxplanes 5
+\item[{{\bf -aga}}]
+\item[{{\bf Shortcut for: -hamplanes 8 -maxplanes 8}}]
+\item[{{\bf -ham6}}]
+\item[{{\bf Shortcut for: -hamplanes 6 -hamforce}}]
+\item[{{\bf -ham8}}]
+Shortcut for: -hamplanes 8 -hamforce
+\item[{{\bf -map ppmfile}}]
+Write a normal ILBM using the colors in $<$ppmfile$>$ as the
+colormap. The colormap file also determines the number of
+planes, a -maxplanes or -fixplanes option is ignored.
+\item[{{\bf -cmaponly}}]
+Write a colormap file: only BMHD and CMAP chunks, no BODY
+chunk, nPlanes = 0.
+\end{TPlist}
+
+\shead{BUGS}
+Needs a real colormap selection algorithm for HAM pictures,
+instead of using a grayscale colormap.
+\shead{REFERENCES}
+Amiga ROM Kernel Reference Manual - Devices (3rd Ed.)
+Addison Wesley, ISBN 0--201--56775--X
+\shead{SEE ALSO}
+ppm(5), ilbmtoppm(1)
+\shead{AUTHORS}
+\copyright 1989 by Jef Poskanzer.
+\nwl
+Modified August 1993 by Ingo Wilken
+(Ingo.Wilken@informatik.uni-oldenburg.de).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtoilbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Tue Nov 30 08:30:37 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtomitsu.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtomitsu.1
+%
+\phead{ppmtomitsu}{1}{29 Jan 1992}{}{}
+
+%.IX ppmtomitsu
+\shead{NAME}
+ppmtomitsu - convert a portable pixmap to a Mitsubishi S340-10 file
+\shead{SYNOPSIS}
+{\bf ppmtomitsu}
+{\rm [-sharpness}
+{\it val}{\rm ]}
+{\rm [}{\bf -enlarge}
+{\it val}{\rm ]}
+{\rm [}{\bf -media}
+{\it string}{\rm ]}
+{\rm [}{\bf -copy}
+{\it val}{\rm ]}
+{\rm [}{\bf -dpi300}{\rm ]}
+{\rm [}{\bf -tiny}{\rm ]}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input and converts it into a format suitable
+to be printed by a Mitsubishi S340-10 printer, or any other Mitsubishi
+color sublimation printer.
+\par
+The Mitsubishi S340-10 Color Sublimation printer supports 24bit color.
+Images of the available sizes take so long to transfer that there is a
+fast method, employing a lookuptable, that ppmtomitsu will use if there
+is a maximum of 256 colors in the pixmap.
+ppmtomitsu will try to position your image to the center of the paper,
+and will rotate your image for you if xsize is larger than ysize.
+If your image is larger than the media allows, ppmtomitsu will quit
+with an error message. (We decided that the media were too expensive
+to have careless users produce misprints.) 
+Once data transmission has started, the job can't be stopped in a
+sane way without resetting the printer.
+The printer understands putting together images in the printers memory;
+ppmtomitsu doesn't utilize this as pnmcat etc provide the same functionality
+and let you view the result on-screen, too.
+The S340-10 is the lowest common denominator printer; for higher
+resolution printers there's the dpi300 option. The other printers also
+support higher values for enlarge eg, but I don't think that's essential
+enough to warrant a change in the program.
+\begin{TPlist}{{\bf -sharpness}{\it \ 1-4}
+}
+\item[{{\bf -sharpness}{\it \ 1-4}
+}]
+ 'sharpness' designation. Default is to use the current sharpness.
+\item[{{\bf -enlarge}{\it \ 1-3}
+}]
+Enlarge by a factor; Default is 1 (no enlarge)
+\item[{{\bf -media}{\it \ A,\ A4,\ AS,\ A4S}
+}]
+Designate the media you're using. Default is 1184 x 1350, which will fit
+on any media. A is 1216 x 1350, A4 is 1184 x 1452, AS is 1216 x 1650 and 
+A4S is 1184 x 1754. A warning: If you specify a different media than the
+printer currently has, the printer will wait until you put in the correct
+media or switch it off.
+\item[{{\bf -copy}{\it \ 1-9}
+}]
+The number of copies to produce. Default is 1.
+\item[{{\bf -dpi300}
+}]
+Double the number of allowed pixels for a S3600-30 Printer in S340-10
+compatibility mode. (The S3600-30 has 300 dpi).
+\item[{{\bf -tiny}
+}]
+Memory-safing, but always slow. The printer will get the data line-by-line
+in 24bit. It's probably a good idea to use this if your machine starts
+paging a lot without this option.
+\end{TPlist}
+
+\shead{REFERENCES}
+Mitsubishi Sublimation Full Color Printer S340-10 Specifications of
+Parallel Interface LSP-F0232F
+\shead{SEE ALSO}
+ppmquant(1), pnmscale(1), ppm(5)
+\shead{BUGS}
+We didn't find any - yet. (Besides, they're called features anyway :-)
+If you should find one, my email-adress is below.
+\shead{AUTHOR}
+\copyright 1992, 93 by S.Petra Zeidler, MPIfR Bonn, Germany.
+(spz@specklec.mpifr-bonn.mpg.de)
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtomitsu.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:10 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtomap.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtomap.1
+%
+\phead{ppmtomap}{1}{11 August 1993}{}{}
+
+%.IX ppmtomap
+\shead{NAME}
+ppmtomap - extract all colors from a portable pixmap
+\shead{SYNOPSIS}
+{\bf ppmtomap}
+{\rm [}{\bf -sort}{\rm ]}
+{\rm [}{\bf -square}{\rm ]}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces a portable pixmap as output, representing a color map of the
+input file. All N different colors found are put in an Nx1 portable
+pixmap.
+This color map file can be used as a mapfile for
+{\it ppmquant}
+or
+{\it ppmtogif.}
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -sort}}
+\item[{{\bf -sort}}]
+Produces a portable pixmap with the colors in some sorted order.
+\item[{{\bf -square}}]
+Produces a (more or less) square output file, instead of putting all
+colors on the top row.
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{WARNING}
+If you want to use the output file as a mapfile for
+{\it ppmtogif,}
+you first have to do a
+{\it ppmquant 256,}
+since
+{\it ppmtomap}
+is not limited to 256 colors (but to 65536).
+\shead{SEE ALSO}
+ppmtogif(1), ppmquant(1), ppm(5)
+\shead{AUTHOR}
+Marcel Wijkstra (wijkstra@fwi.uva.nl).
+
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% The Graphics Interchange Format(c) is the Copyright property of
+% CompuServe Incorporated.  GIF(sm) is a Service Mark property of
+% CompuServe Incorporated.
+%
+% end of input file: ppmtomap.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:53 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtopcx.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtopcx.1
+%
+\phead{ppmtopcx}{1}{09 April 1990}{}{}
+
+%.IX ppmtopcx
+\shead{NAME}
+ppmtopcx - convert a portable pixmap into a PCX file
+\shead{SYNOPSIS}
+{\bf ppmtopcx}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces a PCX file as output.
+%.IX PCX
+\shead{SEE ALSO}
+pcxtoppm(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1990 by Michael Davidson.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtopcx.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:53 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtopgm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtopgm.1
+%
+\phead{ppmtopgm}{1}{23 December 1988}{}{}
+
+%.IX ppmtopgm
+\shead{NAME}
+ppmtopgm - convert a portable pixmap into a portable graymap
+\shead{SYNOPSIS}
+{\bf ppmtopgm}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces a portable graymap as output.
+The quantization formula used is .299 r + .587 g + .114 b.
+\par
+Note that although there is a
+{\it pgmtoppm}
+program, it is not necessary
+for simple conversions from
+{\it pgm}
+to
+{\it ppm}{\rm ,}
+because any ppm program can
+read
+{\it pgm}
+(and
+{\it pbm}
+) files automagically.
+{\it pgmtoppm}
+is for colorizing a
+{\it pgm}
+file.  Also, see
+{\it ppmtorgb3}
+%.IX ppmtorgb3
+for a different way of converting color to gray.
+\shead{QUOTE}
+\nofill
+Cold-hearted orb that rules the night
+Removes the colors from our sight
+Red is gray, and yellow white
+But we decide which is right
+And which is a quantization error.
+\fill
+\shead{SEE ALSO}
+pgmtoppm(1), ppmtorgb3(1), rgb3toppm(1), ppm(5), pgm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtopgm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:54 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtopi1.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtopi1.1
+%
+\phead{ppmtopi1}{1}{19 July 1990}{}{}
+
+%.IX ppmtopi1
+\shead{NAME}
+ppmtopi1 - convert a portable pixmap into an Atari Degas .pi1 file
+\shead{SYNOPSIS}
+{\bf ppmtopi1}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces an Atari Degas .pi1 file as output.
+%.IX Atari
+%.IX "Degas .pi1"
+\shead{SEE ALSO}
+pi1toppm(1), ppm(5), pbmtopi3(1), pi3topbm(1)
+\shead{AUTHOR}
+\copyright 1991 by Steve Belczyk (seb3@gte.com) and Jef Poskanzer.
+% Permission to use, copy, modify and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtopi1.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:54 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtopict.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtopict.1
+%
+\phead{ppmtopict}{1}{15 April 1990}{}{}
+
+%.IX ppmtopict
+\shead{NAME}
+ppmtopict - convert a portable pixmap into a Macintosh PICT file
+\shead{SYNOPSIS}
+{\bf ppmtopict}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces a Macintosh PICT file as output.
+%.IX PICT
+%.IX Macintosh
+\par
+The generated file is only the data fork of a picture.
+You will need a program such as
+{\it mcvert}
+to generate a Macbinary or a BinHex file that contains the necessary
+information to identify the file as a PICT file to MacOS.
+\par
+Even though PICT supports 2 and 4 bits per pixel,
+{\it ppmtopict}
+always generates an 8 bits per pixel file.
+\shead{BUGS}
+The picture size field is only correct if the output is to a file
+since writing into this field requires seeking backwards on a file.
+However the PICT documentation seems to suggest that this field is
+not critical anyway since it is only the lower 16 bits of the picture size.
+\shead{SEE ALSO}
+picttoppm(1), ppm(5), mcvert(1)
+\shead{AUTHOR}
+\copyright 1990 by Ken Yap (ken@cs.rocester.edu).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtopict.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:55 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtopj.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtopj.1
+%
+\phead{ppmtopj}{1}{13 July 1991}{}{}
+
+%.IX ppmtopj
+\shead{NAME}
+ppmtopj - convert a portable pixmap to an HP PaintJet file
+\shead{SYNOPSIS}
+{\bf ppmtopj}
+{\rm [-gamma}
+{\it val}{\rm ]}
+{\rm [}{\bf -xpos}
+{\it val}{\rm ]}
+{\rm [}{\bf -ypos}
+{\it val}{\rm ]}
+{\rm [}{\bf -back}
+{\bf dark}{\rm $|$}{\bf lite}{\rm ]}
+{\rm [}{\bf -rle}{\rm ]}
+{\rm [}{\bf -center}{\rm ]}
+{\rm [}{\bf -render}
+{\bf none$|$snap$|$bw$|$dither$|$diffuse$|$monodither$|$monodiffuse$|$clusterdither$|$monoclusterdither}{\rm ]}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input and converts it into a format suitable
+to be printed by an HP PaintJet printer.
+\par
+For best results, the input file should be in 8-color RGB form;
+{\it i.e.}, it should have only
+the 8 binary combinations of full-on and full-off primaries.
+You could get this by sending the input file through
+{\it ppmquant -map}
+with a map file such as:
+\nofill
+    P3
+    8 1
+    255
+    0 0 0      255 0 0    0 255 0    0 0 255
+    255 255 0  255 0 255  0 255 255  255 255 255
+\fill
+Or else you could use use
+{\it ppmdither -red 2 -green 2 -blue 2.}
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -rle}}
+\item[{{\bf -rle}}]
+Run length encode the image.
+(This can result in larger images)
+\item[{{\bf -back}}]
+Enhance the foreground by indicating if the background is light or
+dark compated to the foreground.
+\item[{{\bf -render}{\it \ alg}
+}]
+Use an internal rendering algorithm (default dither).
+\item[{{\bf -gamma}{\it \ int}
+}]
+Gamma correct the image using the integet parameter as a gamma (default 0).
+\item[{{\bf -center}}]
+Center the image to an 8.5 by 11 page
+\item[{{\bf -xpos}{\it \ pos}
+}]
+Move by pos pixels in the x direction.
+\item[{{\bf -ypos}{\it \ pos}
+}]
+Move by pos pixels in the y direction.
+\end{TPlist}
+
+\shead{REFERENCES}
+HP PaintJet XL Color Graphics Printer User's Guide
+\shead{SEE ALSO}
+pnmdepth(1), ppmquant(1), ppmdither(1), ppm(5)
+\shead{BUGS}
+Most of the options have not been tested because of the price of the paper.
+\shead{AUTHOR}
+\copyright 1991 by Christos Zoulas.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtopj.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:10 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtopjxl.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtopjxl.1
+%
+\phead{ppmtopjxl}{1}{14 March 1991}{}{}
+
+\shead{NAME}
+ppmtopjxl - convert a portable pixmap into an HP PaintJet XL PCL file
+\shead{SYNOPSIS}
+ppmtopjxl [-nopack] [-gamma
+{\it $<$n$>$}
+] [-presentation] [-dark] [-diffuse] [-cluster] [-dither] [-xshift
+{\it $<$s$>$}
+] [-yshift
+{\it $<$s$>$}
+] [-xshift
+{\it $<$s$>$}
+] [-yshift
+{\it $<$s$>$}
+] [-xsize$|$-width$|$-xscale
+{\it $<$s$>$}
+] [-ysize$|$-height$|$-yscale
+{\it $<$s$>$}
+] [ppmfile]
+
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces a PCL file suitable for printing on an HP PaintJet XL printer as
+output.
+\par
+The generated file is not suitable for printing on a normal PrintJet printer.
+The
+{\bf --nopack}
+option generates a file which does not use the normal TIFF 4.0 compression
+method. This file might be printable on a normal PaintJet printer (not an XL).
+\par
+The
+{\bf --gamma}
+option sets the gamma correction for the image. The useful range for the
+PaintJet XL is approximately 0.6 to 1.5.
+\par
+The rendering algorithm used for images can be altered with the
+{\bf -dither,}
+{\bf -cluster,}
+and
+{\bf -diffuse}
+options. These options select ordered dithering, clustered ordered dithering,
+or error diffusion respectively.
+The
+{\bf --dark}
+option can be used to enhance images with a dark background when they are
+reduced in size.
+The
+{\bf --presentation}
+option turns on presentation mode, in which two passes are made over the paper
+to increase ink density. This should be used only for images where quality is
+critical.
+
+\par
+The image can be resized by setting the 
+{\bf --xsize}
+and 
+{\bf --ysize}
+options. The parameter to either of these options is interpreted as the
+number of dots to set the width or height to, but an optional dimension of
+`%
+\bf pt%
+\rm ' (points), `%
+\bf dp%
+\rm ' (decipoints), `%
+\bf in%
+\rm ' (inches), or
+`%
+\bf cm%
+\rm ' (centimetres) may be appended.
+If only one dimension is specified, the other will be scaled appropriately.
+
+The options
+{\bf --width}
+and
+{\bf --height}
+are synonyms of
+{\bf --xsize}
+and
+{\bf --ysize.}
+
+The
+{\bf --xscale}
+and
+{\bf --yscale}
+options can alternatively be used to scale the image by a simple factor.
+
+\par
+The image can be shifted on the page by using the
+{\bf --xshift}
+and
+{\bf --yshift}
+options. These move the image the specified dimensions right and down.
+
+\shead{SEE ALSO}
+ppm(5)
+\shead{AUTHOR}
+Angus Duggan
+%
+% end of input file: ppmtopjxl.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:56 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtopuzz.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtopuzz.1
+%
+\phead{ppmtopuzz}{1}{22 August 1990}{}{}
+
+%.IX ppmtopuzz
+\shead{NAME}
+ppmtopuzz - convert a portable pixmap into an X11 ``puzzle'' file
+\shead{SYNOPSIS}
+{\bf ppmtopuzz}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces an X11 ``puzzle'' file as output.
+A ``puzzle'' file is for use with the
+{\it puzzle}
+%.IX puzzle
+%.IX "X window system"
+program included with the X11 distribution -
+{\it puzzle}{\rm 's}
+{\bf -picture}
+flag lets you specify an image file.
+\shead{SEE ALSO}
+ppm(5), puzzle(1)
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+% Permission to use, copy, modify and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtopuzz.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:57 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtorgb3.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtorgb3.1
+%
+\phead{ppmtorgb3}{1}{10 January 1991}{}{}
+
+%.IX ppmtorgb3
+\shead{NAME}
+ppmtorgb3 - separate a portable pixmap into three portable graymaps
+\shead{SYNOPSIS}
+{\bf ppmtorgb3}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Writes three portable graymaps as output, one each for red, green, and blue.
+%.IX "color separation"
+\par
+The output filenames are constructed by taking the input filename,
+stripping off any extension, and appending ``.red'', ``.grn'', and
+``.blu''.
+For example, separating lenna.ppm would result in lenna.red, lenna.grn,
+and lenna.blu.
+If the input comes from stdin, the names are noname.red, noname.grn,
+and noname.blu.
+\shead{SEE ALSO}
+rgb3toppm(1), ppmtopgm(1), pgmtoppm(1), ppm(5), pgm(5)
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtorgb3.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:57 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtosixel.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtosixel.1
+%
+\phead{ppmtosixel}{1}{26 April 1991}{}{}
+
+%.IX ppmtosixel
+\shead{NAME}
+ppmtosixel - convert a portable pixmap into DEC sixel format
+\shead{SYNOPSIS}
+{\bf ppmtosixel}
+{\rm [}{\bf -raw}{\rm ]}
+{\rm [}{\bf -margin}{\rm ]}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces sixel commands (SIX) as output.
+The output is formatted for color printing, {\it e.g.}, for a DEC LJ250 color
+inkjet printer. 
+\par
+If RGB values from the PPM file do not have maxval=100,
+the RGB values are rescaled.
+A printer control header and a color assignment table begin the SIX file.
+Image data is written in a compressed format by default.
+A printer control footer ends the image file.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -raw}}
+\item[{{\bf -raw}}]
+If specified, each pixel will be explicitly described in the image file.
+If
+{\bf -raw}
+is not specified, output will default to compressed format in which
+identical adjacent pixels are replaced by ``repeat pixel'' commands.
+A raw file is often an order of magnitude larger than a compressed
+file and prints much slower.
+\item[{{\bf -margin}}]
+If
+{\bf -margin}
+is not specified, the image will be start at the left margin
+(of the window, paper, or whatever).
+If
+{\bf -margin}
+is specified, a 1.5 inch left margin will offset the image.
+\end{TPlist}
+
+\shead{PRINTING}
+Generally, sixel files must reach the printer unfiltered.
+Use the lpr -x option or cat filename $>$ /dev/tty0?.
+\shead{BUGS}
+Upon rescaling, truncation of the least significant bits of RGB values
+may result in poor color conversion.
+If the original PPM maxval was greater than 100, rescaling also
+reduces the image depth.
+While the actual RGB values from the ppm file are more or less
+retained, the color palette of the LJ250 may not match the colors
+on your screen.
+This seems to be a printer limitation.
+\shead{SEE ALSO}
+ppm(5)
+\shead{AUTHOR}
+\copyright 1991 by Rick Vinci.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtosixel.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:58 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtotga.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtotga.1
+%
+\phead{ppmtotga}{1}{28 October 1991}{}{}
+
+%.IX ppmtotga
+\shead{NAME}
+ppmtotga - convert portable pixmap into a TrueVision Targa file
+\shead{SYNOPSIS}
+{\bf ppmtotga}
+{\rm [}{\bf -mono$|$-cmap$|$-rgb}{\rm ]}
+{\rm [}{\bf -norle}{\rm ]}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces a TrueVision Targa file as output.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -mono}}
+\item[{{\bf -mono}}]
+Forces Targa file to be of type 8 bit monochrome.  Input must be a portable
+bitmap or a portable graymap.
+\item[{{\bf -cmap}}]
+Forces Targa file to be of type 24 bit colormapped.  Input must be a portable
+bitmap, a portable graymap or a portable pixmap containing no more than
+256 distinct colors.
+\item[{{\bf -rgb}}]
+Forces Targa file to be of type 24 bit unmapped color.
+\item[{{\bf -norle}}]
+Disables run-length encoding, in case you have a Targa reader which
+can't read run-length encoded files.
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.  If no
+file type is specified the most highly constained compatible type is
+used, where monochrome is more constained than colormapped which is in
+turn more constained than unmapped.
+\shead{BUGS}
+Does not support all possible Targa file types.
+Should really be in PNM, not PPM.
+\shead{SEE ALSO}
+tgatoppm(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Mark Shand and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtotga.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:59 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtouil.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtouil.1
+%
+\phead{ppmtouil}{1}{31 August 1990}{}{}
+
+%.IX ppmtouil
+\shead{NAME}
+ppmtouil - convert a portable pixmap into a Motif UIL icon file
+\shead{SYNOPSIS}
+{\bf ppmtouil}
+{\rm [}{\bf -name}
+{\it uilname}{\rm ]}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces a Motif UIL icon file as output.
+%.IX Motif
+%.IX UIL
+%.IX "X window system"
+\par
+If the program was compiled with an rgb database specified, and
+a RGB value from the ppm input matches a RGB value from the database,
+then the corresponding color name mnemonic is printed in the UIL's colormap.
+If no rgb database was compiled in, or if the RGB values don't match,
+then the color
+will be printed with the \#RGB, \#RRGGBB, \#RRRGGGBBB, or \#RRRRGGGGBBBB
+hexadecimal format.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -name}}
+\item[{{\bf -name}}]
+Allows you to specify the prefix string which is printed
+in the resulting UIL output.  If not specified, will default to the
+filename (without extension) of the ppmfile argument.
+If
+{\bf -name}
+is not specified and no ppmfile
+is specified ({\it i.e.}, piped input), the prefix string will default to
+the string ``noname''.
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+ppm(5)
+\shead{AUTHOR}
+Converted by Jef Poskanzer from ppmtoxpm.c, which is
+\copyright 1990 by Mark W. Snitily.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtouil.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:59 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtoxpm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtoxpm.1
+%
+\phead{ppmtoxpm}{1}{Tue Apr 9 1991}{}{}
+
+\shead{NAME}
+ppmtoxpm - convert a portable pixmap into an X11 pixmap
+\shead{SYNOPSIS}
+ppmtoxpm [-name $<$xpmname$>$] [-rgb $<$rgb-textfile$>$] [$<$ppmfile$>$]
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces X11 pixmap  (version 3) as output which
+can be loaded directly by the XPM library.
+\par
+The {\bf -nameoption} allows one to specify the prefix string which is printed
+in the resulting XPM output.  If not specified, will default to the
+filename (without extension) of the $<$ppmfile$>$ argument.
+If {\bf -nameis} not specified and $<$ppmfile$>$
+is not specified ({\it i.e.}, piped input), the prefix string will default to
+the string ``noname''.
+\par
+The {\bf -rgboption} allows one to specify an X11 rgb text file for the
+lookup of color name mnemonics.  This rgb text file is typically the
+/usr/lib/X11/rgb.txt of the MIT X11 distribution, but any file using the
+same format may be used.  When specified and
+a RGB value from the ppm input matches a RGB value from the $<$rgb-textfile$>$,
+then the corresponding color name mnemonic is printed in the XPM's colormap.
+If {\bf -rgbis} not specified, or if the RGB values don't match, then the color
+will be printed with the \#RGB, \#RRGGBB, \#RRRGGGBBB, or \#RRRRGGGGBBBB
+hexadecimal format.
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\par
+For example, to convert the file ``dot'' (found in /usr/include/X11/bitmaps),
+from xbm to xpm one could specify
+\begin{IPlist}
+\IPitem{{}}
+xbmtopbm dot $|$ ppmtoxpm -name dot
+\end{IPlist}
+
+\par
+or, with a rgb text file (in the local directory)
+\begin{IPlist}
+\IPitem{{}}
+xbmtopbm dot $|$ ppmtoxpm -name dot -rgb rgb.txt
+\end{IPlist}
+
+\shead{BUGS}
+An option to match the closest (rather than exact) color name mnemonic
+from the rgb text would be a desirable enhancement.
+\par
+Truncation of the least significant bits of a RGB value may result in
+nonexact matches when performing color name mnemonic lookups.
+\shead{SEE ALSO}
+ppm(5)
+\nwl
+XPM Manual by Arnaud Le Hors (lehors@mirsa.inria.fr).
+\shead{AUTHOR}
+\copyright 1990 by Mark W. Snitily.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.  This software is provided "as is" without express or
+implied warranty.
+
+This tool was developed for Schlumberger Technologies, ATE Division, and
+with their permission is being made available to the public with the above
+copyright notice and permission notice.
+
+Upgraded to XPM2 by
+   Paul Breslaw, Mecasoft SA, Zurich, Switzerland (paul@mecazh.uu.ch)
+   Thu Nov  8 16:01:17 1990
+
+Upgraded to XPM version 3 by
+   Arnaud Le Hors (lehors@mirsa.inria.fr)
+   Tue Apr 9 1991
+
+
+%
+% end of input file: ppmtoxpm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:00 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtoyuv.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtoyuv.1
+%
+\phead{ppmtoyuv}{1}{25 March 91}{}{}
+
+%.IX ppmtoyuv
+\shead{NAME}
+ppmtoyuv - convert a portable pixmap into an Abekas YUV file
+\shead{SYNOPSIS}
+{\bf ppmtoyuv}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces an Abekas YUV file as output.
+%.IX Abekas
+\shead{SEE ALSO}
+yuvtoppm(1), ppm(5)
+\shead{AUTHOR}
+Marc Boucher (marc@PostImage.COM),
+based on Example Conversion Program, A60/A64 Digital Video Interface
+Manual, page 69.
+\par
+\copyright 1991 by DHD PostImage Inc.
+\par
+\copyright 1987 by Abekas Video Systems Inc.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtoyuv.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:11 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ppmtoyuvsplit.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ppmtoyuvsplit.1
+%
+\phead{ppmtoyuvsplit}{1}{9 September 1993}{}{}
+
+%.IX ppmtoyuvsplit
+\shead{NAME}
+ppmtoyuvsplit - convert a portable pixmap into 3 subsampled raw YUV files
+\shead{SYNOPSIS}
+{\bf ppmtoyuvsplit}
+{\it basename}
+{\rm [}{\it ppmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a portable pixmap as input.
+Produces 3 raw files basename.Y, basename.U and basename.V as output.
+These files are the subsampled raw YUV representation of the input
+pixmap, as required by the Stanford MPEG codec. The subsampling is done
+by arithmetic mean of 4 pixels colors into one. The YUV values are scaled
+according to CCIR.601, as assumed by MPEG.
+\shead{SEE ALSO}
+mpeg(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1993 by Andre Beck. (Andre\_Beck@IRS.Inf.TU-Dresden.de).
+\par
+Based on ppmtoyuv.c.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ppmtoyuvsplit.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:33 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: psidtopgm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: psidtopgm.1
+%
+\phead{psidtopgm}{1}{02 August 89}{}{}
+
+%.IX psidtopgm
+\shead{NAME}
+psidtopgm - convert PostScript ``image'' data into a portable graymap
+\shead{SYNOPSIS}
+{\bf psidtopgm}
+{\it width height bits/sample}
+{\rm [}{\it imagedata}{\rm ]}
+\shead{DESCRIPTION}
+Reads the ``image'' data from a PostScript file as input.
+%.IX PostScript
+Produces a portable graymap as output.
+\par
+This is a very simple and limited program, and is here only because
+so many people have asked for it.
+To use it you have to
+{\bf manually}
+extract the readhexstring data portion from your PostScript file, and then
+give the width, height, and bits/sample on the command line.
+Before you attempt this, you should
+{\bf at least}
+read the description of the ``image'' operator in the PostScript Language
+Reference Manual.
+\par
+It would probably not be too hard to write a script that uses this filter
+to read a specific variety of PostScript image, but the variation is too
+great to make a general-purpose reader.
+Unless, of course, you want to write a full-fledged PostScript interpreter...
+\shead{SEE ALSO}
+pnmtops(1), pgm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: psidtopgm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:00 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: qrttoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: qrttoppm.1
+%
+\phead{qrttoppm}{1}{25 August 1989}{}{}
+
+%.IX qrttoppm
+\shead{NAME}
+qrttoppm - convert output from the QRT ray tracer into a portable pixmap
+\shead{SYNOPSIS}
+{\bf qrttoppm}
+{\rm [}{\it qrtfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a QRT file as input.
+%.IX "QRT raytracer"
+Produces a portable pixmap as output.
+\shead{SEE ALSO}
+ppm(5)
+\shead{AUTHOR}
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: qrttoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:28 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: rasttopnm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: rasttopnm.1
+%
+\phead{rasttopnm}{1}{13 January 1991}{}{}
+
+%.IX rasttopnm
+\shead{NAME}
+rasttopnm - convert a Sun rasterfile into a portable anymap
+\shead{SYNOPSIS}
+{\bf rasttopnm}
+{\rm [}{\it rastfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a Sun rasterfile as input.
+%.IX Sun
+%.IX rasterfile
+Produces a portable anymap as output.
+The type of the output file depends on the input file - if it's
+black \& white, a
+{\it pbm}
+file is written, else if it's grayscale a
+{\it pgm}
+file, else a
+{\it ppm}
+file.  The program tells you which type it is writing.
+\shead{SEE ALSO}
+pnmtorast(1), pnm(5)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: rasttopnm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:34 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: rawtopgm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: rawtopgm.1
+%
+\phead{rawtopgm}{1}{15 June 1993}{}{}
+
+%.IX rawtopgm
+\shead{NAME}
+rawtopgm - convert raw grayscale bytes into a portable graymap
+\shead{SYNOPSIS}
+{\bf rawtopgm}
+{\rm [}{\bf -headerskip}
+{\it N}{\rm ]}
+{\rm [}{\bf -rowskip}
+{\it N}{\rm ]}
+{\rm [}{\bf -tb}{\rm $|$}{\bf -topbottom}{\rm ]}
+{\rm [}{\it width}
+{\it height}{\rm ]}
+{\rm [}{\it imagedata}{\rm ]}
+\shead{DESCRIPTION}
+Reads raw grayscale bytes as input.
+%.IX "raw grayscale"
+Produces a portable graymap as output.
+The input file is just grayscale bytes.
+If you don't specify the width and height on the command line,
+the program will check the size of the image and try to make
+a quadratic image of it. It is an error to supply a non
+quadratic image without specifying width and height.
+The maxval is assumed to be 255.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -headerskip}}
+\item[{{\bf -headerskip}}]
+If the file has a header, you can use this flag to
+skip over it.
+\item[{{\bf -rowskip}}]
+If there is padding at the ends of the rows, you can skip it with this flag.
+Note that rowskip can be a real number.
+Amazingly, I once had an image with 0.376 bytes of padding per row.
+This turned out to be due to a file-transfer problem, but I was still
+able to read the image.
+\item[{{\bf -tb -topbottom}}]
+Flips the image upside down.
+The first pixel in a pgm file is in the lower left corner of the image.
+For conversion from images with the first pixel in the upper left corner
+({\it e.g.}, the Molecular Dynamics and Leica confocal formats) this flips the
+image right.
+This is equivalent to
+{\bf rawtopgm\ [file]\ $|$\ pnmflip\ -tb .}
+\end{TPlist}
+
+\shead{BUGS}
+If you don't specify the image width and height, the program will
+try to read the entire image to a memory buffer. If you get a
+message that states that you are out of memory, try to specify the width
+and height on the command line. Also, the -tb option consumes much
+memory.
+\shead{SEE ALSO}
+pgm(5), rawtoppm(1), pnmflip(1)
+\shead{AUTHORS}
+\copyright 1989 by Jef Poskanzer.
+\nwl
+Modified June 1993 by Oliver Trepte (oliver@fysik4.kth.se).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: rawtopgm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:01 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: rawtoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: rawtoppm.1
+%
+\phead{rawtoppm}{1}{06 February 1991}{}{}
+
+%.IX rawtoppm
+\shead{NAME}
+rawtoppm - convert raw RGB bytes into a portable pixmap
+\shead{SYNOPSIS}
+{\bf rawtoppm}
+{\rm [}{\bf -headerskip}
+{\it N}{\rm ]}
+{\rm [}{\bf -rowskip}
+{\it N}{\rm ]}
+{\rm [}{\bf -rgb}{\rm $|$}{\bf -rbg}{\rm $|$}{\bf -grb}
+{\rm $|$}{\bf -gbr}{\rm $|$}{\bf -brg}{\rm $|$}{\bf -bgr}
+{\rm ]}
+{\rm [}{\bf -interpixel}{\rm $|$}{\bf -interrow}{\rm ]}
+{\it width height}
+{\rm [}{\it imagedata}{\rm ]}
+\shead{DESCRIPTION}
+Reads raw RGB bytes as input.
+%.IX "raw RGB"
+Produces a portable pixmap as output.
+The input file is just RGB bytes.
+You have to specify the width and height on the command line,
+since the program obviously can't get them from the file.
+The maxval is assumed to be 255.
+If the resulting image is upside down, run it through
+{\bf pnmflip\ -tb .}
+%.IX pnmflip
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -headerskip}}
+\item[{{\bf -headerskip}}]
+If the file has a header, you can use this flag to
+skip over it.
+\item[{{\bf -rowskip}}]
+If there is padding at the ends of the rows, you can skip it with this flag.
+\item[{{\bf -rgb -rbg -grb -gbr -brg -bgr}}]
+These flags let you specify alternate color orders.  The default is
+{\bf -rgb}{\rm .}
+\item[{{\bf -interpixel -interrow}}]
+These flags let you specify how the colors are interleaved.
+The default is
+{\bf -interpixel}{\rm ,}
+meaning interleaved by pixel.
+A byte of red, a byte of green, and a byte
+of blue, or whatever color order you specified.
+{\bf -interrow}
+means interleaved by row - a row of red, a row of green, a row of blue,
+assuming standard rgb color order.
+An
+{\bf -interplane}
+flag  - all the red pixels, then all the green, then all the blue - would
+be an obvious extension, but is not implemented.
+You could get the same effect by splitting the file into three parts
+(perhaps using
+{\it dd}{\rm ),}
+turning each part into a PGM file with rawtopgm, and then combining them
+with rgb3toppm.
+\end{TPlist}
+
+\shead{SEE ALSO}
+ppm(5), rawtopgm(1), rgb3toppm(1), pnmflip(1)
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: rawtoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:02 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: rgb3toppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: rgb3toppm.1
+%
+\phead{rgb3toppm}{1}{15 February 1990}{}{}
+
+%.IX rgb3toppm
+\shead{NAME}
+rgb3toppm - combine three portable graymaps into one portable pixmap
+\shead{SYNOPSIS}
+{\bf rgb3toppm}
+{\it redpgmfile greenpgmfile bluepgmfile}
+\shead{DESCRIPTION}
+Reads three portable graymaps as input.
+Combines them and produces one portable pixmap as output.
+\shead{SEE ALSO}
+ppmtorgb3(1), pgmtoppm(1), ppmtopgm(1), ppm(5), pgm(5)
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: rgb3toppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:32 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: sirtopnm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: sirtopnm.1
+%
+\phead{sirtopnm}{1}{20 March 1991}{}{}
+
+\shead{NAME}
+sirtopnm - convert a Solitaire file into a portable anymap
+\shead{SYNOPSIS}
+{\bf sirtopnm}
+{\rm [}{\it sirfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a Solitaire Image Recorder file as input.
+Produces a portable anymap as output.
+The type of the output file depends on the input file - if it's
+an MGI TYPE 17 file, a
+{\it pgm}
+file is written. If it's an MGI TYPE 11 file, a
+{\it ppm}
+file is written.  The program tells you which type it is writing.
+\shead{BUGS}
+
+\shead{SEE ALSO}
+pnmtosir(1), pnm(5)
+\shead{AUTHOR}
+\copyright 1991 by Marvin Landis.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+
+%
+% end of input file: sirtopnm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:02 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: sldtoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: sldtoppm.1
+%
+\phead{sldtoppm}{1}{10 October 1991}{}{}
+
+%.IX sldtoppm
+%.IX AutoCAD
+\shead{NAME}
+sldtoppm - convert an AutoCAD slide file into a portable pixmap
+\shead{SYNOPSIS}
+\raggedright
+{\bf sldtoppm}
+'in 14n
+{\rm [}{\bf -adjust}{\rm ]}
+{\rm [}{\bf -dir}{\rm ]}
+{\rm [}{\bf -height}{\rm $|$}{\bf -ysize}
+{\it s}{\rm ]}
+{\rm [}{\bf -info}{\rm ]}
+{\rm [}{\bf -lib}{\rm $|$}{\bf -Lib}
+{\it name}{\rm ]}
+{\rm [}{\bf -scale}
+{\it s}{\rm ]}
+{\rm [}{\bf -verbose}{\rm ]}
+{\rm [}{\bf -width}{\rm $|$}{\bf -xsize}
+{\it s}{\rm ]}
+{\rm [}{\it slidefile}{\rm ]}
+\ind{-7.0em}
+%.ad
+\shead{DESCRIPTION}
+Reads an AutoCAD{l}ide file and outputs a portable pixmap.
+If no
+{\it slidefile}
+is specified, input is read from standard input.
+The ppmdraw library is used to convert the vector and polygon
+information in the slide file to a pixmap; see the file ppmdraw.h for
+details on this package.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -adjust}}
+\item[{{\bf -adjust}}]
+If the display on which the slide file was created had non-square
+pixels, when the slide is processed with
+{\bf sldtoppm}
+and the
+{\bf -adjust}
+option is not present, the following warning will appear:
+\ind{-6.8in}
+Warning - pixels on source screen were non-square.
+\nwl
+Specifying
+{\bf -adjust}
+will correct image width to compensate.
+\ind{-7.0in}
+Specifying the
+{\bf -adjust}
+option causes
+{\bf sldtoppm}
+to scale the width of the image so that pixels in the resulting
+portable pixmap are square (and hence circles appear as true circles,
+not ellipses).  The scaling is performed in the vector domain, before
+scan converting the objects.  The results are, therefore, superior in
+appearance to what you'd obtain were you to perform the equivalent
+scaling with
+{\bf pnmscale}
+after the bitmap had been created.
+\item[{{\bf -dir}}]
+The input is assumed to be an AutoCAD slide library file.  A directory
+listing each slide in the library is printed on standard error.
+\item[{{\bf -height}{\it \ size}
+}]
+Scales the image in the vector domain so it is
+{\it size}
+pixels in height.  If no
+{\bf -width}
+or
+{\bf -xsize}
+option is specified, the width will be adjusted to preserve the
+pixel aspect ratio. 
+\item[{{\bf -info}}]
+Dump the slide file header on standard error, displaying the original
+screen size and aspect ratio among other information.
+\item[{{\bf -lib}{\it \ name}
+}]
+Extracts the slide with the given
+{\it name}
+from the slide library given as input.  The specified
+{\it name}
+is converted to upper case.
+\item[{{\bf -Lib}{\it \ name}
+}]
+Extracts the slide with the given
+{\it name}
+from the slide library given as input.  The
+{\it name}
+is used exactly as specified; it is not converted to upper case.
+\item[{{\bf -scale}{\it \ s}
+}]
+Scales the image by factor
+{\it s}{\rm ,}
+which may be any floating point value greater than zero.  Scaling is
+done after aspect ratio adjustment, if any.  Since scaling is
+performed in the vector domain, before rasterisation, the results look
+much better than running the output of
+{\bf sldtoppm}
+through
+{\bf pnmscale}{\rm .}
+\item[{{\bf -verbose}}]
+Dumps the slide file header and lists every vector and polygon in the
+file on standard error.
+\item[{{\bf -width}{\it \ size}
+}]
+Scales the image in the vector domain so it is
+{\it size}
+pixels wide.  If no
+{\bf -height}
+or
+{\bf -ysize}
+option is specified, the height will be adjusted to preserve the
+pixel aspect ratio. 
+\item[{{\bf -xsize}{\it \ size}
+}]
+Scales the image in the vector domain so it is
+{\it size}
+pixels wide.  If no
+{\bf -height}
+or
+{\bf -ysize}
+option is specified, the height will be adjusted to preserve the
+pixel aspect ratio. 
+\item[{{\bf -ysize}{\it \ size}
+}]
+Scales the image in the vector domain so it is
+{\it size}
+pixels in height.  If no
+{\bf -width}
+or
+{\bf -xsize}
+option is specified, the width will be adjusted to preserve the
+pixel aspect ratio. 
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{BUGS}
+Only Level 2 slides are converted.  Level 1 format has been obsolete
+since the advent of AutoCAD Release 9 in 1987, and was not portable
+across machine architectures.
+\par
+Slide library items with names containing 8 bit (such as ISO) or 16
+bit (Kanji, for example) characters may not be found when chosen with the
+{\bf -lib}
+option unless
+{\bf sldtoppm}
+has been built with character set conversion functions appropriate to
+the locale.  You can always retrieve slides from libraries regardless
+of the character set by using the
+{\bf -Lib}
+option and specifying the precise name of library member.  Use the
+{\bf -dir}
+option to list the slides in a library if you're unsure of the
+exact name.
+\shead{SEE ALSO}
+AutoCAD Reference Manual:
+{\it Slide\ File\ Format}{\rm ,}
+{\bf pnmscale}{\rm (1),}
+{\bf ppm}{\rm (5)}
+\shead{AUTHOR}
+\ind{1\parindent}{\nofill
+    John Walker
+    Autodesk SA
+    Avenue des Champs-Montants 14b
+    CH-2074 MARIN
+    Suisse/Schweiz/Svizzera/Svizra/Switzerland
+\fill}
+\begin{TPlist}{Usenet:}
+\item[{Usenet:}]
+kelvin@Autodesk.com
+\item[{Fax:}]
+038/33 88 15
+\item[{Voice:}]
+038/33 76 33
+\end{TPlist}
+
+\par
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+without any conditions or restrictions.  This software is provided ``as
+is'' without express or implied warranty.
+\par
+AutoCAD and Autodesk are registered trademarks of Autodesk, Inc.
+%
+% end of input file: sldtoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:03 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: spctoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: spctoppm.1
+%
+\phead{spctoppm}{1}{19 July 1990}{}{}
+
+%.IX spctoppm
+\shead{NAME}
+spctoppm - convert an Atari compressed Spectrum file into a portable pixmap
+\shead{SYNOPSIS}
+{\bf spctoppm}
+{\rm [}{\it spcfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads an Atari compressed Spectrum file as input.
+%.IX Atari
+%.IX Spectrum
+Produces a portable pixmap as output.
+\shead{SEE ALSO}
+sputoppm(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1991 by Steve Belczyk (seb3@gte.com) and Jef Poskanzer.
+% Permission to use, copy, modify and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: spctoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:37 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: spottopgm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: spottopgm.1
+%
+\phead{spottopgm}{1L}{}{}{}
+
+\shead{NAME}
+spottopgm -- convert SPOT satellite images to Portable Greymap format
+\shead{SYNTAX}
+spottopgm [--1$|$2$|$3] [Firstcol Firstline Lastcol Lastline] inputfile
+\shead{OPTIONS}
+\begin{TPlist}{{\bf --1$|$2$|$3}}
+\item[{{\bf --1$|$2$|$3}}]
+Extract the given colour from the SPOT image. The colours are infra-red,
+visible light and ultra-violet, although I don't know which corresponds
+to which number. If the image is in colour, this will be announced on
+standard error. The default colour is 1.
+\item[{{\bf Firstcol Firstline Lastcol Lastline}}]
+Extract the specified rectangle from the SPOT image. Most SPOT images are
+3000 lines long and 3000 or more columns wide. Unfortunately the SPOT format
+only gives the width and not the length. The width is printed on standard
+error. The default rectangle is the width of the input image by 3000 lines.
+\end{TPlist}
+
+\shead{DESCRIPTION}
+{\it Spottopgm}
+converts the named
+{\bf inputfile}
+into Portable Greymap format, defaulting to the first color and the whole
+SPOT image unless specified by the options.
+\shead{INSTALLATION}
+You
+{\bf must}
+edit the source program and either define BIGENDIAN or LITTLEENDIAN,
+and fix the typedefs for uint32t, uint16t and uint8t appropriately.
+\shead{BUGS}
+Currently
+{\it spottopgm}
+doesn't determine the length of the input file; this would involve two
+passes over the input file. It defaults to 3000 lines instead.
+\par
+{\it Spottopgm}
+could extract a three-color image (ppm), but I didn't feel like making the
+program more complicated than it is now. Besides, there is no one-to-one
+correspondence between red, green, blue and infra-red, visible and
+ultra-violet.
+\par
+I've only had a limited number of SPOT images to play with, and therefore
+wouldn't guarantee that this will work on any other images.
+\shead{AUTHOR}
+Warren Toomey  wkt@csadfa.cs.adfa.oz.au
+\shead{SEE ALSO}
+The rest of the Pbmplus suite.
+%
+% end of input file: spottopgm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:03 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: sputoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: sputoppm.1
+%
+\phead{sputoppm}{1}{19 July 1990}{}{}
+
+%.IX sputoppm
+\shead{NAME}
+sputoppm - convert an Atari uncompressed Spectrum file into a portable pixmap
+\shead{SYNOPSIS}
+{\bf sputoppm}
+{\rm [}{\it spufile}{\rm ]}
+\shead{DESCRIPTION}
+Reads an Atari uncompressed Spectrum file as input.
+%.IX Atari
+%.IX Spectrum
+Produces a portable pixmap as output.
+\shead{SEE ALSO}
+spctoppm(1), ppm(5)
+\shead{AUTHOR}
+\copyright 1991 by Steve Belczyk (seb3@gte.com) and Jef Poskanzer.
+% Permission to use, copy, modify and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: sputoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:04 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: tgatoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: tgatoppm.1
+%
+\phead{tgatoppm}{1}{26 August 1989}{}{}
+
+%.IX tgatoppm
+\shead{NAME}
+tgatoppm - convert TrueVision Targa file into a portable pixmap
+\shead{SYNOPSIS}
+{\bf tgatoppm}
+{\rm [}{\bf -debug}{\rm ]}
+{\rm [}{\it tgafile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a TrueVision Targa file as input.
+%.IX TrueVision
+%.IX Targa
+Produces a portable pixmap as output.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -debug}}
+\item[{{\bf -debug}}]
+Causes the header information to be dumped to stderr.
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+%.BUGS
+Should really be in PNM, not PPM.
+\shead{SEE ALSO}
+ppmtotga(1), ppm(5)
+\shead{AUTHOR}
+Partially based on tga2rast, version 1.0, by Ian J. MacPhedran.
+
+\copyright 1989 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: tgatoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:36 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: tifftopnm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: tifftopnm.1
+%
+\phead{tifftopnm}{1}{13 January 1991}{}{}
+
+%.IX tifftopnm
+\shead{NAME}
+tifftopnm - convert a TIFF file into a portable anymap
+\shead{SYNOPSIS}
+{\bf tifftopnm}
+{\rm [}{\bf -headerdump}{\rm ]}
+{\rm tifffile}
+\shead{DESCRIPTION}
+Reads a TIFF file as input.
+%.IX TIFF
+Produces a portable anymap as output.
+The type of the output file depends on the input file - if it's
+black \& white, a
+{\it pbm}
+file is written, else if it's grayscale a
+{\it pgm}
+file, else a
+{\it ppm}
+file.  The program tells you which type it is writing.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -headerdump}}
+\item[{{\bf -headerdump}}]
+Dump TIFF file information to stderr.  This information may be useful 
+in debugging TIFF file conversion problems.  
+\end{TPlist}
+
+\par
+All flags can be abbreviated to their shortest unique prefix.
+\shead{SEE ALSO}
+pnmtotiff(1), pnm(5)
+\shead{BUGS}
+This program is not self-contained.  To use it you must fetch the
+TIFF Software package listed in the OTHER.SYSTEMS file and configure
+PBMPLUS to use libtiff.  See PBMPLUS's Makefile for details on this
+configuration.
+\shead{AUTHOR}
+Derived by Jef Poskanzer from tif2ras.c, which is
+\copyright 1990 by Sun Microsystems, Inc.\hfil\break
+Author: Patrick J. Naughton (naughton@wind.sun.com).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted,
+% provided that the above copyright notice appear in all copies and that
+% both that copyright notice and this permission notice appear in
+% supporting documentation.
+% 
+% This file is provided AS IS with no warranties of any kind.  The author
+% shall have no liability with respect to the infringement of copyrights,
+% trade secrets or any patents by this file or any part thereof.  In no
+% event will the author be liable for any lost revenue or profits or
+% other special, indirect and consequential damages.
+%
+% end of input file: tifftopnm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:14 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: xbmtopbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: xbmtopbm.1
+%
+\phead{xbmtopbm}{1}{31 August 1988}{}{}
+
+%.IX xbmtopbm
+\shead{NAME}
+xbmtopbm - convert an X11 or X10 bitmap into a portable bitmap
+\shead{SYNOPSIS}
+{\bf xbmtopbm}
+{\rm [}{\it bitmapfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads an X11 or X10 bitmap as input.
+Produces a portable bitmap as output.
+%.IX "X bitmap"
+%.IX "X window system"
+\shead{SEE ALSO}
+pbmtoxbm(1), pbmtox10bm(1), pbm(5)
+\shead{AUTHOR}
+\copyright 1988 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: xbmtopbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:05 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ximtoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ximtoppm.1
+%
+\phead{ximtoppm}{1}{25 March 1990}{}{}
+
+%.IX ximtoppm
+\shead{NAME}
+ximtoppm - convert an Xim file into a portable pixmap
+\shead{SYNOPSIS}
+{\bf ximtoppm}
+{\rm [}{\it ximfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads an Xim file as input.
+%.IX Xim
+%.IX "X window system"
+Produces a portable pixmap as output.
+The Xim toolkit is included in the contrib tree of the X.V11R4 release.
+\shead{SEE ALSO}
+ppm(5)
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ximtoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:05 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: xpmtoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: xpmtoppm.1
+%
+\phead{xpmtoppm}{1}{16 August 1990}{}{}
+
+\shead{NAME}
+xpmtoppm - convert an X11 pixmap into a portable pixmap
+\shead{SYNOPSIS}
+{\bf xpmtoppm}
+{\rm [}{\it xpmfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads an X11 pixmap (XPM version 1 or 3) as input.
+Produces a portable pixmap as output.
+\shead{KNOWN BUGS}
+The support to XPM version 3 is limited. Comments can only be single lines
+and there must be for every pixel a default colorname for a color type visual.
+\shead{SEE ALSO}
+ppmtoxpm(1), ppm(5)
+\nwl
+XPM Manual by Arnaud Le Hors (lehors@mirsa.inria.fr).
+\shead{AUTHOR}
+\copyright 1991 by Jef Poskanzer.
+Upgraded to support XPM version 3 by Arnaud Le Hors
+(lehors@mirsa.inria.fr) Tue Apr 9 1991.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: xpmtoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Mon Feb  7 08:46:26 1994
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: xvminitoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: xvminitoppm.1
+%
+\phead{xvminitoppm}{1}{14 December 1993}{}{}
+
+\shead{NAME}
+xvminitoppm - convert a XV ``thumbnail'' picture to PPM
+\shead{SYNOPSIS}
+{\bf xvminitoppm}
+{\rm [}{\it xvminipic}{\rm ]}
+\shead{DESCRIPTION}
+Reads a XV ``thumbnail'' picture (a miniature picture generated by
+the ``VisualSchnauzer'' browser) as input.
+Produces a portable pixmap as output.
+\shead{SEE ALSO}
+ppm(5), xv(1)
+\shead{AUTHOR}
+Copyright (C) 1993 by Ingo Wilken
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: xvminitoppm.1
+%--------------------------------------------------
+
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:28 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: xwdtopnm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: xwdtopnm.1
+%
+\phead{xwdtopnm}{1}{11 January 1991}{}{}
+
+%.IX xwdtopnm
+\shead{NAME}
+xwdtopnm - convert a X11 or X10 window dump file into a portable anymap
+\shead{SYNOPSIS}
+{\bf xwdtopnm}
+{\rm [}{\it xwdfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a X11 or X10 window dump file as input.
+%.IX XWD
+%.IX "X window system"
+Produces a portable anymap as output.
+The type of the output file depends on the input file - if it's
+black \& white, a
+{\it pbm}
+file is written, else if it's grayscale a
+{\it pgm}
+file, else a
+{\it ppm}
+file.  The program tells you which type it is writing.
+\par
+Using this program, you can convert anything on an X workstation's screen
+into an anymap.
+Just display whatever you're interested in, do an xwd, run it through
+xwdtopnm, and then use pnmcut to select the part you want.
+\shead{BUGS}
+I haven't tested this tool with very many configurations, so there are
+probably bugs.
+Please let me know if you find any.
+\shead{SEE ALSO}
+pnmtoxwd(1), pnm(5), xwd(1)
+\shead{AUTHOR}
+\copyright 1989, 1991 by Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: xwdtopnm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:08:14 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: ybmtopbm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: ybmtopbm.1
+%
+\phead{ybmtopbm}{1}{06 March 1990}{}{}
+
+%.IX ybmtopbm
+\shead{NAME}
+ybmtopbm - convert a Bennet Yee ``face'' file into a portable bitmap
+\shead{SYNOPSIS}
+{\bf ybmtopbm}
+{\rm [}{\it facefile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a file acceptable to the
+{\it face}
+and
+{\it xbm}
+programs by Bennet Yee (bsy+@cs.cmu.edu).
+%.IX face
+Writes a portable bitmap as output.
+\shead{SEE ALSO}
+pbmtoybm(1), pbm(5), face(1), face(5), xbm(1)
+\shead{AUTHOR}
+\copyright 1991 by Jamie Zawinski and Jef Poskanzer.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: ybmtopbm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:12 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: yuvsplittoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: yuvsplittoppm.1
+%
+\phead{yuvsplittoppm}{1}{26 August 93}{}{}
+
+%.IX yuvsplittoppm
+\shead{NAME}
+yuvplittoppm - convert a Y- an U- and a V-file into a portable pixmap.
+\shead{SYNOPSIS}
+{\bf yuvsplittoppm}
+{\it basename width height}
+[-ccir601]
+\shead{DESCRIPTION}
+Reads three files, containing the YUV components, as input.
+These files are
+{\it basename}
+Y,
+{\it basename}
+U
+and
+{\it basename}
+.V .
+Produces a portable pixmap on stdout.
+
+Since the YUV files are raw files, the dimensions
+{\it width}
+and
+{\it height}
+must be specified on the command line.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -ccir601}}
+\item[{{\bf -ccir601}}]
+Assumes that the YUV triplets are scaled into the smaller range of the
+CCIR 601 (MPEG) standard. Else, the JFIF (JPEG) standard is assumed.
+\end{TPlist}
+
+\shead{SEE ALSO}
+ppmtoyuvsplit(1), yuvtoppm(1), ppm(5)
+\shead{AUTHOR}
+Marcel Wijkstra (wijkstra@fwi.uva.nl), based on {\it ppmtoyuvsplit.}
+%
+% end of input file: yuvsplittoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:06 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: yuvtoppm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: yuvtoppm.1
+%
+\phead{yuvtoppm}{1}{25 March 91}{}{}
+
+%.IX yuvtoppm
+\shead{NAME}
+yuvtoppm - convert Abekas YUV bytes into a portable pixmap
+\shead{SYNOPSIS}
+{\bf yuvtoppm}
+{\it width height}
+{\rm [}{\it imagedata}{\rm ]}
+\shead{DESCRIPTION}
+Reads raw Abekas YUV bytes as input.
+%.IX Abekas
+Produces a portable pixmap as output.
+The input file is just YUV bytes.
+You have to specify the width and height on the command line,
+since the program obviously can't get them from the file.
+The maxval is assumed to be 255.
+\shead{SEE ALSO}
+ppmtoyuv(1), ppm(5)
+\shead{AUTHOR}
+Marc Boucher (marc@PostImage.COM),
+based on Example Conversion Program, A60/A64 Digital Video Interface
+Manual, page 69.
+\par
+\copyright 1991 by DHD PostImage Inc.
+\par
+\copyright 1987 by Abekas Video Systems Inc.
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: yuvtoppm.1
+%--------------------------------------------------
+ 
+% -*-LaTeX-*-
+% Converted automatically from troff to LaTeX
+% by tr2latex ($Revision: 2.2 $$Date: 1992/04/27 15:13:26 $ by C. Engel)
+% on Fri Oct  8 16:09:34 1993
+% tr2latex was written by Kamal Al-Yahya at Stanford University
+% (Kamal%Hanauma@SU-SCORE.ARPA)
+% and substantially enhanced by Christian Engel at RWTH Aachen
+% (krischan@informatik.rwth-aachen.de).
+%
+% troff input file: zeisstopnm.1
+
+\newpage
+%--------------------------------------------------
+% start of input file: zeisstopnm.1
+%
+\phead{zeisstopnm}{1}{15 June 1993}{}{}
+
+%.IX zeisstopnm
+\shead{NAME}
+zeisstopnm - convert a Zeiss confocal file into a portable anymap
+\shead{SYNOPSIS}
+{\bf zeisstopnm}
+{\rm [}{\it -pgm}
+$|$
+{\it -ppm}{\rm ]}
+{\rm [}{\it zeissfile}{\rm ]}
+\shead{DESCRIPTION}
+Reads a Zeiss confocal file as input.
+Produces a portable anymap as output.
+The type of the output file depends on the input file -
+if it's grayscale a
+{\it pgm}
+file, else a
+{\it ppm}
+file will be produced.
+The program tells you which type it is writing.
+\shead{OPTIONS}
+\begin{TPlist}{{\bf -pgm}}
+\item[{{\bf -pgm}}]
+Force the output to be a
+{\it pgm}
+file.
+\item[{{\bf -ppm}}]
+Force the output to be a
+{\it ppm}
+file.
+\end{TPlist}
+
+\shead{SEE ALSO}
+pnm(5)
+\shead{AUTHOR}
+\copyright 1993 by Oliver Trepte (oliver@fysik4.kth.se).
+% Permission to use, copy, modify, and distribute this software and its
+% documentation for any purpose and without fee is hereby granted, provided
+% that the above copyright notice appear in all copies and that both that
+% copyright notice and this permission notice appear in supporting
+% documentation.  This software is provided "as is" without express or
+% implied warranty.
+%
+% end of input file: zeisstopnm.1
+%--------------------------------------------------
+\end{document}
diff --git a/vms/PBMplus.hlp b/vms/PBMplus.hlp
new file mode 100644
index 00000000..52ba0f33
--- /dev/null
+++ b/vms/PBMplus.hlp
@@ -0,0 +1,6814 @@
+1 HELP
+        See PBMplus and OVERVIEW.
+
+1 OVERVIEW
+        Enhanced portable bitmap  toolkit.  The PBMPLUS toolkit allows
+    conversions between image files  of different format.  By means of
+    using common intermediate formats, only  2  * N conversion filters
+    are required to support N distinct  formats,  instead  of the N**2
+    which would be required to convert directly between any one format
+    and  any  other.    The  package also includes  simple  tools  for
+    manipulating portable bitmaps.
+
+        The package consists of four upwardly compatible sections:
+        
+    pbm     Supports monochrome bitmaps (1 bit per pixel).
+
+    pgm     Supports grayscale  images.    Reads  either  PBM  or  PGM
+            formats and writes PGM format.
+
+    ppm     Supports full-color images.  Reads either PBM, PGM, or PPM
+            formats, writes PPM format.
+
+    pnm     Supports content-independent manipulations on any  of  the
+            three formats listed above, as well  as  external  formats
+            having  multiple  types.  Reads either PBM,  PGM,  or  PPM
+            formats,  and  generally writes the same type as  it  read
+            (whenever a PNM tool makes an exception and ``promotes'' a
+            file to a higher format, it informs the user).
+
+        See PBMplus for more infomation.
+
+1 PBMplus
+        Enhanced portable bitmap  toolkit.  The PBMPLUS toolkit allows
+    conversions between image files  of different format.  By means of
+    using common intermediate formats, only  2  * N conversion filters
+    are required to support N distinct  formats,  instead  of the N**2
+    which would be required to convert directly between any one format
+    and  any  other.    The  package also includes  simple  tools  for
+    manipulating portable bitmaps.
+
+        The package consists of four upwardly compatible sections:
+        
+    pbm     Supports monochrome bitmaps (1 bit per pixel).
+
+    pgm     Supports grayscale  images.    Reads  either  PBM  or  PGM
+            formats and writes PGM format.
+
+    ppm     Supports full-color images.  Reads either PBM, PGM, or PPM
+            formats, writes PPM format.
+
+    pnm     Supports content-independent manipulations on any  of  the
+            three formats listed above, as well  as  external  formats
+            having  multiple  types.  Reads either PBM,  PGM,  or  PPM
+            formats,  and  generally writes the same type as  it  read
+            (whenever a PNM tool makes an exception and ``promotes'' a
+            file to a higher format, it informs the user).
+
+2 Description_of_Contents
+        A brief,  one-line  description  of  each  of  the  individual
+    programs in the PBMplus package.  They are sorted by general type.
+
+3 pbm
+    atktopbm    convert Andrew Toolkit raster object to portable bitmap
+    brushtopbm  convert Xerox doodle brushes to portable bitmap
+    cmuwmtopbm  convert CMU window manager format to portable bitmap
+    g3topbm     convert Group 3 FAX to portable bitmap
+    icontopbm   convert Sun icon to portable bitmap
+    gemtopbm    convert GEM .img format to portable bitmap
+    macptopbm   convert MacPaint to portable bitmap
+    mgrtopbm    convert MGR format to portable bitmap
+    pktopbm     convert packed (PK) format font into portable bitmap(s)
+    pbmmerge    merge wrapper routine
+    pbmto10x    convert portable bitmap to Gemini 10x printer graphics
+    pbmto4425   convert portable bitmap to AT&T 4425 terminal
+    pbmtoascii  convert portable bitmap to ASCII graphic form
+    pbmtoatk    convert portable bitmap to Andrew Toolkit raster object
+    pbmtobbnbg  convert portable bitmap to BBN BitGraph graphics
+    pbmtocmuwm  convert portable bitmap to CMU window manager format
+    pbmtoepson  convert portable bitmap to Epson printer graphics
+    pbmtog3     convert portable bitmap to Group 3 FAX
+    pbmtogem    convert portable bitmap into GEM .img file
+    pbmtogo     convert portable bitmap to GraphOn graphics
+    pbmtoicon   convert portable bitmap to Sun icon
+    pbmtolj     convert portable bitmap to HP LaserJet graphics
+    pbmtoln03   convert portable bitmap to DEC LN03+ Laserprinter
+    pbmtolps    convert portable bitmap to PostScript
+    pbmtomacp   convert portable bitmap to MacPaint
+    pbmtomgr    convert portable bitmap to MGR format
+    pbmtopgm    convert portable bitmap to portable graymap by ave. areas
+    pbmtopi3    convert portable bitmap to Atari Degas .pi3
+    pbmtopk     convert portable bitmap into a packed (PK) format font
+    pbmtoplot   convert portable bitmap into Unix plot(5) file
+    pbmtoptx    convert portable bitmap to Printronix graphics
+    pbmtoxbm    convert portable bitmap to X11 bitmap
+    pbmtox10bm  convert portable bitmap to X10 bitmap
+    pbmtoybm    convert portable bitmap into Bennet Yee "face" file
+    pbmtozinc   convert portable bitmap to Zinc Interface Library icon
+    pbmtoepsi   convert portable bitmap into an encapsulated PostScript
+    pi3topbm    convert Atari Degas .pi3 to portable bitmap
+    xbmtopbm    convert X10 or X11 bitmap to portable bitmap
+    ybmtopbm    convert Bennet Yee "face" file into portable bitmap
+
+    pbmclean    flip isolated pixels in portable bitmap
+    pbmlife     apply Conway's rules of Life to a portable bitmap
+    pbmmake     create a blank bitmap of a specified size and color
+    pbmmask     create a mask bitmap from a regular bitmap
+    pbmreduce   reduce a portable bitmap N times, using Floyd-Steinberg
+    pbmspcale   enlarge a portable bitmap with edge smoothing
+    pbmtext     render text into a bitmap
+    pbmupc      create a Universal Product Code bitmap
+
+3 pgm
+    asciitopgm  convert ASCII graphics into a portable graymap
+    fstopgm     convert Usenix FaceSaver format to portable graymap
+    hipstopgm   convert HIPS format to portable graymap
+    lispmtopgm  convert a Lisp Machine bitmap file into pgm format
+    bioradtopgm convert a Biorad confocal file into a portable graymap
+    psidtopgm   convert PostScript "image" data to portable graymap
+    rawtopgm    convert raw grayscale bytes to portable graymap
+    spottopgm   convert SPOT satellite images to Portable Greymap format
+    pgmtofs     convert portable graymap to Usenix FaceSaver format
+    pgmtolispm  convert a portable graymap into Lisp Machine format
+    pgmtopbm    convert portable graymap to portable bitmap
+
+    pgmbentley  Bentleyize a portable graymap
+    pgmcrater   create cratered terrain by fractal forgery
+    pgmedge     edge-detect a portable graymap
+    pgmenhance  edge-enhance a portable graymap
+    pgmhist     print a histogram of the values in a portable graymap
+    pgmkernel   generate a convolution kernel
+    pgmmerge    merge wrapper routine
+    pgmnoise    create a graymap made up of white noise
+    pgmnorm     normalize contrast in a portable graymap
+    pgmoil      turn a portable graymap into an oil painting
+    pgmramp     generate a grayscale ramp
+    pgmtexture  calculate textural features on a portable graymap
+
+3 ppm
+    bmptoppm    convert BMP file to portable pixmap
+    gouldtoppm  convert Gould scanner file to portable pixmap
+    ilbmtoppm   convert IFF ILBM to portable pixmap
+    imgtoppm    convert Img-whatnot to portable pixmap
+    mtvtoppm    convert MTV ray-tracer output to portable pixmap
+    pcxtoppm    convert PC Paintbrush format to portable pixmap
+    pgmtoppm    colorize a portable graymap into a portable pixmap
+    pi1toppm    convert Atari Degas .pi1 to portable pixmap
+    picttoppm   convert Macintosh PICT to portable pixmap
+    pjtoppm     convert HP PaintJet file to portable pixmap
+    ppmtoacad   convert portable pixmap to AutoCAD database or slide
+    ppmtobmp    convert portable pixmap to BMP file
+    ppmtogif    convert portable pixmap to GIF
+    ppmtoicr    convert portable pixmap to NCSA ICR graphics
+    ppmtoilbm   convert portable pixmap to IFF ILBM
+    ppmtomitsu  convert a portable pixmap to a Mitsubishi S340-10 file
+    ppmtomap    extract all colors from a portable pixmap
+    ppmtopcx    convert portable pixmap to PC Paintbrush format
+    ppmtopgm    convert portable pixmap to portable graymap
+    ppmtopi1    convert portable pixmap to Atari Degas .pi1
+    ppmtopict   convert portable pixmap to Macintosh PICT
+    ppmtopj     convert portable pixmap to HP PaintJet file
+    ppmtopjxl   convert portable pixmap to HP PaintJet XL PCL file
+    ppmtopuzz   convert portable pixmap to X11 "puzzle" file
+    ppmtorgb3   separate a portable pixmap to three portable graymaps
+    ppmtosixel  convert portable pixmap to DEC sixel format
+    ppmtotga    convert portable pixmap to TrueVision Targa file
+    ppmtouil    convert portable pixmap to Motif UIL icon file
+    ppmtoxpm    convert portable pixmap to XPM format
+    ppmtoyuv    convert portable pixmap to Abekas YUV format
+    qrttoppm    convert QRT ray-tracer output to portable pixmap
+    rawtoppm    convert raw RGB bytes to portable pixmap
+    rgb3toppm   combine three portable graymaps to one portable pixmap
+    sldtoppm    convert an AutoCAD slide file into a portable pixmap
+    spctoppm    convert Atari compressed Spectrum to portable pixmap
+    sputoppm    convert Atari uncompressed Spectrum to portable pixmap
+    tgatoppm    convert TrueVision Targa file to portable pixmap
+    ximtoppm    convert Xim to portable pixmap
+    xpmtoppm    convert XPM format to portable pixmap
+    xvminitoppm convert a XV "thumbnail" picture to PPM
+    yuvtoppm    convert Abekas YUV format to portable pixmap
+
+    ppm3d       convert 2 portable pixmap to a red/blue 3d glasses pixmap
+    ppmbrighten change images Saturation and Value from an HSV map
+    ppmchange   change pixels of one color to another in a portable pixmap
+    ppmdim      dim a portable pixmap down to total blackness
+    ppmdist     simple grayscale for machine generated, color images
+    ppmdither   ordered dither for color images
+    ppmflash    brighten a picture up to complete white-out
+    ppmforge    fractal forgeries of clouds, planets, and starry skies
+    ppmhist     print a histogram of a portable pixmap
+    ppmmake     create a pixmap of a specified size and color
+    ppmmix      blend together two portable pixmaps
+    ppmpat      create a pretty pixmap
+    ppmquant    quantize colors down to a specified number
+    ppmqvga     8 plane quantization
+    ppmrelief   run a Laplacian Relief filter on a portable pixmap
+    ppmshift    shift lines of a portable pixmap left or right by a
+                random amount
+    ppmspread   displace a portable pixmap's pixels by a random amount
+
+3 pnm
+    pnmtoddif   convert portable anymap to DDIF format
+    pnmtofits   convert a portable anymap into FITS format
+    pnmtops     convert portable anymap to PostScript
+    pnmtorast   convert portable anymap to Sun raster file
+    pnmtotiff   convert portable anymap to TIFF file
+    pnmtoxwd    convert portable anymap to X11 window dump
+    fitstopnm   convert a FITS file into a portable anymap
+    rasttopnm   convert Sun raster file to portable anymap
+    tifftopnm   convert TIFF file to portable anymap
+    xwdtopnm    convert X10 or X11 window dump to portable anymap
+    pnmtosir    convert a portable anymap into a Solitaire format
+    sirtopnm    convert a Solitaire file into a portable anymap
+    zeisstopnm  convert a Zeiss confocal file into a portable anymap
+
+    pnmalias    antialias a portable anyumap.
+    pnmarith    perform arithmetic on two portable anymaps
+    pnmcat      concatenate portable anymaps
+    pnmcomp     composite two portable anymap files together
+    pnmconvol   general MxN convolution on a portable anymap
+    pnmcrop     crop all like-colored borders off a portable anymap
+    pnmcut      select a rectangular region from a portable anymap
+    pnmdepth    change the maxval in a portable anymap
+    pnmenlarge  enlarge a portable anymap N times
+    pnmfile     describe a portable anymap
+    pnmflip     perform one or more flip operations on a portable anymap
+    pnmgamma    perform gamma correction on a portable anymap
+    pnmhistmap  draw a histogram for a PGM or PPM file
+    pnminvert   invert a portable anymap
+    pnmnlfilt   non-linear filters: smooth, alpha trim mean,
+                optimal estimation smoothing, edge enhancement
+    pnmnoraw    force a portable anymap into ASCII format
+    pnmpad      add borders to portable anymap
+    pnmpaste    paste a rectangle into a portable anymap
+    pnmrotate   rotate a portable anymap
+    pnmscale    scale a portable anymap
+    pnmshear    shear a portable anymap
+    pnmtile     replicate a portable anymap into a specified size
+
+2 See_Also
+        There are a number of related image-manipulation tools:
+
+    IM Raster Toolkit
+        A portable and efficient format toolkit.   The format supports
+    pixels  of  arbitrary  channels,  components, and bit  precisions,
+    while  allowing  compression  and machine byte-order independence.
+    Support for  image  manipulation,  digital  halftoning, and format
+    conversion.  Previously  distributed on tape c/o the University of
+    Waterloo (an ftp version is to appear later).  Author:  Alan Paeth
+    (awpaeth@watcgl.uwaterloo.ca).
+
+    Utah RLE Toolkit
+        Conversion  and  manipulation  package,  similar  to  PBMPLUS.
+    Available  via  ftp  as  cs.utah.edu:   pub/toolkit-2.0.tar.Z  and
+    ucsd.edu:  graphics/utah-raster-toolkit.tar.Z.
+
+    Fuzzy Pixmap Manipulation
+        Conversion  and  manipulation  package,  similar  to  PBMPLUS.
+    Version     1.0    available    via    ftp    as    nl.cs.cmu.edu:
+    /usr/mlm/ftp/fbm.tar.Z,  uunet.uu.net:        pub/fbm.tar.Z,   and
+    ucsd.edu:    graphics/fbm.tar.Z.       Author:    Michael  Mauldin
+    (mlm@nl.cs.cmu.edu).
+
+    Img Software Set
+        Reads and  writes  its own image format, displaying results on
+    an X11 screen,  and does some image manipulations.  Version 1.3 is
+    available  via  ftp  as    ftp.x.org:contrib/img_1.3.tar.Z,    and
+    venera.isi.edu:pub/img_1.3.tar.Z, along with a large collection of
+    color images.  Author:  Paul Raveling (raveling@venera.isi.edu).
+
+    Xim
+        Reads and writes its own image  format,  displays  on  an  X11
+    screen,  and  does some image manipulations.   Available  in  your
+    nearest  X11R4  source  tree  as it contrib/clients/xim.   A  more
+    recent version is available via ftp from video.mit.edu.   It  uses
+    X11R4 and the OSF/Motif toolkit to provide basic interactive image
+    manipulation  and  reads/writes GIF, xwd, xbm, tiff, rle, xim, and
+    other formats.  Author:  Philip R.  Thompson.
+
+    xloadimage
+        Reads in images in various formats and displays them on an X11
+    screen.  Available  via  ftp as ftp.x.org:contrib/xloadimage*, and
+    in  your nearest comp.sources.x  archive.    Author:    Jim  Frost
+    (madd@std.com).
+
+    TIFF Software
+        Nice portable library for reading and writing TIFF files, plus
+    a few tools for  manipulating  them  and  reading  other  formats.
+    Available    via    ftp    as   sgi.com:pub/graphics/*.tar.Z    or
+    uunet.uu.net:graphics/tiff.tar.Z. Author: Sam Leffler (sam@sgi.com).
+
+    ALV
+        A  Sun-specific  image  toolkit.    Version  2.0.6  posted  to
+    comp.sources.sun on 11 December 1989.  Also available via email to
+    alv-users-request@cs.bris.ac.uk.
+
+    popi
+        An  image  manipulation  language.    Version  2.1  posted  to
+    comp.sources.misc on 12 December 1989.
+
+    ImageMagick
+        X11  package  for  display  and  interactive  manipulation  of
+    images.  Uses its own format (MIFF), and includes some converters.
+    Available via ftp as ftp.x.org:contrib/ImageMagick.tar.Z.
+
+    Khoros
+        Huge  (~100  meg)  graphical  development environment based on
+    X11R4.    Components  include  a visual programming language, code
+    generators for  extending  the  visual  language  and  adding  new
+    application packages to  the system, an interactive user interface
+    editor, an interactive image display package, an extensive library
+    of  image  and  signal processing  routines,  and  2D/3D  plotting
+    packages.  Available via ftp as pprg.unm.edu:pub/khoros/*.
+
+    JPEG package
+        JPEG is a a standardized compression method for full-color and
+    gray-scale  images  of "real-world"  scenes;    this  experimental
+    package includes programs to compress  gif and ppm format files to
+    JPEG  format  ( cjpeg(1L)), and to  decompress  them  (djpeg(1L)).
+    Available by ftp as uunet.uu.net:graphics/jpeg/jpegsrc.v1.tar.Z.
+
+        libpbm(3L),  libpgm(3L),    libpnm(3L),  libppm(3L),  pbm(5L),
+    pgm(5L), pnm(5L), ppm(5L), rasterfile(1)
+
+2 Author
+        Distribution of 1 December 1991.   Copyright 1989, 1991 by Jef
+    Poskanzer.
+
+        Feedback and questions are welcome.  Please send them to:
+
+                             jef@well.sf.ca.us
+                              apple!well!jef
+
+        When  sending  bug  reports,  always  include  the output from
+    running  any  pbmplus  program  with  the -version flag, including
+    descriptions of  the  type  of system you are on, the compiler you
+    use, and whether you are using Makefiles or Imakefiles.
+
+        When  suggesting  new  formats  or  features,  please  include
+    whatever documentation you have,  and  a  uuencoded  sample.   The
+    response time will depend upon  my  schedule and the complexity of
+    the task;  if you need  it right away, or it is a complicated job,
+    you might consider paying me.
+
+        The  Usenet  newsgroup  alt.graphics.pixutils  is a forum  for
+    discussion  of  image  conversion  and editing packages.   Posting
+    queries  there  may be better than mailing them to  me,  since  it
+    allows other people to help provide answers.
+
+        Permission  to use, copy, modify, and distribute this software
+    and its  documentation  for  any purpose and without fee is hereby
+    granted, provided that  the  above  copyright notice appear in all
+    copies and that both  that  copyright  notice  and this permission
+    notice  appear  in supporting documentation.    This  software  is
+    provided "as is" without express or  implied  warranty.  Thus, you
+    may do what you want with this  software.    Build  it  into  your
+    package, steal code from it, whatever.  Just be sure to let people
+    know where it came from.
+
+1 asciitopgm
+        asciitopgm - convert ASCII graphics into a portable graymap
+
+2 Synopis
+        asciitopgm [-d divisor] height width [asciifile]
+
+2 Description
+        Reads  ASCII data as input.  Produces a portable graymap  with
+    pixel values which are an approximation of the "brightness" of the
+    ASCII  characters,  assuming black-on-white printing.    In  other
+    words, a capital M is very  dark,  a  period  is  ver light, and a
+    space is white.  Input lines which are fewer than width characters
+    are automatically padded with spaces.
+
+        The divisor argument is a floating-point number by  which  the
+    output pixels are divided;  the default value is 1.0.  This can be
+    used to adjust the brightness of the graymap:  for example, if the
+    image is too dim, reduce the divisor.
+
+        In keeping with  (I believe) Fortran line-printer conventions,
+    input lines beginning with  a  +  (plus)  character are assumed to
+    "overstrike" the previous line, allowing  a  larger  range of gray
+    values.
+
+        This tool contradicts the message in  the  pbmtoascii  manual:
+    "Note that there is no asciitopbm tool  -  this  transformation is
+    one-way."
+
+2 Bugs
+        The    table    of    ASCII-to-grey    values  is  subject  to
+    interpretation,  and,  of course, depends on the typeface intended
+    for the input.
+
+2 See_Also
+        pbmtoascii(1), pgm(5)
+
+2 Author
+        Wilson H. Bent. Jr. (whb@usc.edu)
+
+1 atktopbm
+     atktopbm  -  convert  Andrew  Toolkit  raster  object to portable
+     bitmap
+
+2 Synopsis
+     atktopbm [atkfile]
+
+2 Description
+     Reads an Andrew Toolkit raster object as input.  Produces  a
+     portable bitmap as output.
+
+2 See_Also
+     pbmtoatk, pbm
+
+2 Author
+     Copyright (C) 1991 by Bill Janssen.
+
+1 brushtopbm
+     brushtopbm - convert a doodle brush  file  into  a  portable
+     bitmap
+
+2 Synopsis
+     brushtopbm [brushfile]
+
+2 Description
+     Reads a Xerox doodle brush file as input.  Produces a  port-
+     able bitmap as output.
+
+     Note that there is currently no pbmtobrush tool.
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright (C) 1988 by Jef Poskanzer.
+
+1 cmuwmtopbm
+     cmuwmtopbm - convert a CMU  window  manager  bitmap  into  a
+     portable bitmap
+
+2 Synopsis
+     cmuwmtopbm [cmuwmfile]
+
+2 Description
+     Reads a CMU window manager  bitmap  as  input.   Produces  a
+     portable bitmap as output.
+
+2 See_Also
+     pbmtocmuwm, pbm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 g3topbm
+     g3topbm - convert a Group 3 fax file into a portable bitmap
+
+2 Synopsis
+     g3topbm [-kludge] [-reversebits] [-stretch] [g3file]
+
+2 Description
+     Reads a Group 3 fax file as input.  Produces a portable bit-
+     map as output.
+
+2 Options
+     -kludge
+          Tells g3topbm to ignore the  first  few  lines  of  the
+          file;  sometimes fax files have some junk at the begin-
+          ning.
+
+     -reversebits
+          Tells  g3topbm  to  interpret  bits   least-significant
+          first,  instead  of the default most-significant first.
+          Apparently some fax modems do it one way and others  do
+          it  the  other  way.   If you get a whole bunch of "bad
+          code word" messages, try using this flag.
+
+     -stretch
+          Tells g3topbm to stretch the image vertically by dupli-
+          cating each row.  This is for the low-quality transmis-
+          sion mode.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 References
+     The standard for Group 3 fax is defined in CCITT Recommenda-
+     tion T.4.
+
+2 Bugs
+     Probably.
+
+2 See_Also
+     pbmtog3, pbm
+
+2 Author
+     Copyright (C) 1989 by Paul Haeberli <paul@manray.sgi.com>.
+
+1 icontopbm
+     icontopbm - convert a Sun icon into a portable bitmap
+
+2 Synopsis
+     icontopbm [iconfile]
+
+2 Description
+     Reads a Sun icon as input.  Produces a  portable  bitmap  as
+     output.
+
+2 See_Also
+     pbmtoicon, pbm
+
+2 Author
+     Copyright (C) 1988 by Jef Poskanzer.
+
+1 gemtopbm
+     gemtopbm - convert a GEM .img file into a portable bitmap
+
+2 Synopsis
+     gemtopbm [-d] gemfile
+
+2 Description
+     Reads a GEM .img file as input.  Produces a portable  bitmap
+     as output.
+
+2 Options
+     -d   Produce output describing  the  contents  of  the  .img
+          file.
+
+2 Bugs
+     Does not support file containing more than one plane.  Can't
+     read from standard input.
+
+2 See_Also
+     pbmtogem, pbm
+
+2 Author
+     Copyright (C) 1988 Diomidis D. Spinellis (dds@cc.ic.ac.uk).
+
+1 macptopbm
+     macptopbm - convert a MacPaint file into a portable bitmap
+
+2 Synopsis
+     macptopbm [-extraskip N] [macpfile]
+
+2 Description
+     Reads a MacPaint file as input.  Produces a portable  bitmap
+     as output.
+
+2 Options
+     -extraskip
+          This flag is to get around a problem with some  methods
+          of  transferring  files  from the Mac world to the Unix
+          world.  Most of  these  methods  leave  the  Mac  files
+          alone, but a few of them add the "finderinfo" data onto
+          the front of the Unix file.  This means  an  extra  128
+          bytes  to skip over when reading the file.  The symptom
+          to watch for is  that  the  resulting  PBM  file  looks
+          shifted  to  one side.  If you get this, try -extraskip
+          128, and if that still doesn't look right  try  another
+          value.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     picttoppm, pbmtomacp, pbm
+
+2 Author
+     Copyright (C) 1988 by Jef Poskanzer.   The  MacPaint-reading
+     code   is   copyright   (c)  1987  by  Patrick  J.  Naughton
+     (naughton@wind.sun.com).
+
+1 mgrtopbm
+     mgrtopbm - convert a MGR bitmap into a portable bitmap
+
+2 Synopsis
+     mgrtopbm [mgrfile]
+
+2 Description
+     Reads a MGR bitmap as input.  Produces a portable bitmap  as
+     output.
+
+2 See_Also
+     pbmtomgr, pbm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pbmclean
+     pbmclean - flip isolated pixels in portable bitmap
+
+2 Synopsis
+     pbmclean [-connect] [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input. Outputs a portable  bitmap
+     with  every  pixel  which  has  less  than connect identical
+     neighbours inverted.  Pbmclean  can  be  used  to  clean  up
+     "snow" on bitmap images.
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright (C) 1990 by Angus Duggan Copyright (C) 1989 by Jef
+     Poskanzer.
+
+     Permission  to  use,  copy,  modify,  and  distribute   this
+     software  and  its documentation for any purpose and without
+     fee is hereby granted, provided  that  the  above  copyright
+     notice  appear  in  all  copies and that both that copyright
+     notice and this permission notice appear in supporting docu-
+     mentation.   This  software  is  provided  "as  is"  without
+     express or implied warranty.
+
+1 pbmlife
+     pbmlife - apply Conway's rules of Life to a portable bitmap
+
+2 Synopsis
+     pbmlife [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Applies the rules of Life
+     to  it for one generation, and produces a portable bitmap as
+     output.
+
+     A white pixel in the image is interpreted as a live beastie,
+     and a black pixel as an empty space.
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright (C) 1988, 1991 by Jef Poskanzer.
+
+1 pbmmake
+     pbmmake - create a blank bitmap of a specified size
+
+2 Synopsis
+     pbmmake [-white|-black|-gray ] width height
+
+2 Description
+     Produces a  portable  bitmap  of  the  specified  width  and
+     height.  The color defaults to white.
+
+2 Options
+     In addition to the usual -white  and  -black,  this  program
+     implements -gray.  This gives a simple 50% gray pattern with
+     1's and 0's alternating.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pbm, ppmmake
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pbmmask
+     pbmmask - create a mask bitmap from a regular bitmap
+
+2 Synopsis
+     pbmmask [-expand] [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Creates  a  corresponding
+     mask bitmap and writes it out.
+
+     The color to be interpreted as  "background"  is  determined
+     automatically.  Regardless of which color is background, the
+     mask will be white where the background is and  black  where
+     the figure is.
+
+     This lets you do a masked paste like this, for objects  with
+     a black background:
+         pbmmask obj > objmask
+         pnmpaste < dest -and objmask <x> <y> | pnmpaste -or obj <x> <y>
+     For objects with a white background, you can  either  invert
+     them or add a step:
+         pbmmask obj > objmask
+         pnminvert objmask | pnmpaste -and obj 0 0 > blackback
+         pnmpaste < dest -and objmask <x> <y> | pnmpaste -or blackback <x> <y>
+     Note that this three-step version  works  for  objects  with
+     black  backgrounds  too,  if you don't care about the wasted
+     time.
+
+     You can also use masks with graymaps and pixmaps, using  the
+     pnmarith tool.  For instance:
+         ppmtopgm obj.ppm | pgmtopbm -threshold | pbmmask > objmask.pbm
+         pnmarith -multiply dest.ppm objmask.pbm > t1.ppm
+         pnminvert objmask.pbm | pnmarith -multiply obj.ppm - > t2.ppm
+         pnmarith -add t1.ppm t2.ppm
+     An interesting variation on this is to pipe the mask through
+     the  pnmsmooth script before using it.  This makes the boun-
+     dary between the two images less sharp.
+
+     -expand
+          Expands the mask by one pixel out from the image.  This
+          is useful if you want a little white border around your
+          image.  (A better solution might be to turn the pbmlife
+          tool into a general cellular automaton tool...)
+
+2 See_Also
+     pnmpaste, pnminvert, pbm, pnmarith, pnmsmooth
+
+2 Author
+     Copyright (C) 1988 by Jef Poskanzer.
+
+1 pbmpscale
+     pbmpscale - enlarge a portable bitmap with edge smoothing
+
+2 Synopsis
+     pbmpscale N [ pbmfile ]
+
+2 Description
+     Reads a portable bitmap as input,  and  outputs  a  portable
+     bitmap enlarged N times. Enlargement is done by pixel repli-
+     cation, with some additional smoothing of corners and edges.
+
+2 See_Also
+     pnmenlarge, ppmscale, pbm
+
+2 Author
+     Copyright (C) 1990 by Angus Duggan Copyright (C) 1989 by Jef
+     Poskanzer.
+
+     Permission  to  use,  copy,  modify,  and  distribute   this
+     software  and  its documentation for any purpose and without
+     fee is hereby granted, provided  that  the  above  copyright
+     notice  appear  in  all  copies and that both that copyright
+     notice and this permission notice appear in supporting docu-
+     mentation.   This  software  is  provided  "as  is"  without
+     express or implied warranty.
+
+2 Notes
+     pbmpscale works best for  enlargements  of  2.  Enlargements
+     greater  than  2 should be done by as many enlargements of 2
+     as possible, followed by an  enlargement  by  the  remaining
+     factor.
+
+1 pbmreduce
+     pbmreduce - read a portable bitmap and reduce it N times
+
+2 Synopsis
+     pbmreduce [-floyd|-fs|-threshold ] [-value val] N [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Reduces it by a factor of
+     N, and produces a portable bitmap as output.
+
+     pbmreduce duplicates a lot of the functionality of pgmtopbm;
+     you  could  do  something  like  pnmscale  |  pgmtopbm,  but
+     pbmreduce is a lot faster.
+
+     pbmreduce can be used to "re-halftone" an image.  Let's  say
+     you  have  a  scanner  that  only  produces black&white, not
+     grayscale, and it does a terrible job  of  halftoning  (most
+     b&w  scanners  fit  this  description).   One way to fix the
+     halftoning is to scan at the  highest  possible  resolution,
+     say  300  dpi,  and  then  reduce by a factor of three or so
+     using pbmreduce.  You can even correct the brightness of  an
+     image, by using the -value flag.
+
+2 Options
+     By default, the halftoning after the reduction is  done  via
+     boustrophedonic  Floyd-Steinberg  error  diffusion; however,
+     the -threshold flag can be used to specify simple threshold-
+     ing.  This gives better results when reducing line drawings.
+
+     The -value flag alters the thresholding value for all quant-
+     izations.   It  should  be  a  real  number between 0 and 1.
+     Above 0.5 means darker images; below 0.5 means lighter.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pnmenlarge, pnmscale, pgmtopbm, pbm
+
+2 Author
+     Copyright (C) 1988 by Jef Poskanzer.
+
+1 pbmtext
+     pbmtext - render text into a bitmap
+
+2 Synopsis
+     pbmtext [-font fontfile] [text]
+
+2 Description
+     Takes the specified text, either a single line from the com-
+     mand line or multiple lines from standard input, and renders
+     it into a bitmap.
+
+2 Options
+     By default, pbmtext uses a  built-in  font.   You  can  also
+     specify  your own font with the -font flag.  The fontfile is
+     a pbm file, created in a very specific way.  In your  window
+     system  of choice, display the following text in the desired
+     (fixed-width) font:
+
+         M ",/^_[`jpqy| M
+
+         /  !"#$%&'()*+ /
+         < ,-./01234567 <
+         > 89:;<=>?@ABC >
+         @ DEFGHIJKLMNO @
+         _ PQRSTUVWXYZ[ _
+         { \]^_`abcdefg {
+         } hijklmnopqrs }
+         ~ tuvwxyz{|}~  ~
+
+         M ",/^_[`jpqy| M
+
+     Do a screen grab or window dump  of  that  text,  using  for
+     instance  xwd,  xgrabsc,  or screendump.  Convert the result
+     into a pbm file.  If necessary, use pnmcut to remove  every-
+     thing  except  the text.  Finally, run it through pnmcrop to
+     make sure the edges are right up against the text.   pbmtext
+     can figure out the sizes and spacings from that.
+
+2 See_Also
+     pbm, pnmcut, pnmcrop
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 pbmto4425
+     pbmto4425 - Display PBM images on an AT&T 4425 terminal
+
+2 Synopsis
+     pbmto4425 [pbmfile]
+
+2 Description
+     Pbmto4425 displays PBM format images on an AT&T  4425  ASCII
+     terminal  using  that  terminal's  mosaic graphics character
+     set.  The program should also  work  with  other  VT100-like
+     terminals with mosaic graphics character sets such as the C.
+     Itoh CIT-101, but it has not yet been  tested  on  terminals
+     other than the 4425.
+
+     Pbmto4425 puts the terminal into 132 column mode to  achieve
+     the  maximum  resolution  of the terminal.  In this mode the
+     terminal has a resolution of 264 columns by  69  rows.   The
+     pixels  have  an  aspect  ratio of 1:2.6, therefore an image
+     should be processed before being displayed in a manner  such
+     as this:
+
+          % pnmscale -xscale 2.6 pnmfile \
+               | pnmscale -xysize 264 69 \
+               | ppmtopgm \
+               | pgmtopbm \
+               | pbmto4425
+
+2 Author
+     Copyright (C) 1993 by Robert Perlberg
+
+1 pbmto10x
+     pbmto10x - convert a portable bitmap into Gemini 10X printer
+     graphics
+
+2 Synopsis
+     pbmto10x [-h] [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces a file of Gemini
+     10X printer graphics as output.  The 10x's printer codes are
+     alleged to be similar to the Epson codes.
+
+     Note that there is no 10xtopbm tool - this transformation is
+     one way.
+
+2 Options
+     The resolution is normally 60H by 72V.  If the  -h  flag  is
+     specified, resolution is 120H by 144V.  You may find it use-
+     ful to rotate landscape images before printing.
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright (C) 1990 by Ken Yap
+
+1 pbmtoascii
+     pbmtoascii - convert a portable bitmap into ASCII graphics
+
+2 Synopsis
+     pbmtoascii [-1x2|-2x4] [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces a somewhat crude
+     ASCII graphic as output.
+
+     Note that there is no asciitopbm tool - this  transformation
+     is one-way.
+
+2 Options
+     The -1x2 and -2x4 flags give you two alternate ways for  the
+     bits  to  get  mapped to characters.  With 1x2, the default,
+     each character represents a group of 1 bit across by 2  bits
+     down.  With -2x4, each character represents 2 bits across by
+     4 bits down.  With the 1x2 mode you can see  the  individual
+     bits,  so it's useful for previewing small bitmaps on a non-
+     graphics terminal.  The 2x4 mode  lets  you  display  larger
+     bitmaps  on  a  standard  80-column display, but it obscures
+     bit-level details.  2x4 mode is  also  good  for  displaying
+     graymaps  -  "pnmscale  -width  158  |  pgmnorm  |  pgmtopbm
+     -thresh" should give good results.
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright (C) 1988, 1992 by Jef Poskanzer.
+
+1 pbmtoatk
+     pbmtoatk - convert portable bitmap to Andrew Toolkit  raster
+     object
+
+2 Synopsis
+     pbmtoatk [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces a Andrew Toolkit
+     raster object as output.
+
+2 See_Also
+     atktopbm, pbm
+
+2 Author
+     Copyright (C) 1991 by Bill Janssen.
+
+1 pbmtobg
+     pbmtobg - convert a portable bitmap into BitGraph graphics
+
+2 Synopsis
+     pbmtobg [rasterop] [x y] < pbmfile
+
+2 Description
+     Reads a portable bitmap as  input.   Produces  BBN  BitGraph
+     terminal Display Pixel Data (DPD) sequence as output.
+
+     The rasterop can be specified on the command line.  If  this
+     is  omitted,  3 (replace) will be used.  A position in (x,y)
+     coordinates can also be specified.  If both are  given,  the
+     rasterop  comes  first.  The portable bitmap is always taken
+     from the standard input.
+
+     Note that there is no bgtopbm tool.
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright 1989 by Mike Parker.
+
+1 pbmtocmuwm
+     pbmtocmuwm - convert a portable bitmap  into  a  CMU  window
+     manager bitmap
+
+2 Synopsis
+     pbmtocmuwm [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.   Produces  a  CMU  window
+     manager bitmap as output.
+
+2 See_Also
+     cmuwmtopbm, pbm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pbmtoepsi
+     pbmtoepsi - convert a portable bitmap into  an  encapsulated
+     PostScript style preview bitmap
+
+2 Synopsis
+     pbmtoepsi [-bbonly] [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produce  an  encapsulated
+     Postscript style bitmap as output. The output is not a stand
+     alone postscript file, it is only a  preview  bitmap,  which
+     can  be  included  in an encapsulated PostScript file.  Note
+     that there is no epsitopbm tool - this transformation is one
+     way.
+
+     This utility is a part of the pstoepsi tool by Doug  Crabill
+     (dgc@cs.purdue.edu).
+
+2 Options
+     -bbonly
+          Only create a boundary box,  don't  fill  it  with  the
+          image.
+
+2 See_Also
+     pbm, pnmtops, psidtopgm
+
+2 Author
+     Copyright (C) 1988 Jef Poskanzer, modified by  Doug  Crabill
+     1992
+
+1 pbmtoepson
+     pbmtoepson - convert a portable bitmap  into  Epson  printer
+     graphics
+
+2 Synopsis
+     pbmtoepson [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces a file of  Epson
+     printer graphics as output.
+
+     Note that there is no epsontopbm tool - this  transformation
+     is one way.
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright      (C)      1991      by       John       Tiller
+     (tiller@galois.msfc.nasa.gov) and Jef Poskanzer.
+
+1 pbmtog3
+     pbmtog3 - convert a portable bitmap into a Group 3 fax file
+
+2 Synopsis
+     pbmtog3 [pbmfile]
+
+2 Description
+     Reads a portable bitmap as output.  Produces a Group  3  fax
+     file as input.
+
+REFERENCES
+     The standard for Group 3 fax is defined in CCITT Recommenda-
+     tion T.4.
+
+2 Bugs
+     Probably.
+
+2 See_Also
+     g3topbm, pbm
+
+2 Author
+     Copyright (C) 1989 by Paul Haeberli <paul@manray.sgi.com>.
+
+1 pbmtogem
+     pbmtogem - convert a portable bitmap into a GEM .img file
+
+2 Synopsis
+     pbmtogem [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces a GEM .img  file
+     as output.
+
+2 Bugs
+     It does not support compression of the data.
+
+2 See_Also
+     gemtopbm, pbm
+
+2 Author
+     Copyright (C) 1988 by David Beckemeyer (bdt!david)  and  Jef
+     Poskanzer.
+
+1 pbmtogo
+     pbmtogo - convert a portable bitmap into compressed  GraphOn
+     graphics
+
+2 Synopsis
+     pbmtogo [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.   Produces  2D  compressed
+     GraphOn  graphics as output.  Be sure to set up your GraphOn
+     with the following modes: 8  bits  /  no  parity;  obeys  no
+     XON/XOFF;  NULs  are  accepted.   These  are all on the Comm
+     menu.  Also, remember to turn off tty post processing.  Note
+     that there is no gotopbm tool.
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright (C) 1988, 1989 by Jef Poskanzer, Michael Haberler,
+     and Bo Thide'.
+
+1 pbmtoicon
+     pbmtoicon - convert a portable bitmap into a Sun icon
+
+2 Synopsis
+     pbmtoicon [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces a  Sun  icon  as
+     output.
+
+2 See_Also
+     icontopbm, pbm
+
+2 Author
+     Copyright (C) 1988 by Jef Poskanzer.
+
+1 pbmtolj
+     pbmtolj - convert a portable bitmap into HP LaserJet format
+
+2 Synopsis
+     pbmtolj [-resolution N] [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces HP LaserJet data
+     as output.
+
+     Note that there is no ljtopbm tool.
+
+2 Options
+     -resolution
+          Specifies the resolution of the output device, in  dpi.
+          Typical  values  are 75, 100, 150, 300.  The default is
+          75.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright (C) 1988 by Jef Poskanzer and Michael Haberler.
+
+1 pbmtoln03
+     pbmtoln03 - convert protable bitmap to DEC LN03+ Sixel  out-
+     put
+ 
+2 Synopsis
+     pbmtoln03 [-rltbf] pbmfile
+ 
+2 Description
+     Reads a portable bitmap as  input.   Produces  a  DEC  LN03+
+     Sixel output file.
+ 
+2 Options
+     -l nn
+          Use "nn" as value for left margin (default 0).
+ 
+     -r nn
+          Use "nn" as value for right margin (default 2400).
+ 
+     -t nn
+          Use "nn" as value for top margin (default 0).
+ 
+     -b nn
+          Use "nn" as value for bottom margin (default 3400).
+ 
+     -f nn
+          Use "nn" as value for form length (default 3400).
+ 
+2 See_Also
+     pbm
+ 
+2 Author
+     Tim Cook, 26 Feb 1992
+ 
+1 pbmtolps
+     pbmtolps - convert portable bitmap to PostScript
+
+2 Synopsis
+     pbmtolps [ -dpi n ] [ pbmfile ]
+
+2 Description
+     Reads a portable bitmap as input,  and  outputs  PostScript.
+     The output Postscript uses lines instead of the image opera-
+     tor to generate a (device dependent) picture which  will  be
+     imaged much faster.
+
+     The Postscript path length is constrained to  be  less  that
+     1000  points  so  that  no  limits  are overrun on the Apple
+     Laserwriter and (presumably) no other printers.
+
+2 See_Also
+     pgmtops, ppmtops, pbm
+
+2 Author
+     George Phillips <phillips@cs.ubc.ca>
+
+1 pbmtomacp
+     pbmtomacp - convert a portable bitmap into a MacPaint file
+
+2 Synopsis
+     pbmtomacp  [-l  left]  [-r  right]  [-b  bottom]  [-t   top]
+     [pbmfile]
+
+2 Description
+     Reads a portable bitmap  as  input.   If  no  input-file  is
+     given,  standard input is assumed.  Produces a MacPaint file
+     as output.
+
+     The generated file is only the data fork of a picture.   You
+     will  need  a program such as mcvert to generate a Macbinary
+     or a BinHex file that contains the necessary information  to
+     identify the file as a PNTG file to MacOS.
+
+2 Options
+     Left, right, bottom & top let you define a square  into  the
+     pbm  file,  that  must  be  converted.  Default is the whole
+     file.  If the file is too large  for  a  MacPaint-file,  the
+     bitmap is cut to fit from ( left, top ).
+
+2 Bugs
+     The source code contains comments in a language  other  than
+     English.
+
+2 See_Also
+     ppmtopict, macptopbm, pbm, mcvert
+
+2 Author
+     Copyright   (C)   1988   by    Douwe    van    der    Schaaf
+     (...!mcvax!uvapsy!vdschaaf).
+
+1 pbmtomgr
+     pbmtomgr - convert a portable bitmap into a MGR bitmap
+
+2 Synopsis
+     pbmtomgr [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces a MGR bitmap  as
+     output.
+
+2 See_Also
+     mgrtopbm, pbm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pbmtopi3
+     pbmtopi3 - convert a portable bitmap  into  an  Atari  Degas
+     .pi3 file
+
+2 Synopsis
+     pbmtopi3 [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces an  Atari  Degas
+     .pi3 file as output.
+
+2 See_Also
+     pi3topbm, pbm, ppmtopi1, pi1toppm
+
+2 Author
+     Copyright (C) 1988 by David Beckemeyer (bdt!david)  and  Jef
+     Poskanzer.
+
+1 pbmtoplot
+     pbmtoplot - convert a portable bitmap into  a  Unix  plot
+     file
+
+2 Synopsis
+     pbmtoplot [pbmfile]
+
+2 Description
+     Reads a portable bitmap as  input.   Produces  a  Unix  plot
+     file.
+
+     Note that there is no plottopbm tool -  this  transformation
+     is one-way.
+
+2 See_Also
+     pbm, plot
+
+2 Author
+     Copyright (C) 1990 by Arthur David Olson.
+
+1 pbmtoptx
+     pbmtoptx - convert a portable bitmap into Printronix printer
+     graphics
+
+2 Synopsis
+     pbmtoptx [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces a file of  Prin-
+     tronix printer graphics as output.
+
+     Note that there is no ptxtopbm tool - this transformation is
+     one way.
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright (C) 1988 by Jef Poskanzer.
+
+1 pbmtox10bm
+     pbmtox10bm - convert a portable bitmap into an X10 bitmap
+
+2 Synopsis
+     pbmtox10bm [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces an X10 bitmap as
+     output.  This older format is maintained for compatibility.
+
+     Note that there is no x10bmtopbm tool, because xbmtopbm  can
+     read both X11 and X10 bitmaps.
+
+2 See_Also
+     pbmtoxbm, xbmtopbm, pbm
+
+2 Author
+     Copyright (C) 1988 by Jef Poskanzer.
+
+1 pbmtoxbm
+     pbmtoxbm - convert a portable bitmap into an X11 bitmap
+
+2 Synopsis
+     pbmtoxbm [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces an X11 bitmap as
+     output.
+
+2 See_Also
+     pbmtox10bm, xbmtopbm, pbm
+
+2 Author
+     Copyright (C) 1988 by Jef Poskanzer.
+
+1 pbmtoybm
+     pgmtoybm - convert a  portable  bitmap  into  a  Bennet  Yee
+     "face" file
+
+2 Synopsis
+     pbmtoybm [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces as output a file
+     acceptable  to  the  face  and  xbm  programs  by Bennet Yee
+     (bsy+@cs.cmu.edu).
+
+2 See_Also
+     ybmtopbm, pbm, face, face, xbm
+
+2 Author
+     Copyright (C) 1991 by Jamie Zawinski and Jef Poskanzer.
+
+1 pbmtozinc
+     pbmtozinc - convert a portable bitmap into a Zinc bitmap
+
+2 Synopsis
+     pbmtozinc [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input.  Produces a bitmap in  the
+     format  used by the Zinc Interface Library (ZIL) Version 1.0
+     as output.
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright   (C)   1988    by    James    Darrell    McCauley
+     (jdm5548@diamond.tamu.edu) and Jef Poskanzer.
+
+1 pbmupc
+     pbmupc - create a Universal Product Code bitmap
+
+2 Synopsis
+     pbmupc [-s1|-s2] type manufac product
+
+2 Description
+     Generates a Universal Product Code symbol.  The three  argu-
+     ments  are:  a one digit product type, a five digit manufac-
+     turer code, and a five digit product code.  For example,  "0
+     72890 00011" is the code for Heineken.
+
+     As presently configured, pbmupc produces a bitmap  230  bits
+     wide and 175 bits high.  The size can be altered by changing
+     the defines at the beginning of the program, or  by  running
+     the output through pnmenlarge or pnmscale.
+
+2 Options
+     The -s1 and -s2 flags select the style of UPC  to  generate.
+     The default, -s1, looks more or less like this:
+      ||||||||||||||||
+      ||||||||||||||||
+      ||||||||||||||||
+      ||||||||||||||||
+     0||12345||67890||5
+     The other style, -s2, puts the product type digit higher up,
+     and doesn't display the checksum digit:
+      ||||||||||||||||
+      ||||||||||||||||
+     0||||||||||||||||
+      ||||||||||||||||
+      ||12345||67890||
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pi3topbm
+     pi3topbm - convert an Atari Degas .pi3 file into a  portable
+     bitmap
+
+2 Synopsis
+     pi3topbm [pi3file]
+
+2 Description
+     Reads an Atari Degas .pi3 file as input.  Produces  a  port-
+     able bitmap as output.
+
+2 See_Also
+     pbmtopi3, pbm, pi1toppm, ppmtopi1
+
+2 Author
+     Copyright (C)  1988  by  David  Beckemeyer  (bdt!david)  and
+     Diomidis D. Spinellis.
+
+1 pktopbm
+     pktopbm - convert packed  (PK)  format  font  into  portable
+     bitmap(s)
+
+2 Synopsis
+     pktopbm pkfile[.pk] [-c num] pbmfile ...
+
+2 Description
+     Reads a packed (PK) font file as input, and  produces  port-
+     able  bitmaps as output. If the filename "-" is used for any
+     of the filenames, the standard  input  stream  (or  standard
+     output where appropriate) will be used.
+
+2 Options
+     -c num
+          Sets the character number of the next bitmap written to
+          num.
+
+2 See_Also
+     pbmtopk, pbm
+
+2 Author
+     Adapted  from  Tom  Rokicki's   pxtopk   by   Angus   Duggan
+     <ajcd@uk.ac.ed.lfcs>.
+
+1 xbmtopbm
+     xbmtopbm - convert an X11 or X10 bitmap into a portable bit-
+     map
+
+2 Synopsis
+     xbmtopbm [bitmapfile]
+
+2 Description
+     Reads an X11 or X10 bitmap as input.   Produces  a  portable
+     bitmap as output.
+
+2 See_Also
+     pbmtoxbm, pbmtox10bm, pbm
+
+2 Author
+     Copyright (C) 1988 by Jef Poskanzer.
+
+1 ybmtopbm
+     ybmtopbm - convert a Bennet Yee "face" file into a  portable
+     bitmap
+
+2 Synopsis
+     ybmtopbm [facefile]
+
+2 Description
+     Reads a file acceptable to the face and xbm programs by Ben-
+     net Yee (bsy+@cs.cmu.edu).  Writes a portable bitmap as out-
+     put.
+
+2 See_Also
+     pbmtoybm, pbm, face, face, xbm
+
+2 Author
+     Copyright (C) 1991 by Jamie Zawinski and Jef Poskanzer.
+
+1 pbmtopk
+     pbmtopk - convert a portable bitmap into a packed (PK)  for-
+     mat font
+
+2 Synopsis
+     pbmtopk pkfile[.pk] tfmfile[.tfm] resolution [-s designsize]
+     [-p num param...] [-C codingscheme] [-F family] [-f optfile]
+     [-c num] [-W width] [-H height] [-D  depth]  [-I  ital]  [-h
+     horiz] [-v vert] [-x xoff] [-y yoff] [pbmfile]...
+
+2 Description
+     Reads portable bitmaps as input, and produces a packed  (PK)
+     font  file  and  a TFM (TeX font metric) file as output. The
+     resolution parameter indicates the resolution of  the  font,
+     in dots per inch. If the filename "-" is used for any of the
+     filenames, the standard input  stream  (or  standard  output
+     where appropriate) will be used.
+
+2 Options
+     -s designsize
+          Sets the design size  of  the  font,  in  TeX's  points
+          (72.27pt  to  the  inch). The default design size is 1.
+          The TFM parameters are given as multiples of the design
+          size.
+
+     -p num param...
+          Sets the first num font parameters for  the  font.  The
+          first  seven  parameters are the slant, interword spac-
+          ing, interword space  stretchability,  interword  space
+          shrinkability,  x-height, quad width, and post-sentence
+          extra space of the font. Math and symbol fonts may have
+          more  parameters;  see The TeXbook for a list of these.
+          Reasonable default values  are  chosen  for  parameters
+          which are not specified.
+
+     -C codingscheme
+          Sets the coding scheme comment in the TFM file.
+
+     -F family
+          Sets the font family comment in the TFM file.
+
+     -f optfile
+          Reads the file optfile, which should contain a lines of
+          the form:
+
+             filename xoff yoff horiz vert width height depth ital
+
+          The pbm files specified by the filename parameters  are
+          inserted  consecutively  in the font with the specified
+          attributes. If any of the attributes  are  omitted,  or
+          replaced  with  "*", a default value will be calculated
+          from the size of the bitmap. The settings  of  the  -W,
+          -H,  -D, -I, -h, -v, -x, and -y options do not affected
+          characters created in this way.  The  character  number
+          can  be  changed by including a line starting with "=",
+          followed by the new number.  Lines beginning  with  "%"
+          or "#" are ignored.
+
+     -c num
+          Sets the character number of the  next  bitmap  encoun-
+          tered to num.
+
+     -W width
+          Sets the TFM width of the next character to  width  (in
+          design size multiples).
+
+     -H height
+          Sets the TFM height of the next character to height (in
+          design size multiples).
+
+     -D depth
+          Sets the TFM depth of the next character to  depth  (in
+          design size multiples).
+
+     -I ital
+          Sets the italic correction of  the  next  character  to
+          ital (in design size multiples).
+
+     -h horiz
+          Sets the horizontal escapement of the next character to
+          horiz (in pixels).
+
+     -v vert
+          Sets the vertical escapement of the next  character  to
+          vert (in pixels).
+
+     -x xoff
+          Sets the horizontal offset of  the  next  character  to
+          xoff (in pixels).
+
+     -y yoff
+          Sets the vertical offset of the next character to  yoff
+          (in pixels, from the top row).
+
+2 See_Also
+     pktopbm, pbm
+
+2 Author
+     Adapted  from  Tom  Rokicki's   pxtopk   by   Angus   Duggan
+     <ajcd@uk.ac.ed.lfcs>.
+
+1 libpbm              C LIBRARY FUNCTIONS              libpbm
+     libpbm - functions to support portable bitmap programs
+
+2 Synopsis
+     #include <pbm.h>
+     cc ... libpbm.a
+
+
+2 Description - PACKAGE-WIDE ROUTINES
+  KEYWORD MATCHING
+     int pm_keymatch( char* str, char* keyword, int minchars )
+
+     Does a case-insensitive match of str against  keyword.   str
+     can be a leading sunstring of keyword, but at least minchars
+     must be present.
+
+  LOG BASE TWO
+     int pm_maxvaltobits( int maxval )
+     int pm_bitstomaxval( int bits )
+
+     Convert between a maxval and  the  minimum  number  of  bits
+     required to hold it.
+
+  MESSAGES AND ERRORS
+     void pm_message( char* fmt, ... )
+
+     printf() style routine to write an informational message.
+
+     void pm_error( char* fmt, ... )
+
+     printf() style routine to write an error message and abort.
+
+     void pm_usage( char* usage )
+
+     Write a usage message.   The  string  should  indicate  what
+     arguments are to be provided to the program.
+
+  GENERIC FILE MANAGEMENT
+     FILE* pm_openr( char* name )
+
+     Open the given file  for  reading,  with  appropriate  error
+     checking.   A  filename  of  "-"  is  taken as equivalent to
+     stdin.
+
+     FILE* pm_openw( char* name )
+
+     Open the given file  for  writing,  with  appropriate  error
+     checking.
+
+     void pm_close( FILE* fp )
+
+     Close the file descriptor, with appropriate error checking.
+
+  ENDIAN I/O
+     int pm_readbigshort( FILE* in, short* sP )
+     int pm_writebigshort( FILE* out, short s )
+     int pm_readbiglong( FILE* in, long* lP )
+     int pm_writebiglong( FILE* out, long l )
+     int pm_readlittleshort( FILE* in, short* sP )
+     int pm_writelittleshort( FILE* out, short s )
+     int pm_readlittlelong( FILE* in, long* lP )
+     int pm_writelittlelong( FILE* out, long l )
+
+     Routines to read and write short and  long  ints  in  either
+     big- or little-endian byte order.
+
+2 Description - PBM-SPECIFIC ROUTINES
+  TYPES AND CONSTANTS
+     typedef ... bit;
+     #define PBM_WHITE ...
+     #define PBM_BLACK ...
+
+     each bit should contain only  the  values  of  PBM_WHITE  or
+     PBM_BLACK.
+
+     #define PBM_FORMAT ...
+     #define RPBM_FORMAT ...
+     #define PBM_TYPE PBM_FORMAT
+     #define PBM_FORMAT_TYPE(f) ...
+
+     For distinguishing different file formats and types.
+
+  INITIALIZATION
+     void pbm_init( int* argcP, char* argv[] )
+
+     All PBM programs must call this routine.
+
+  MEMORY MANAGEMENT
+     bit** pbm_allocarray( int cols, int rows )
+
+     Allocate an array of bits.
+
+     bit* pbm_allocrow( int cols )
+
+     Allocate a row of the given number of bits.
+
+     void pbm_freearray( bit** bits, int rows )
+
+     Free the array allocated  with  pbm_allocarray()  containing
+     the given number of rows.
+
+     void pbm_freerow( bit* bitrow )
+
+     Free a row of bits.
+
+  READING FILES
+     void pbm_readpbminit( FILE* fp, int* colsP, int* rowsP, int* formatP )
+
+     Read the header from a PBM file, filling in the  rows,  cols
+     and format variables.
+
+     void pbm_readpbmrow( FILE* fp, bit* bitrow, int cols, int format )
+
+     Read a row of bits into the bitrow array.  Format  and  cols
+     were filled in by pbm_readpbminit().
+
+     bit** pbm_readpbm( FILE* fp, int* colsP, int* rowsP )
+
+     Read an entire bitmap file into memory, returning the  allo-
+     cated  array  and  filling  in  the rows and cols variables.
+     This function combines  pbm_readpbminit(),  pbm_allocarray()
+     and pbm_readpbmrow().
+
+     char* pm_read_unknown_size( FILE* fp, long* nread )
+
+     Read an entire file or input stream of  unknown  size  to  a
+     buffer.   Allocate memory more memory as needed. The calling
+     routine has  to  free  the  allocated  buffer  with  free().
+     pm_read_unknown_size()  returns  a  pointer to the allocated
+     buffer. The nread argument returns the number of bytes read.
+
+  WRITING FILES
+     void pbm_writepbminit( FILE* fp, int cols, int rows, int forceplain )
+
+     Write the header for a portable bitmap file.  The forceplain
+     flag forces a plain-format file to be written, as opposed to
+     a raw-format one.
+
+     void pbm_writepbmrow( FILE* fp, bit* bitrow, int cols, int forceplain )
+
+     Write a row from a portable bitmap.
+
+     void pbm_writepbm( FILE* fp, bit** bits, int cols, int rows, int forceplain )
+
+     Write the header and all data for a portable  bitmap.   This
+     function combines pbm_writepbminit() and pbm_writepbmrow().
+
+2 See_Also
+     libpgm, libppm, libpnm
+
+2 Author
+     Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer.
+
+1 pbm
+     pbm - portable bitmap file format
+
+2 Description
+     The portable bitmap format is a  lowest  common  denominator
+     monochrome  file format.  It was originally designed to make
+     it reasonable to mail bitmaps  between  different  types  of
+     machines  using  the  typical stupid network mailers we have
+     today.  Now it serves as the common language of a large fam-
+     ily of bitmap conversion filters.  The definition is as fol-
+     lows:
+
+     - A "magic number" for identifying the  file  type.   A  pbm
+       file's magic number is the two characters "P1".
+
+     - Whitespace (blanks, TABs, CRs, LFs).
+
+     - A width, formatted as ASCII characters in decimal.
+
+     - Whitespace.
+
+     - A height, again in ASCII decimal.
+
+     - Whitespace.
+
+     - Width * height bits, each either '1' or '0',  starting  at
+       the  top-left  corner  of the bitmap, proceeding in normal
+       English reading order.
+
+     - The character '1' means black, '0' means white.
+
+     - Whitespace in the bits section is ignored.
+
+     - Characters from a "#" to the next end-of-line are  ignored
+       (comments).
+
+     - No line should be longer than 70 characters.
+
+     Here is an example of a small bitmap in this format:
+     P1
+     # feep.pbm
+     24 7
+     0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+     0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0
+     0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
+     0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
+     0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
+     0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0
+     0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+
+     Programs that read this format should be as lenient as  pos-
+     sible, accepting anything that looks remotely like a bitmap.
+     There is also a variant on the format, available by  setting
+     the  RAWBITS  option  at compile time.  This variant is dif-
+     ferent in the following ways:
+
+     - The "magic number" is "P4" instead of "P1".
+
+     - The bits are stored eight per byte, high bit first low bit
+       last.
+
+     - No whitespace is allowed in the bits section, and  only  a
+       single  character  of  whitespace (typically a newline) is
+       allowed after the height.
+
+     - The files are eight times smaller and many times faster to
+       read and write.
+
+2 See_Also
+    atktopbm, brushtopbm,  cmuwmtopbm,  g3topbm,  gemtopbm, icontopbm,
+    macptopbm,  mgrtopbm,  pi3topbm,   xbmtopbm,  ybmtopbm,  pbmto10x,
+    pnmtoascii, pbmtoatk, pbmtobbnbg, pbmtocmuwm, pbmtoepson, pbmtog3,
+    pbmtogem,  pbmtogo,  pbmtoicon,  pbmtolj,  pbmtomacp,    pbmtomgr,
+    pbmtopi3,  pbmtoplot,  pbmtoptx,  pbmtox10bm,  pbmtoxbm, pbmtoybm,
+    pbmtozinc,  pbmlife, pbmmake, pbmmask, pbmreduce, pbmtext, pbmupc,
+    pnm, pgm, ppm
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 bioradtopgm
+     bioradtopgm - convert a Biorad confocal file into a portable
+     graymap
+
+2 Synopsis
+     bioradtopgm [-image#] [imagedata]
+
+2 Description
+     Reads a Biorad confocal file as input.  Produces a  portable
+     graymap  as  output.  If the resulting image is upside down,
+     run it through pnmflip -tb .
+
+2 Options
+     -image#
+          A Biorad image file may contain more  than  one  image.
+          With  this flag, you can specify which image to extract
+          (only one at a time). The first image in the  file  has
+          number  zero.  If  no  image  number  is supplied, only
+          information about the image  size  and  the  number  of
+          images  in  the input is printed out. No output is pro-
+          duced.
+
+2 Bugs
+     A Biorad image may be in word format. If PbmPlus is not com-
+     piled  with  the "BIGGRAYS" flag, word files can not be con-
+     verted. See the Makefile.
+
+2 See_Also
+     pgm, pnmflip
+
+2 Authors
+     Copyright (C) 1993 by Oliver Trepte
+
+1 fitstopgm
+     fitstopgm - convert a FITS file into a portable graymap
+
+2 Synopsis
+     fitstopgm [-image N] [FITSfile]
+
+2 Description
+     Reads a FITS file as input.  Produces a portable graymap  as
+     output.   The results may need to be flipped top for bottom;
+     if so, just pipe the output through pnmflip -tb.
+
+2 Options
+     The -image option is for FITS files with  three  axes.   The
+     assumption  is  that  the third axis is for multiple images,
+     and this option lets you select which one you want.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 References
+     FITS stands for Flexible Image  Transport  System.   A  full
+     description can be found in Astronomy & Astrophysics Supple-
+     ment Series 44 (1981), page 363.
+
+2 See_Also
+     pgmtofits, pgm, pnmflip
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 fstopgm
+     fstopgm - convert a Usenix FaceSaver(tm) file into  a  port-
+     able graymap
+
+2 Synopsis
+     fstopgm [fsfile]
+
+2 Description
+     Reads a Usenix FaceSaver(tm)  file  as  input.   Produces  a
+     portable graymap as output.
+
+     FaceSaver(tm)  files  sometimes  have  rectangular   pixels.
+     While  fstopgm  won't  re-scale  them into square pixels for
+     you, it will give you the precise pnmscale command that will
+     do  the job.  Because of this, reading a FaceSaver(tm) image
+     is a two-step process.  First you do:
+       fstopgm > /dev/null
+     This will tell you whether you need to  use  pnmscale.  Then
+     use one of the following pipelines:
+       fstopgm | pgmnorm
+       fstopgm | pnmscale -whatever | pgmnorm
+     To go to PBM, you want something more like one of these:
+       fstopgm | pnmenlarge 3 | pgmnorm | pgmtopbm
+       fstopgm | pnmenlarge 3 | pnmscale <whatever> | pgmnorm | pgmtopbm
+     You want to enlarge when going to a bitmap because otherwise
+     you  lose information; but enlarging by more than 3 does not
+     look good.
+
+     FaceSaver is a registered trademark of  Metron  Computerware
+     Ltd. of Oakland, CA.
+
+2 See_Also
+     pgmtofs, pgm, pgmnorm, pnmenlarge,  pnmscale,
+     pgmtopbm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 hipstopgm
+     hipstopgm - convert a HIPS file into a portable graymap
+
+2 Synopsis
+     hipstopgm [hipsfile]
+
+2 Description
+     Reads a HIPS file as input.  Produces a portable graymap  as
+     output.
+
+     If the HIPS file contains more than one frame  in  sequence,
+     hipstopgm will concatenate all the frames vertically.
+
+     HIPS is a format developed at the Human Information Process-
+     ing Laboratory, NYU.
+
+2 See_Also
+     pgm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 lispmtopgm
+     lispmtopgm - convert a Lisp Machine  bitmap  file  into  pgm
+     format
+
+2 Synopsis
+     lispmtopgm [lispmfile]
+
+2 Description
+     Reads a Lisp Machine bitmap as input.  Produces  a  portable
+     graymap as output.
+
+     This is the file format written by  the  tv:write-bit-array-
+     file function on TI Explorer and Symbolics lisp machines.
+
+     Multi-plane bitmaps on lisp  machines  are  color;  but  the
+     lispm  image file format does not include a color map, so we
+     must treat it as a graymap instead.  This is unfortunate.
+
+2 See_Also
+     pgmtolispm, pgm
+
+2 Bugs
+     The Lispm bitmap file format is a bit quirky;   Usually  the
+     image  in  the  file  has  its  width rounded up to the next
+     higher multiple of 32, but not always.  If the width is  not
+     a  multiple  of  32,  we  don't  deal  with it properly, but
+     because of the Lispm microcode, such arrays are probably not
+     image data anyway.
+
+     Also, the lispm code for saving bitmaps has a bug,  in  that
+     if  you  are writing a bitmap which is not mod32 across, the
+     file may be up to 7 bits too short!  They round down instead
+     of up, and we don't handle this bug gracefully.
+
+     No color.
+
+2 Author
+     Copyright (C) 1991 by Jamie Zawinski and Jef Poskanzer.
+
+1 pbmtopgm
+     pbmtopgm - convert portable bitmap to  portable  graymap  by
+     averaging areas
+
+2 Synopsis
+     pbmtopgm <width> <height> [pbmfile]
+
+2 Description
+     Reads a portable bitmap as input. Outputs a portable graymap
+     created  by  averaging  the number of pixels within a sample
+     area of width by height around each point. Pbmtopgm is simi-
+     lar  to a special case of ppmconvol. A ppmsmooth step may be
+     needed after pbmtopgm.
+
+     Pbmtopgm has the effect of anti-aliasing bitmaps which  con-
+     tain distinct line features.
+
+2 See_Also
+     pbm
+
+2 Author
+     Copyright (C) 1990 by Angus Duggan Copyright (C) 1989 by Jef
+     Poskanzer.
+
+     Permission  to  use,  copy,  modify,  and  distribute   this
+     software  and  its documentation for any purpose and without
+     fee is hereby granted, provided  that  the  above  copyright
+     notice  appear  in  all  copies and that both that copyright
+     notice and this permission notice appear in supporting docu-
+     mentation.   This  software  is  provided  "as  is"  without
+     express or implied warranty.
+
+2 Notes
+     Pbmtopgm works best with odd sample width and heights.
+
+1 pgmbentley
+     pgmbentley - Bentleyize a portable graymap
+
+2 Synopsis
+     pgmbentley [pgmfile]
+
+2 Description
+     Reads a portable graymap as  input.   Performs  The  Bentley
+     Effect, and writes a portable graymap as output.
+
+     The Bentley Effect is described in "Beyond  Photography"  by
+     Holzmann,  chapter  4,  photo  4.   It's a vertical smearing
+     based on brightness.
+
+2 See_Also
+     pgmoil, ppmrelief, pgm
+
+2 Author
+     Copyright (C) 1990 by Wilson Bent (whb@hoh-2.att.com)
+
+1 pgmenhance
+     pgmenhance - edge-enhance a portable graymap
+
+2 Synopsis
+     pgmenhance [-N] [pgmfile]
+
+2 Description
+     Reads a portable graymap as input.  Enhances the edges,  and
+     writes a portable graymap as output.
+
+     The  edge  enhancing  technique  is  taken  from  Philip  R.
+     Thompson's "xim" program, which in turn took it from section
+     6 of "Digital Halftones by Dot Diffusion", D. E. Knuth,  ACM
+     Transaction  on  Graphics Vol. 6, No. 4, October 1987, which
+     in turn got it from two 1976 papers by J. F. Jarvis et. al.
+
+2 Options
+     The optional -N flag should be a digit from 1 to  9.   1  is
+     the  lowest  level  of  enhancement,  9  is the highest, The
+     default is 9.
+
+2 See_Also
+     pgmedge, pgm, pbm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pgmhist
+     pgmhist - print a histogram of  the  values  in  a  portable
+     graymap
+
+2 Synopsis
+     pgmhist [pgmfile]
+
+2 Description
+     Reads a portable graymap as input.  Prints  a  histogram  of
+     the gray values.
+
+2 See_Also
+     pgmnorm, pgm, ppmhist
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pgmnoise
+     pgmnoise - create a graymap made up of white noise
+
+2 Synopsis
+     pgmnoise width height
+
+2 Description
+     Creates a portable graymap that is made up of random  pixels
+     with gray values in the range of 0 to PGM_MAXMAXVAL (depends
+     on the compilation, either 255 or 65535). The graymap has  a
+     size of width * height pixels.
+
+2 See_Also
+     pgm(5)
+
+2 Author
+     Copyright (C) 1993 by Frank Neumann
+
+1 pgmnorm
+     pgmnorm - normalize the contrast in a portable graymap
+
+2 Synopsis
+     pgmnorm [-bpercent N | -bvalue N] [-wpercent N | -wvalue  N]
+     [pgmfile]
+
+2 Description
+     Reads a portable graymap as input.  Normalizes the  contrast
+     by  forcing the lightest pixels to white, the darkest pixels
+     to black, and linearly rescaling the ones  in  between;  and
+     produces a portable graymap as output.
+
+2 Options
+     By default, the darkest 2 percent of all pixels  are  mapped
+     to  black,  and  the lightest 1 percent are mapped to white.
+     You can override these percentages by  using  the  -bpercent
+     and  -wpercent  flags,  or  you  can specify the exact pixel
+     values to be mapped by using the -bvalue and -wvalue  flags.
+     Appropriate  numbers  for  the  flags can be gotten from the
+     pgmhist tool.  If you just want  to  enhance  the  contrast,
+     then choose values at elbows in the histogram; e.g. if value
+     29 represents 3% of the image but value 30  represents  20%,
+     choose  30  for  bvalue.   If you want to lighten the image,
+     then set bvalue to 0 and just fiddle with wvalue; similarly,
+     to  darken  the  image,  set  wvalue to maxval and play with
+     bvalue.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pgmhist, pgm
+
+2 Author
+     Partially based on the fbnorm filter  in  Michael  Mauldin's
+     "Fuzzy Pixmap" package.
+
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pgmoil
+     pgmoil - turn a portable graymap into an oil painting
+
+2 Synopsis
+     pgmoil [-n N] [pgmfile]
+
+2 Description
+     Reads a portable graymap as input.  Does an "oil  transfer",
+     and writes a portable graymap as output.
+
+     The oil transfer is described  in  "Beyond  Photography"  by
+     Holzmann,  chapter  4,  photo  7.   It's a sort of localized
+     smearing.
+
+2 Options
+     The optional -n flag controls the size of the area  smeared.
+     The default value is 3.
+
+2 Bugs
+     Takes a long time to run.
+
+2 See_Also
+     pgmbentley, ppmrelief, pgm
+
+2 Author
+     Copyright (C) 1990 by Wilson Bent (whb@hoh-2.att.com)
+
+1 pgmramp
+     pgmramp - generate a grayscale ramp
+
+2 Synopsis
+     pgmramp -lr|-tb | -rectangle|-ellipse width height
+
+2 Description
+     Generates a graymap  of  the  specified  size  containing  a
+     black-to-white ramp.  These ramps are useful for multiplying
+     with other images, using the pnmarith tool.
+
+2 Options
+     -lr  A left to right ramp.
+
+     -tb  A top to bottom ramp.
+
+     -rectangle
+          A rectangular ramp.
+
+     -ellipse
+          An elliptical ramp.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pnmarith, pgm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pgmtofits
+     pgmtofits - convert a portable graymap into FITS format
+
+2 Synopsis
+     pgmtofits [pgmfile]
+
+2 Description
+     Reads a portable graymap as input.  Produces a FITS file  as
+     output.
+
+     FITS stands for Flexible Image  Transport  System.   A  full
+     description can be found in Astronomy & Astrophysics Supple-
+     ment Series 44 (1981), page 363.
+
+2 See_Also
+     fitstopgm, pgm
+
+2 Author
+     Copyright (C) 1989 by Wilson H. Bent (whb@hoh-2.att.com).
+
+1 pgmtofs
+     pgmtofs - convert portable graymap to  Usenix  FaceSaver(tm)
+     format
+
+2 Synopsis
+     pgmtofs [pgmfile]
+
+2 Description
+     Reads  a  portable  graymap  as  input.    Produces   Usenix
+     FaceSaver(tm) format as output.
+
+     FaceSaver is a registered trademark of  Metron  Computerware
+     Ltd. of Oakland, CA.
+
+2 See_Also
+     fstopgm, pgm
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 pgmtolispm
+     pgmtolispm - convert a portable graymap  into  Lisp  Machine
+     format
+
+2 Synopsis
+     pgmtolispm [pgmfile]
+
+2 Description
+     Reads a portable graymap as input.  Produces a Lisp  Machine
+     bitmap as output.
+
+     This is the file format read by  the  tv:read-bit-array-file
+     function on TI Explorer and Symbolics lisp machines.
+
+     Given a pgm (instead of a pbm) a multi-plane image  will  be
+     output.  This is probably not useful unless you have a color
+     lisp machine.
+
+     Multi-plane bitmaps on lisp  machines  are  color;  but  the
+     lispm  image file format does not include a color map, so we
+     must treat it as a graymap instead.  This is unfortunate.
+
+2 See_Also
+     lispmtopgm, pgm
+
+2 Bugs
+     Output width is always rounded up to the nearest multiple of
+     32;  this might not always be what you want, but it probably
+     is (arrays which are not modulo 32 cannot be passed  to  the
+     Lispm  BITBLT  function, and thus cannot easily be displayed
+     on the screen).
+
+     No color.
+
+2 Author
+     Copyright (C) 1991 by Jamie Zawinski and Jef Poskanzer.
+
+1 pgmtopbm
+     pgmtopbm - convert a portable graymap into a portable bitmap
+
+2 Synopsis
+     pgmtopbm [-floyd|-fs|-threshold  |-dither8|-d8|-cluster3  |-
+     c3|-cluster4|-c4 |-cluster8|-c8] [-value val] [pgmfile]
+
+2 Description
+     Reads a portable graymap as input.  Produces a portable bit-
+     map as output.
+
+     Note that there is no pbmtopgm converter,  because  any  pgm
+     program can read pbm files automagically.
+
+2 Options
+     The default quantization method  is  boustrophedonic  Floyd-
+     Steinberg  error  diffusion (-floyd or -fs).  Also available
+     are simple thresholding (-threshold); Bayer's ordered dither
+     (-dither8) with a 16x16 matrix; and three different sizes of
+     45-degree  clustered-dot  dither  (-cluster3,  -cluster4,  -
+     cluster8).
+
+     Floyd-Steinberg will almost always  give  the  best  looking
+     results;  however, looking good is not always what you want.
+     For instance, thresholding can be used in  a  pipeline  with
+     the  pnmconvol tool, for tasks like edge and peak detection.
+     And clustered-dot dithering gives a  newspaper-ish  look,  a
+     useful special effect.
+
+     The -value flag alters the  thresholding  value  for  Floyd-
+     Steinberg  and  simple  thresholding.   It  should be a real
+     number between 0 and 1.   Above  0.5  means  darker  images;
+     below 0.5 means lighter.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 References
+     The only reference you need for this stuff is "Digital Half-
+     toning" by Robert Ulichney, MIT Press, ISBN 0-262-21009-6.
+
+2 See_Also
+     pbmreduce, pgm, pbm, pnmconvol
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 psidtopgm
+     psidtopgm - convert PostScript "image" data into a  portable
+     graymap
+
+2 Synopsis
+     psidtopgm width height bits/sample [imagedata]
+
+2 Description
+     Reads the "image" data from  a  PostScript  file  as  input.
+     Produces a portable graymap as output.
+
+     This is a very simple and limited program, and is here  only
+     because  so  many  people  have asked for it.  To use it you
+     have to manually extract the readhexstring data portion from
+     your  PostScript  file, and then give the width, height, and
+     bits/sample on the command line.  Before you  attempt  this,
+     you  should  at  least  read  the description of the "image"
+     operator in the PostScript Language Reference Manual.
+
+     It would probably not be too hard to  write  a  script  that
+     uses  this  filter  to read a specific variety of PostScript
+     image, but the variation is too great  to  make  a  general-
+     purpose  reader.   Unless,  of  course,  you want to write a
+     full-fledged PostScript interpreter...
+
+2 See_Also
+     pnmtops, pgm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 spottopgm
+     spottopgm - convert SPOT satellite images to Portable  Grey-
+     map format
+
+2 Synopis
+     spottopgm [-1|2|3]  [Firstcol  Firstline  Lastcol  Lastline]
+     inputfile
+
+2 Options
+     -1|2|3  Extract the given colour from the  SPOT  image.  The
+             colours  are  infra-red,  visible  light  and ultra-
+             violet, although I don't know which  corresponds  to
+             which  number.  If the image is in colour, this will
+             be announced on standard error. The  default  colour
+             is 1.
+
+     Firstcol Firstline Lastcol Lastline
+             Extract the specified rectangle from the SPOT image.
+             Most  SPOT  images  are  3000 lines long and 3000 or
+             more columns wide.  Unfortunately  the  SPOT  format
+             only  gives  the width and not the length. The width
+             is printed on standard error. The default  rectangle
+             is the width of the input image by 3000 lines.
+
+2 Description
+     Spottopgm converts the named inputfile into Portable Greymap
+     format,  defaulting  to  the  first color and the whole SPOT
+     image unless specified by the options.
+
+2 INSTALLATION
+     You  must  edit  the  source  program  and   either   define
+     BIGNDIAN  or  LITTLENDIAN,  and  fix  the  typedefs  for
+     uint32, uint16 and uint8 appropriately.
+
+2 Bugs
+     Currently spottopgm doesn't  determine  the  length  of  the
+     input  file;  this  would  involve two passes over the input
+     file. It defaults to 3000 lines instead.
+
+     Spottopgm could extract a three-color  image  (ppm),  but  I
+     didn't feel like making the program more complicated than it
+     is now.  Besides,  there  is  no  one-to-one  correspondence
+     between  red,  green, blue and infra-red, visible and ultra-
+     violet.
+
+     I've only had a limited number of SPOT images to play  with,
+     and  therefore wouldn't guarantee that this will work on any
+     other images.
+
+2 Author
+     Warren Toomey  wkt@csadfa.cs.adfa.oz.au
+
+1 pgmcrater
+     pgmcrater - create cratered terrain by fractal forgery
+
+2 Synopsis
+     pgmcrater [-number n] [-height|-ysize s] [-width|-xsize s]
+               [-gamma g]
+
+2 Description
+     pgmcrater creates a portable graymap which  mimics  cratered
+     terrain.  The graymap is created by simulating the impact of
+     a given number of craters with  random  position  and  size,
+     then  rendering  the resulting terrain elevations based on a
+     light source shining from one side of the screen.  The  size
+     distribution  of  the  craters is based on a power law which
+     results in many more small craters  than  large  ones.   The
+     number  of  craters of a given size varies as the reciprocal
+     of the area as described on pages 31 and 32 of  Peitgen  and
+     Saupe[1];  cratered  bodies in the Solar System are observed
+     to obey this  relationship.   The  formula  used  to  obtain
+     crater  radii  governed by this law from a uniformly distri-
+     buted pseudorandom sequence was developed by Rudy Rucker.
+
+     High resolution images with large numbers of  craters  often
+     benefit  from  being piped through pnmsmooth.  The averaging
+     performed by this process eliminates some of the jagged pix-
+     els  and  lends  a  mellow  ``telescopic image'' feel to the
+     overall picture.
+
+2 Options
+     -number n Causes n craters to be generated.  If  no  -number
+               specification is given, 50000 craters will be gen-
+               erated.  Don't expect to see them all!  For  every
+               large  crater  there are many, many more tiny ones
+               which tend simply to erode the landscape.  In gen-
+               eral,  the more craters you specify the more real-
+               istic the result; ideally you want the entire ter-
+               rain  to  have  been extensively turned over again
+               and again by cratering.   High  resolution  images
+               containing  five  to ten million craters are stun-
+               ning but take quite a while to create.
+
+     -height height
+               Sets the height of the generated image  to  height
+               pixels.  The default height is 256 pixels.
+
+     -width width
+               Sets the width of the  generated  image  to  width
+               pixels.  The default width is 256 pixels.
+
+     -xsize width
+               Sets the width of the  generated  image  to  width
+               pixels.  The default width is 256 pixels.
+
+
+     -ysize height
+               Sets the height of the generated image  to  height
+               pixels.  The default height is 256 pixels.
+
+     -gamma factor
+               The specified factor is used to gamma correct  the
+               graymap   in  the  same  manner  as  performed  by
+               pnmgamma.  The default value is 1.0, which results
+               in  a medium contrast image.  Values larger than 1
+               lighten  the  image  and  reduce  contrast,  while
+               values  less  than  1 darken the image, increasing
+               contrast.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 Bugs
+     The -gamma option  isn't  really  necessary  since  you  can
+     achieve  the same effect by piping the output from pgmcrater
+     through pnmgamma.  However, pgmcrater performs  an  internal
+     gamma  map  anyway in the process of rendering the elevation
+     array into a graymap, so there's no additional  overhead  in
+     allowing a user-specified gamma.
+
+     Real craters  have  two  distinct  morphologies.   pgmcrater
+     simulates  only  small  craters,  which are hemispherical in
+     shape (regardless of the incidence angle  of  the  impacting
+     body,  as long as the velocity is sufficiently high).  Large
+     craters, such as Copernicus and Tycho on the  Moon,  have  a
+     ``walled plain'' shape with a cross-section more like:
+                /\                            /\
+          _____/  \____________/\____________/  \_____
+     Larger craters should really use this profile, including the
+     central  peak,  and totally obliterate the pre-existing ter-
+     rain.
+
+2 See_Also
+     pgm, pnmgamma, pnmsmooth
+
+     [1]  Peitgen, H.-O., and Saupe,  D.  eds.,  The  Science  Of
+          Fractal Images, New York: Springer Verlag, 1988.
+
+2 Author
+          John Walker
+          Autodesk SA
+          Avenue des Champs-Montants 14b
+          CH-2074 MARIN
+          Suisse/Schweiz/Svizzera/Svizra/Switzerland
+          Usenet:  kelvin@Autodesk.com
+          Fax:     038/33 88 15
+          Voice:   038/33 76 33
+
+     software  and  its documentation for any purpose and without
+     fee is hereby granted, without any  conditions  or  restric-
+     tions.   This software is provided ``as is'' without express
+     or implied warranty.
+
+     PLUGWARE! If you like this kind of stuff, you may also enjoy
+     ``James Gleick's Chaos--The Software'' for MS-DOS, available
+     for $59.95 from your local software store or  directly  from
+     Autodesk,  Inc.,  Attn:  Science Series, 2320 Marinship Way,
+     Sausalito, CA 94965, USA.  Telephone: (800)  688-2344  toll-
+     free  or,  outside  the  U.S. (415) 332-2344 Ext 4886.  Fax:
+     (415) 289-4718.  ``Chaos--The  Software''  includes  a  more
+     comprehensive   fractal   forgery  generator  which  creates
+     three-dimensional landscapes as well as clouds and  planets,
+     plus five more modules which explore other aspects of Chaos.
+     The user guide of more than 200 pages includes an  introduc-
+     tion  by  James  Gleick  and  detailed  explanations by Rudy
+     Rucker of the mathematics and algorithms used by  each  pro-
+     gram.
+
+
+1 pgmedge
+     pgmedge - edge-detect a portable graymap
+
+2 Synopsis
+     pgmedge [pgmfile]
+
+2 Description
+     Reads a portable graymap as input.  Outlines the edges,  and
+     writes  a  portable  graymap  as  output.  Piping the result
+     through pgmtopbm -threshold and playing with  the  threshold
+     value will give a bitmap of the edges.
+
+     The edge detection technique used is to take the Pythagorean
+     sum  of  two  Sobel gradient operators at 90 degrees to each
+     other.  For more details see "Digital Image  Processing"  by
+     Gonzalez and Wintz, chapter 7.
+
+2 See_Also
+     pgmenhance, pgmtopbm, pgm, pbm
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 pgmtexture
+     pgmtexture - calculate textural features on a portable gray-
+     map
+
+2 Synopsis
+     pgmtexture [-d d] [pgmfile]
+
+2 Description
+     Reads a portable  graymap  as  input.   Calculates  textural
+     features  based on spatial dependence matrices at 0, 45, 90,
+     and 135 degrees for a distance d (default  =  1).   Textural
+     features include:
+
+          (1) Angular Second Moment,
+          (2) Contrast,
+          (3) Correlation,
+          (4) Variance,
+          (5) Inverse Difference Moment,
+          (6) Sum Average,
+          (7) Sum Variance,
+          (8) Sum Entropy,
+          (9) Entropy,
+          (10) Difference Variance,
+          (11) Difference Entropy,
+          (12, 13) Information Measures of Correlation, and
+          (14) Maximal Correlation Coefficient.
+
+     Algorithm taken from:
+     Haralick, R.M., K. Shanmugam, and I.  Dinstein.  1973.  Tex-
+     tural  features  for image classification. IEEE Transactions
+     on Systems, Man, and Cybertinetics, SMC-3(6):610-621.
+
+2 Bugs
+     The program can run incredibly slow for large images (larger
+     than  64  x  64)  and command line options are limited.  The
+     method for finding (14) the maximal correlation coefficient,
+     which  requires  finding  the second largest eigenvalue of a
+     matrix Q, does not always converge.
+
+2 References
+     IEEE Transactions on Systems, Man, and  Cybertinetics,  SMC-
+     3(6):610-621.
+
+2 See_Also
+     pgm, pnmcut
+
+2 Author
+     Copyright (C) 1991 by Texas Agricultural Experiment Station,
+     employer for hire of James Darrell McCauley.
+
+1 rawtopgm
+     rawtopgm - convert raw grayscale bytes into a portable gray-
+     map
+
+2 Synopsis
+     rawtopgm  [-headerskip  N]  [-rowskip  N]   [-tb|-topbottom]
+     [width height] [imagedata]
+
+2 Description
+     Reads raw grayscale bytes as  input.   Produces  a  portable
+     graymap  as output.  The input file is just grayscale bytes.
+     If you don't specify the width and  height  on  the  command
+     line,  the  program will check the size of the image and try
+     to make a quadratic image of it. It is an error to supply  a
+     non  quadratic  image  without  specifying width and height.
+     The maxval is assumed to be 255.
+
+2 Options
+     -headerskip
+          If the file has a header, you can use this flag to skip
+          over it.
+
+     -rowskip
+          If there is padding at the ends of the  rows,  you  can
+          skip  it  with  this  flag.  Note that rowskip can be a
+          real number.  Amazingly, I once had an image with 0.376
+          bytes of padding per row.  This turned out to be due to
+          a file-transfer problem, but I was still able  to  read
+          the image.
+
+     -tb -topbottom
+          Flips the image upside down.  The first pixel in a  pgm
+          file  is  in  the  lower left corner of the image.  For
+          conversion from images with  the  first  pixel  in  the
+          upper  left  corner  (e.g.  the  Molecular Dynamics and
+          Leica confocal formats) this  flips  the  image  right.
+          This is equivalent to rawtopgm [file] | pnmflip -tb .
+
+2 Bugs
+     If you don't specify the image width and height, the program
+     will try to read the entire image to a memory buffer. If you
+     get a message that states that you are out of memory, try to
+     specify  the width and height on the command line. Also, the
+     -tb option consumes much memory.
+
+2 See_Also
+     pgm, rawtoppm, pnmflip
+
+2 Authors
+     Copyright (C) 1989 by Jef Poskanzer.
+     Modified June 1993 by Oliver Trepte, oliver@fysik4.kth.se
+
+1 pnmarith              
+     pnmarith - perform arithmetic on two portable anymaps
+
+2 Synopsis
+     pnmarith -add|-subtract|-multiply| pnmfile1 pnmfile2
+
+2 Description
+     Reads two portable anymaps as input.  Performs the specified
+     arithmetic operation, and produces a portable anymap as out-
+     put.  The two input anymaps  must  be  the  same  width  and
+     height.
+
+     The arithmetic is performed between corresponding pixels  in
+     the  two anymaps, as if maxval was 1.0, black was 0.0, and a
+     linear scale in  between.   Results  that  fall  outside  of
+     [0..1) are truncated.
+
+     The operator -difference calculates the  absolute  value  of
+     pnmarith  -subtract pnmfile1 pnmfile2, i.e. no truncation is
+     done.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pbmmask, pnmpaste, pnminvert, pnm
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.  Lightly modified
+     by Marcel Wijkstra <wijkstra@fwi.uva.nl>
+
+1 pnmcat                
+     pnmcat - concatenate portable anymaps
+
+2 Synopsis
+     pnmcat   [-white|-black]   -leftright|-lr   [-jtop|-jbottom]
+     pnmfile pnmfile ...
+     pnmcat   [-white|-black]   -topbottom|-tb   [-jleft|-jright]
+     pnmfile pnmfile ...
+
+2 Description
+     Reads portable anymaps as input.  Concatenates  them  either
+     left  to  right  or  top  to bottom, and produces a portable
+     anymap as output.
+
+2 Options
+     If the anymaps are not all the same height  (left-right)  or
+     width  (top-bottom),  the  smaller ones have to be justified
+     with the largest.  By default, they get  centered,  but  you
+     can specify one side or the other with one of the -j* flags.
+     So, -topbottom -jleft would stack the anymaps on top of each
+     other, flush with the left edge.
+
+     The -white and -black flags specify what  color  to  use  to
+     fill  in  the extra space when doing this justification.  If
+     neither is specified, the program makes a guess.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pnm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pnmcomp
+     pnmcomp - composite two portable anymap files together
+
+2 Synopsis
+     pnmcomp [-invert] [-xoffN] [-yoffN] [-alphapgmfile]  overlay
+     [pnm-input] [pnm-output]
+
+2 Description
+     Reads in a portable any map image and put a overlay upon it,
+     with  optional alpha mask.  The -alpha pgmfile allows you to
+     also add an alpha mask file to the compositing process,  the
+     range  of  max  and  min can be swapped by using the -invert
+     option.  The -xoff and  -yoff  arguments  can  be  negative,
+     allowing  you to shift the overlay off the top corner of the
+     screen.
+
+2 See_Also
+     pnm
+
+2 Author
+     Copyright (C) 1992 by David Koblas (koblas@mips.com).
+
+1 pnmconvol             
+     pnmconvol - general MxN convolution on a portable anymap
+
+2 Synopsis
+     pnmconvol convolutionfile [pnmfile]
+
+2 Description
+     Reads two portable anymaps as input.  Convolves  the  second
+     using the first, and writes a portable anymap as output.
+
+     Convolution means replacing each pixel with a weighted aver-
+     age of the nearby pixels.  The weights and the area to aver-
+     age are determined by the convolution matrix.  The  unsigned
+     numbers  in  the convolution file are offset by -maxval/2 to
+     make signed numbers, and  then  normalized,  so  the  actual
+     values in the convolution file are only relative.
+
+     Here is a sample convolution file; it does a simple  average
+     of  the  nine  immediate  neighbors, resulting in a smoothed
+     image:
+         P2
+         3 3
+         18
+         10 10 10
+         10 10 10
+         10 10 10
+
+     To see how this works, do the above-mentioned offset:  10  -
+     18/2 gives 1.  The possible range of values is from 0 to 18,
+     and after the offset that's -9 to 9.  The normalization step
+     makes  the  range  -1  to  1,  and  the  values  get  scaled
+     correspondingly so they become 1/9 - exactly what you  want.
+     The equivalent matrix for 5x5 smoothing would have maxval 50
+     and be filled with 26.
+
+     The convolution file will usually be a graymap, so that  the
+     same convolution gets applied to each color component.  How-
+     ever, if you want to use a pixmap and do a different  convo-
+     lution to different colors, you can certainly do that.
+
+2 See_Also
+     pnmsmooth, pnm
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 pnmcrop               
+     pnmcrop - crop a portable anymap
+
+2 Synopsis
+     pnmcrop [-white|-black] [pnmfile]
+
+2 Description
+     Reads a portable anymap as input.  Removes  edges  that  are
+     the background color, and produces a portable anymap as out-
+     put.
+
+2 Options
+     By default, it makes a guess as to what the background color
+     is.  You can override the default with the -white and -black
+     flags.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pnmcut, pnm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pnmcut                
+     pnmcut - cut a rectangle out of a portable anymap
+
+2 Synopsis
+     pnmcut x y width height [pnmfile]
+
+2 Description
+     Reads a portable anymap as input.   Extracts  the  specified
+     rectangle,  and produces a portable anymap as output.  The x
+     and y can be negative, in which case  they  are  interpreted
+     relative  to  the  right  and  bottom of the anymap, respec-
+     tively.
+
+2 See_Also
+     pnm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pnmdepth              
+     pnmdepth - change the maxval in a portable anymap
+
+2 Synopsis
+     pnmdepth newmaxval [pnmfile]
+
+2 Description
+     Reads a portable anymap as  input.   Scales  all  the  pixel
+     values, and writes out the image with the new maxval.  Scal-
+     ing the colors down to a smaller maxval will result in  some
+     loss of information.
+
+     Be careful of off-by-one errors when choosing the  new  max-
+     val.   For instance, if you want the color values to be five
+     bits wide, use a maxval of 31, not 32.
+
+2 See_Also
+     pnm, ppmquant, ppmdither
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 pnmenlarge            
+     pnmenlarge - read a portable anymap and enlarge it N times
+
+2 Synopsis
+     pnmenlarge N [pnmfile]
+
+2 Description
+     Reads a portable anymap as input.  Replicates its  pixels  N
+     times, and produces a portable anymap as output.
+
+     pnmenlarge can only enlarge by integer factors.  The  slower
+     but more general pnmscale can enlarge or reduce by arbitrary
+     factors, and pbmreduce can reduce by  integer  factors,  but
+     only for bitmaps.
+
+     If you enlarge by a factor of 3 or more, you should probably
+     add  a  pnmsmooth  step; otherwise, you can see the original
+     pixels in the resulting image.
+
+2 See_Also
+     pbmreduce, pnmscale, pnmsmooth, pnm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pnmfile               
+     pnmfile - describe a portable anymap
+
+2 Synopsis
+     pnmfile [pnmfile] ...
+
+2 Description
+     Reads one or more portable anymaps  as  input.   Writes  out
+     short  descriptions  of  the image type, size, etc.  This is
+     mostly for use in shell scripts, so the format is  not  par-
+     ticularly pretty.
+
+2 See_Also
+     pnm, file
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 pnmflip               
+     pnmflip - perform one or more flip operations on a  portable
+     anymap
+
+2 Synopsis
+     pnmflip [-leftright|-lr]  [-topbottom|-tb]  [-transpose|-xy]
+     [-rotate90|-r90|-ccw    ]    [-rotate270|-r270|-cw    ]   [-
+     rotate180|-r180] [pnmfile]
+
+2 Description
+     Reads a portable anymap as input.  Performs one or more flip
+     operations,  in  the order specified, and writes out a port-
+     able anymap.
+
+2 Options
+     The  flip  operations  available  are:  left  for  right  (-
+     leftright  or  -lr); top for bottom (-topbottom or -tb); and
+     transposition (-transpose or -xy).  In addition, some canned
+     concatenations   are   available:   -rotate90   or  -ccw  is
+     equivalent to -transpose -topbottom; -rotate270  or  -cw  is
+     equivalent  to  -transpose  -leftright;  and  -rotate180  is
+     equivalent to -leftright -topbottom.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pnmrotate, pnm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pnminvert             
+     pnminvert - invert a portable anymap
+
+2 Synopsis
+     pnminvert [pnmfile]
+
+2 Description
+     Reads a portable anymap as  input.   Inverts  it  black  for
+     white and produces a portable anymap as output.
+
+2 See_Also
+     pnm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pnmnoraw              
+     pnmnoraw - force a portable anymap into plain format
+
+2 Synopsis
+     pnmnoraw [pnmfile]
+
+2 Description
+     Reads a portable anymap as input.  Writes it  out  in  plain
+     (non-raw)  format.   This  is  fairly useless if you haven't
+     defined the PBMPLUSAWBITS compile-time option.
+
+2 See_Also
+     pnm
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 pnmpad
+     pnmpad - add borders to portable anymap
+
+2 Synopsis
+     pnmpad [-white|-black] [-l#] [-r#] [-t#] [-b#] [pnmfile]
+
+2 Description
+     Reads a portable anymap as input. Outputs a portable  anymap
+     with extra borders of the sizes specified. The colour of the
+     borders can be set to black or white (default black).
+
+
+2 See_Also
+     pbmmake, pnmpaste, pbm
+
+2 Author
+     Copyright (C) 1990 by Angus Duggan Copyright (C) 1989 by Jef
+     Poskanzer.
+
+     Permission  to  use,  copy,  modify,  and  distribute   this
+     software  and  its documentation for any purpose and without
+     fee is hereby granted, provided  that  the  above  copyright
+     notice  appear  in  all  copies and that both that copyright
+     notice and this permission notice appear in supporting docu-
+     mentation.   This  software  is  provided  "as  is"  without
+     express or implied warranty.
+
+1 pnmpaste              
+     pnmpaste - paste a rectangle into a portable anymap
+
+2 Synopsis
+     pnmpaste   [-replace|-or|-and   |-xor]   frompnmfile   x   y
+     [intopnmfile]
+
+2 Description
+     Reads two portable anymaps  as  input.   Inserts  the  first
+     anymap  into  the second at the specified location, and pro-
+     duces a portable anymap the same size as the second as  out-
+     put.  If the second anymap is not specified, it is read from
+     stdin.  The x and y can be negative, in which case they  are
+     interpreted  relative to the right and bottom of the anymap,
+     respectively.
+
+     This tool is most useful in combination  with  pnmcut.   For
+     instance,  if  you  want  to edit a small segment of a large
+     image, and your image editor cannot edit  the  large  image,
+     you  can cut out the segment you are interested in, edit it,
+     and then paste it back in.
+
+     Another useful companion tool is pbmmask.
+
+     The optional flag specifies the operation to use when  doing
+     the  paste.   The  default  is -replace.  The other, logical
+     operations are only allowed if both input  images  are  bit-
+     maps.  These operations act as if white is TRUE and black is
+     FALSE.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pnmcut, pnminvert, pnmarith, pnm, pbmmask
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 pnmscale              
+     pnmscale - scale a portable anymap
+
+2 Synopsis
+     pnmscale s [pnmfile]
+     pnmscale -xsize|-width|-ysize| -height s [pnmfile]
+     pnmscale -xscale|-yscale s [pnmfile]
+     pnmscale -xscale|-xsize|-width  s  -yscale|-ysize|-height  s
+     [pnmfile]
+     pnmscale -xysize x y [pnmfile]
+
+2 Description
+     Reads a portable anymap as input.  Scales it by  the  speci-
+     fied  factor  or  factors  and produces a portable anymap as
+     output.  If the input file is in color, the output  will  be
+     too,  otherwise  it will be grayscale.  You can both enlarge
+     (scale factor > 1) and reduce (scale factor < 1).
+
+     You can specify one dimension as a pixel size, and the other
+     dimension will be scaled correspondingly.
+
+     You can specify one dimension as  a  scale,  and  the  other
+     dimension will not be scaled.
+
+     You can specify different sizes or scales for each axis.
+
+     Or, you can use the special -xysize  flag,  which  fits  the
+     image  into  the  specified size without changing the aspect
+     ratio.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+     If you enlarge by a factor of 3 or more, you should probably
+     add  a  pnmsmooth  step; otherwise, you can see the original
+     pixels in the resulting image.
+
+2 See_Also
+     pbmreduce, pnmenlarge, pnmsmooth, pnm
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 pnmtile               
+     pnmtile - replicate a portable anymap into a specified size
+
+2 Synopsis
+     pnmtile width height [pnmfile]
+
+2 Description
+     Reads a portable anymap as input.  Replicates it until it is
+     the  specified  size, and produces a portable anymap as out-
+     put.
+
+2 See_Also
+     pnm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pnmtoddif
+     pnmtoddif - Convert a portable anymap to DDIF format
+
+2 Synopis
+     pnmtoddif pnmtoddif [-resolution x y] [pnmfile [ddiffile]]
+
+2 Description
+     pnmtoddif takes a portable anymap from  standard  input  and
+     converts it into a DDIF image file on standard output or the
+     specified DDIF file.
+
+     pbm format (bitmap) data is written as 1 bit DDIF, pgm  for-
+     mat data (greyscale) as 8 bit greyscale DDIF, and ppm format
+     data is written as 8,8,8 bit  color  DDIF.  All  DDIF  image
+     files  are written as uncompressed. The data plane organiza-
+     tion is interleaved by pixel.
+
+     In addition to the number of pixels in the width and  height
+     dimension, DDIF images also carry information about the size
+     that the image should have, that is, the physical space that
+     a  pixel occupies. PBMPLUS images do not carry this informa-
+     tion, hence it has to be externally supplied.   The  default
+     of  78  dpi  has  the  beneficial  property of not causing a
+     resize on most Digital Equipment Corporation color monitors.
+
+2 Options
+     resolution
+          The horizontal and vertical resolution  of  the  output
+          image in dots per inch. Defaults to 78 dpi.
+
+     pnmfile        The filename for the image file in  pnm  for-
+                    mat.   If  this argument is omitted, input is
+                    read from stdin.
+
+     ddiffile       The filename for the image file to be created
+                    in DDIF format.  If this argument is omitted,
+                    the ddiffile is written to  standard  output.
+                    It  can  only  specified if a pnmfile is also
+                    specified.
+
+2 Author
+     Burkhard Neidecker-Lutz
+     Digital Equipment Corporation, CEC Karlsruhe
+     neideck@nestvx.enet.dec.com
+
+1 pnmtops               
+     pnmtops - convert portable anymap to PostScript
+
+2 Synopsis
+     pnmtops [-scale s] [-turn|-noturn]  [-rle|-runlength]  [-dpi
+     n] [-width n] [-height n] [pnmfile]
+
+2 Description
+     Reads a portable anymap  as  input.   Produces  Encapsulated
+     PostScript as output.
+
+     If the input file is in color (PPM), a color PostScript file
+     gets  written.   Some  PostScript  interpreters can't handle
+     color PostScript.  If you have one of these you will need to
+     run your image through ppmtopgm first.
+
+     Note that there is no pstopnm tool - this transformation  is
+     one-way,  because  a  pstopnm  tool  would be a full-fledged
+     PostScript interpreter, which is beyond the  scope  of  this
+     package.   However,  see  the psidtopgm tool, which can read
+     grayscale non-runlength PostScript  image  data.   Also,  if
+     you're willing to install the fairly large GhostScript pack-
+     age, it comes with a pstoppm script.
+
+2 Options
+     The -scale flag controls  the  scale  of  the  result.   The
+     default  scale  is 1, which on a 300 dpi printer such as the
+     Apple LaserWriter makes the output look about the same  size
+     as  the  input would if it was displayed on a typical 72 dpi
+     screen.  To get one PNM pixel per 300 dpi printer pixel, use
+     "-scale 0.25".
+
+     The -turn and -noturn flags control whether the  image  gets
+     turned  90  degrees.  Normally, if an image is wider than it
+     is tall, it gets turned  automatically  to  better  fit  the
+     page.   If the -turn flag is specified, it will be turned no
+     matter what its shape; and if the -noturn flag is specified,
+     it will not be turned no matter what its shape.
+
+     The -rle or -runlength flag  specifies  run-length  compres-
+     sion.   This  may  save  time if the host-to-printer link is
+     slow; but normally the printer's processing time  dominates,
+     so -rle makes things slower.
+
+     The -dpi flag lets you specify the dots  per  inch  of  your
+     output   device.    The  default  is  300  dpi.   In  theory
+     PostScript is device-independent and you don't have to worry
+     about  this,  but  in practice its raster rendering can have
+     unsightly bands if the device pixels and  the  image  pixels
+     aren't in sync.
+
+     The -width and -height flags let you specify the size of the
+     page.  The default is 8.5 inches by 11 inches.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pnm, psidtopgm
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 pnmtorast             
+     pnmtorast - convert a portable pixmap into a Sun rasterfile
+
+2 Synopsis
+     pnmtorast [-standard|-rle] [pnmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces a Sun rasterfile
+     as output.
+
+     Color values in Sun rasterfiles  are  eight  bits  wide,  so
+     pnmtorast  will  automatically scale colors to have a maxval
+     of 255.  An extra pnmdepth step is not necessary.
+
+2 Options
+     The -standard flag forces the result to  be  in  RT_STANDARD
+     form;  the -rle flag, RT_BYTE_ENCODED, which is smaller but,
+     well, less standard.  The default is -rle.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     rasttopnm, pnm
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 pnmtoxwd              
+     pnmtoxwd - convert a portable anymap into an X11 window dump
+
+2 Synopsis
+     pnmtoxwd [-pseudodepth n] [-directcolor] [pnmfile]
+
+2 Description
+     Reads a portable anymap as input.  Produces  an  X11  window
+     dump as output.  This window dump can be displayed using the
+     xwud tool.
+
+     Normally, pnmtoxwd produces a StaticGray dump file  for  pbm
+     and  pgm  files.  For ppm, it writes a PseudoColor dump file
+     if  there  are  up  to  256  colors  in  the  input,  and  a
+     DirectColor  dump file otherwise.  The -directcolor flag can
+     be used to force a DirectColor dump.  And  the  -pseudodepth
+     flag  can  be  used to change the depth of PseudoColor dumps
+     from the default of 8 bits / 256 colors.
+
+2 See_Also
+     xwdtopnm, pnm, xwud
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 rasttopnm             
+     rasttopnm - convert a Sun rasterfile into a portable anymap
+
+2 Synopsis
+     rasttopnm [rastfile]
+
+2 Description
+     Reads a Sun rasterfile as input.  Produces a portable anymap
+     as output.  The type of the output file depends on the input
+     file - if it's black & white, a pbm file is written, else if
+     it's  grayscale  a  pgm  file, else a ppm file.  The program
+     tells you which type it is writing.
+
+2 See_Also
+     pnmtorast, pnm
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 xwdtopnm              
+     xwdtopnm - convert a X11 or X10  window  dump  file  into  a
+     portable anymap
+
+2 Synopsis
+     xwdtopnm [xwdfile]
+
+2 Description
+     Reads a X11 or X10 window dump file as  input.   Produces  a
+     portable  anymap  as  output.   The  type of the output file
+     depends on the input file - if it's black  &  white,  a  pbm
+     file  is  written, else if it's grayscale a pgm file, else a
+     ppm file.  The program tells you which type it is writing.
+
+     Using this  program,  you  can  convert  anything  on  an  X
+     workstation's  screen into an anymap.  Just display whatever
+     you're interested in, do an xwd, run  it  through  xwdtopnm,
+     and then use pnmcut to select the part you want.
+
+2 Bugs
+     I haven't tested this tool with very many configurations, so
+     there  are  probably  bugs.   Please let me know if you find
+     any.
+
+2 See_Also
+     pnmtoxwd, pnm, xwd
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 zeisstopnm            
+     zeisstopnm - convert a Zeiss confocal file into  a  portable
+     anymap
+
+2 Synopsis
+     zeisstopnm [-pgm | -ppm] [zeissfile]
+
+2 Description
+     Reads a Zeiss confocal file as input.  Produces  a  portable
+     anymap  as  output.   The type of the output file depends on
+     the input file - if it's grayscale a pgm file,  else  a  ppm
+     file  will be produced.  The program tells you which type it
+     is writing.
+
+2 Options
+     -pgm Force the output to be a pgm file.
+
+     -ppm Force the output to be a ppm file.
+
+2 See_Also
+     pnm
+
+2 Author
+     Copyright (C) 1993 by Oliver Trepte
+
+1 pnmgamma              
+     pnmgamma - perform gamma correction on a portable anymap
+
+2 Synopsis
+     pnmgamma value [pnmfile]
+     pnmgamma redvalue greenvalue bluevalue [pnmfile]
+
+2 Description
+     Reads a portable anymap as input.   Performs  gamma  correc-
+     tion, and produces a portable anymap as output.
+
+     The arguments specify what gamma value(s) to use.   A  value
+     of 1.0 leaves the image alone, less than one darkens it, and
+     greater than one lightens it.
+
+2 See_Also
+     pnm
+
+2 Author
+     Copyright (C) 1991 by Bill Davidson and Jef Poskanzer.
+
+1 pnmhistmap
+     pnmhistmap - draw a histogram for a PGM or PPM file
+
+2 Synopsis
+     pnmhistmap [-black] [-white] [-max N] [-verbose] [pnmfile]
+
+2 Description
+     Reads a portable anymap  as  input,  although  bitmap  (PBM)
+     input  produces  an error message and no image.  Produces an
+     image showing a histogram of the color (or gray)  values  in
+     the  input.  A graymap (PGM) input produces a bitmap output.
+     A pixmap (PPM) input produces pixmap output with three over-
+     laid  histograms:  a  red one for the red input, a green one
+     for the green input, and a blue one for the blue input.  The
+     output is fixed in size: 256 pixels wide by 200 pixels high.
+
+2 Options
+     -black
+          Ignores the count of black pixels when scaling the his-
+          togram.
+
+     -white
+          Ignores the count of white pixels when scaling the his-
+          togram.
+
+     The -black and -white options, which can be used  seperately
+     or  together,  are useful for images with a large percentage
+     of pixels whose value is zero or 255, which  can  cause  the
+     remaining  histogram  data to become unreadbaly small.  Note
+     that, for pixmap inputs, these options apply to all  colors;
+     if,  for example, the input has a large number of bright-red
+     areas, you will probably want to use the -white option.
+
+     -max N
+          Force the scaling of the histogram  to  use  N  as  the
+          largest-count  value.  This is useful for inputs with a
+          large percentage of single-color pixels which  are  not
+          black or white.
+
+     -verbose
+          Report the progress of making the histogram,  including
+          the largest-count value used to scale the output.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 Bugs
+     Assumes maxval is always 255.  Images with a smaller  maxval
+     will  only  use the lower-value side of the histogram.  This
+     can be overcome either by piping the input through "pnmdepth
+     255"  or  by cutting and scaling the lower-value side of the
+     histogram.  Neither is a particularly elegant solution.
+     Should allow the output size to be specified.
+
+2 See_Also
+     pgmhist(1), ppmhist(1), pgm(5), ppm(5)
+
+2 Author
+     Wilson H. Bent. Jr. (whb@usc.edu).
+
+1 pnmnlfilt             
+     pnmnlfilt - non-linear filters:  smooth,  alpha  trim  mean,
+     optimal estimation smoothing, edge enhancement.
+
+2 Synopsis
+     pnmnlfilt alpha radius [pnmfile]
+
+2 Description
+     This is something of a swiss army knife  filter.  It  has  3
+     distinct  operating modes. In all of the modes each pixel in
+     the image is examined and processed according to it and  its
+     surrounding pixels values. Rather than using the 9 pixels in
+     a 3x3 block, 7 hexagonal area samples are taken, the size of
+     the  hexagons  being  controlled  by the radius parameter. A
+     radius value of 0.3333 means that the 7 hexagons exactly fit
+     into  the  center  pixel  (ie.   there  will be no filtering
+     effect). A radius value of 1.0 means  that  the  7  hexagons
+     exactly fit a 3x3 pixel array.
+
+        Alpha trimmed mean filter.    (0.0 <= alpha
+     The value of the center pixel will be replaced by  the  mean
+     of the 7 hexagon values, but the 7 values are sorted by size
+     and the top and bottom alpha portion of the 7  are  excluded
+     from  the  mean.   This  implies  that an alpha value of 0.0
+     gives the same sort of output as a normal  convolution  (ie.
+     averaging  or smoothing filter), where radius will determine
+     the "strength" of the filter. A good value to start from for
+     subtle  filtering  is  alpha = 0.0, radius = 0.55 For a more
+     blatant effect, try alpha 0.0 and radius 1.0
+
+     An alpha value of 0.5 will cause the median value of  the  7
+     hexagons  to be used to replace the center pixel value. This
+     sort of filter is good for eliminating "pop" or single pixel
+     noise  from  an  image  without  spreading  the noise out or
+     smudging features on the image. Judicious use of the  radius
+     parameter  will fine tune the filtering. Intermediate values
+     of alpha give effects somewhere between smoothing and  "pop"
+     noise  reduction.  For  subtle  filtering  try starting with
+     values of alpha = 0.4, radius =  0.6   For  a  more  blatant
+     effect try alpha = 0.5, radius = 1.0
+
+        Optimal estimation smoothing. (1.0 <= alpha
+     This type of filter applies a  smoothing  filter  adaptively
+     over  the  image.   For  each pixel the variance of the sur-
+     rounding hexagon values is calculated,  and  the  amount  of
+     smoothing  is made inversely proportional to it. The idea is
+     that if the variance is small then it is due to noise in the
+     image,  while  if  the  variance  is large, it is because of
+     "wanted" image features. As usual the radius parameter  con-
+     trols  the  effective  radius,  but it probably advisable to
+     leave the radius between 0.8 and 1.0 for the variance calcu-
+     lation to be meaningful.  The alpha parameter sets the noise
+     threshold, over which less smoothing  will  be  done.   This
+     means  that  small values of alpha will give the most subtle
+     filtering effect, while large values will tend to smooth all
+     parts of the image. You could start with values like alpha =
+     1.2, radius = 1.0 and try increasing or decreasing the alpha
+     parameter  to get the desired effect. This type of filter is
+     best for filtering out dithering noise in  both  bitmap  and
+     color images.
+
+        Edge enhancement. (-0.1 >= alpha >=
+     This is the opposite type of filter to the smoothing filter.
+     It  enhances  edges. The alpha parameter controls the amount
+     of edge enhancement, from subtle (-0.1) to  blatant  (-0.9).
+     The radius parameter controls the effective radius as usual,
+     but useful values are between 0.5 and 0.9. Try starting with
+     values of alpha = 0.3, radius = 0.8
+
+        Combination use.
+     The various modes of pnmnlfilt can be  used  one  after  the
+     other  to  get  the  desired  result. For instance to turn a
+     monochrome dithered image into a grayscale image  you  could
+     try one or two passes of the smoothing filter, followed by a
+     pass of the optimal estimation filter, then some subtle edge
+     enhancement. Note that using edge enhancement is only likely
+     to be useful after one  of  the  non-linear  filters  (alpha
+     trimmed mean or optimal estimation filter), as edge enhance-
+     ment is the direct opposite of smoothing.
+
+     For reducing color quantization noise in images (ie. turning
+     .gif  files  back into 24 bit files) you could try a pass of
+     the optimal estimation filter (alpha  1.2,  radius  1.0),  a
+     pass of the median filter (alpha 0.5, radius 0.55), and pos-
+     sibly a pass of the edge enhancement filter.  Several passes
+     of the optimal estimation filter with declining alpha values
+     are more effective than a single pass  with  a  large  alpha
+     value.   As  usual,  there  is  a tradeoff between filtering
+     effectiveness  and  loosing   detail.   Experimentation   is
+     encouraged.
+
+2 References
+     The alpha-trimmed mean filter is based on the description in
+     IEEE  CG&A  May  1990  Page 23 by Mark E. Lee and Richard A.
+     Redner, and has been  enhanced  to  allow  continuous  alpha
+     adjustment.
+
+     The optimal estimation filter is taken from an article "Con-
+     verting  Dithered  Images  Back  to  Gray  Scale"  by  Allen
+     Stenger, Dr Dobb's Journal, November 1992, and this  article
+     references "Digital Image Enhancement and Noise Filtering by
+     Use of Local Statistics", Jong-Sen Lee, IEEE Transactions on
+     Pattern Analysis and Machine Intelligence, March 1980.
+     The edge enhancement details are from  pgmenhance,  which
+     is  taken  from Philip R. Thompson's "xim" program, which in
+     turn took it from section 6 of  "Digital  Halftones  by  Dot
+     Diffusion", D. E. Knuth, ACM Transaction on Graphics Vol. 6,
+     No. 4, October 1987, which in turn  got  it  from  two  1976
+     papers by J. F. Jarvis et. al.
+
+2 See_Also
+     pgmenhance, pnmconvol, pnm
+
+2 Bugs
+     Integers and tables may overflow if PPM_MAXMAXVAL is greater
+     than 255.
+
+2 Author
+     Graeme W. Gill    graeme@labtam.oz.au
+
+1 pnmrotate             
+     pnmrotate - rotate a portable anymap by some angle
+
+2 Synopsis
+     pnmrotate [-noantialias] angle [pnmfile]
+
+2 Description
+     Reads a portable anymap as input.  Rotates it by the  speci-
+     fied angle and produces a portable anymap as output.  If the
+     input file is in color, the output will be too, otherwise it
+     will  be  grayscale.   The  angle  is  in  degrees (floating
+     point), measured counter-clockwise.  It can be negative, but
+     it  should  be  between  -90  and  90.   Also, for rotations
+     greater than 45 degrees you may get better  results  if  you
+     first use pnmflip to do a 90 degree rotation and then pnmro-
+     tate less than 45 degrees back the other direction
+
+     The rotation algorithm is Alan Paeth's  three-shear  method.
+     Each  shear is implemented by looping over the source pixels
+     and distributing fractions to each of the  destination  pix-
+     els.   This has an "anti-aliasing" effect - it avoids jagged
+     edges and similar artifacts.  However, it  also  means  that
+     the  original  colors  or gray levels in the image are modi-
+     fied.  If you need to keep precisely the same set of colors,
+     you  can  use the -noantialias flag.  This does the shearing
+     by moving pixels without changing their values.  If you want
+     anti-aliasing  and  don't care about the precise colors, but
+     still need a limited *number* of colors,  you  can  run  the
+     result through ppmquant.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 References
+     "A Fast Algorithm  for  General  Raster  Rotation"  by  Alan
+     Paeth, Graphics Interface '86, pp. 77-81.
+
+2 See_Also
+     pnmshear, pnmflip, pnm, ppmquant
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 pnmshear              
+     pnmshear - shear a portable anymap by some angle
+
+2 Synopsis
+     pnmshear [-noantialias] angle [pnmfile]
+
+2 Description
+     Reads a portable anymap as input.  Shears it by  the  speci-
+     fied angle and produces a portable anymap as output.  If the
+     input file is in color, the output will be too, otherwise it
+     will  be  grayscale.   The  angle  is  in  degrees (floating
+     point), and measures this:
+         +-------+  +-------+
+         |       |  |\       \
+         |  OLD  |  | \  NEW  \
+         |       |  |an\       \
+         +-------+  |gle+-------+
+     If the angle is negative, it shears the other way:
+         +-------+  |-an+-------+
+         |       |  |gl/       /
+         |  OLD  |  |e/  NEW  /
+         |       |  |/       /
+         +-------+  +-------+
+     The angle should not get too close to  90  or  -90,  or  the
+     resulting anymap will be unreasonably wide.
+
+     The shearing is implemented by looping over the source  pix-
+     els  and  distributing  fractions to each of the destination
+     pixels.  This has an  "anti-aliasing"  effect  -  it  avoids
+     jagged  edges and similar artifacts.  However, it also means
+     that the original colors or gray levels  in  the  image  are
+     modified.   If  you  need  to keep precisely the same set of
+     colors, you can use the -noantialias flag.   This  does  the
+     shearing by moving pixels without changing their values.  If
+     you want anti-aliasing and  don't  care  about  the  precise
+     colors, but still need a limited *number* of colors, you can
+     run the result through ppmquant.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pnmrotate, pnmflip, pnm, ppmquant
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 tifftopnm             
+     tifftopnm - convert a TIFF file into a portable anymap
+
+2 Synopsis
+     tifftopnm [-headerdump] tifffile
+
+2 Description
+     Reads a TIFF file as input.  Produces a portable  anymap  as
+     output.   The  type  of the output file depends on the input
+     file - if it's black & white, a pbm file is written, else if
+     it's  grayscale  a  pgm  file, else a ppm file.  The program
+     tells you which type it is writing.
+
+2 Options
+     -headerdump
+          Dump TIFF file information to stderr.  This information
+          may  be  useful in debugging TIFF file conversion prob-
+          lems.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     pnmtotiff, pnm
+
+2 Bugs
+     This program is not self-contained.   To  use  it  you  must
+     fetch  the TIFF Software package listed in the OTHER.SYSTEMS
+     file and configure PBMPLUS to use  libtiff.   See  PBMPLUS's
+     Makefile for details on this configuration.
+
+2 Author
+     Derived by Jef Poskanzer from tif2ras.c, which is  Copyright
+     (c)  1990  by  Sun  Microsystems,  Inc.   Author: Patrick J.
+     Naughton (naughton@wind.sun.com).
+
+1 pnmtotiff             
+     pnmtotiff - convert a a portable anymap into a TIFF file
+
+2 Synopsis
+     pnmtotiff [-none|-packbits| -lzw|-g3|-g4] [-2d]  [-fill]  [-
+     predictor n] [-msb2lsb|-lsb2msb] [-rowsperstrip n] [pnmfile]
+
+2 Description
+     Reads a portable anymap as input.  Produces a TIFF  file  as
+     output.
+
+2 Options
+     By default, pnmtotiff creates a TIFF file with LZW  compres-
+     sion.   This  is  your  best bet most of the time.  However,
+     some TIFF readers can't deal with it.  If you  want  to  try
+     another  compression  scheme or tweak some of the other even
+     more obscure output options, there are a number of flags  to
+     play with.
+
+     The -none, -packbits, -lzw, -g3, and -g4 options are used to
+     override  the default and set the compression scheme used in
+     creating the output file.  The CCITT Group  3  and  Group  4
+     compression  algorithms  can only be used with bilevel data.
+     The -2d and -fill options are meaningful only with  Group  3
+     compression:  -2d  requests  2-dimensional encoding, while -
+     fill requests that each encoded scanline be zero-filled to a
+     byte boundry.  The -predictor option is only meaningful with
+     LZW compression: a predictor value of 2 causes each scanline
+     of  the  output  image  to  undergo  horizontal differencing
+     before it is encoded; a value of 1 forces each  scanline  to
+     be  encoded  without  differencing.   By  default, pnmtotiff
+     creates a TIFF file  with  msb-to-lsb  fill  order.   The  -
+     msb2lsb  and  -lsb2msb  options  are  used  to  override the
+     default and set the fill order used in  creating  the  file.
+     The  -rowsperstrip  option  can be used to set the number of
+     rows (scanlines) in each strip of data in the  output  file.
+     By default, the output file has the number of rows per strip
+     set to a value that will ensure each strip is no more than 8
+     kilobytes long.
+
+2 Bugs
+     This program is not self-contained.   To  use  it  you  must
+     fetch  the TIFF Software package listed in the OTHER.SYSTEMS
+     file and configure PBMPLUS to use  libtiff.   See  PBMPLUS's
+     Makefile for details on this configuration.
+
+2 See_Also
+     tifftopnm, pnm
+
+2 Author
+     Derived by Jef Poskanzer from ras2tiff.c, which is Copyright
+     (c)  1990  by  Sun  Microsystems,  Inc.   Author: Patrick J.
+     Naughton (naughton@wind.sun.com).
+
+1 libpnm
+     libpnm - functions to support portable anymap programs
+
+2 Synopsis
+     #include <pnm.h>
+     cc ... libpnm.a libppm.a libpgm.a libpbm.a
+
+
+2 Description
+  TYPES AND CONSTANTS
+     typedef ... xel;
+     typedef ... xelval;
+     #define PNM_MAXMAXVAL ...
+     extern xelval pnm_pbmmaxval;
+
+     Each xel contains three xelvals, each of which  should  con-
+     tain   only   the   values   between  0  and  PNM_MAXMAXVAL.
+     pnm_pbmmaxval is the maxval used when a PNM program reads  a
+     PBM  file.   Normally it is 1; however, for some programs, a
+     larger value gives better results.
+
+  XEL MANIPULATIONS
+     xelval PNM_GET1( xel x )
+
+     This macro extracts a single value from  an  xel,  when  you
+     know  it's  from  a  PBM  or PGM file.  When it's from a PPM
+     file, use PPM_GETR(), PPM_GETG(), and PPM_GETB().
+
+     void PNM_ASSIGN1( xel x, xelval v )
+
+     This macro assigns a single value to an xel, when  you  know
+     it's from a PBM or PGM file.  When it's from a PPM file, use
+     PPM_ASSIGN().
+
+     int PNM_EQUAL( xel x, xel y )
+
+     This macro checks two xels for equality.
+
+     int PNM_FORMAT_TYPE( int format )
+
+     For distinguishing different file types.
+
+  INITIALIZATION
+     void pnm_init( int* argcP, char* argv[] )
+
+     All PNM programs must call this routine.
+
+  MEMORY MANAGEMENT
+     xel** pnm_allocarray( int cols, int rows )
+
+     Allocate an array of xels.
+     xel* pnm_allocrow( int cols )
+
+     Allocate a row of the given number of xels.
+
+     void pnm_freearray( xel** xels, int rows )
+
+     Free the array allocated  with  pnmllocarray()  containing
+     the given number of rows.
+
+     void pnm_freerow( xel* xelrow )
+
+     Free a row of xels.
+
+  READING FILES
+     void pnm_readpnminit( FILE* fp, int* colsP, int* rowsP, xelval* maxvalP, int* formatP )
+
+     Read the header from a PNM file, filling in the rows,  cols,
+     maxval and format variables.
+
+     void pnm_readpnmrow( FILE* fp, xel* xelrow, int cols, xelval maxval, int format )
+
+     Read a row of xels into the xelrow array.  Format, cols, and
+     maxval were filled in by pnm_readpnminit().
+
+     xel** pnm_readpnm( FILE* fp, int* colsP, int* rowsP, xelval* maxvalP, int* formatP )
+
+     Read an entire anymap file into memory, returning the  allo-
+     cated  array and filling in the rows, cols, maxval, and for-
+     mat variables.  This  function  combines  pnm_readpnminit(),
+     pnm_allocarray()    and    pnm_readpnmrow().    Unlike   the
+     equivalent functions in PBM, PGM, and PPM,  it  returns  the
+     format so you can tell what type the file is.
+
+  WRITING FILES
+     void pnm_writepnminit( FILE* fp, int cols, int rows, xelval maxval, int format, int forceplain )
+
+     Write the header for a portable  anymap  file.   Unlike  the
+     equivalent  functions  in  PBM,  PGM,  and  PPM, you have to
+     specify the output  type.   The  forceplain  flag  forces  a
+     plain-format  file to be written, as opposed to a raw-format
+     one.
+
+     void pnm_writepnmrow( FILE* fp, xel* xelrow, int cols, xelval maxval, int format, int forceplain )
+
+     Write a row from a portable anymap.
+
+     void pnm_writepnm( FILE* fp, xel** xels, int cols, int rows, xelval maxval, int format, int forceplain )
+
+     Write the header and all data for a portable  anymap.   This
+     function combines pnm_writepnminit() and pnm_writepnmrow().
+
+  FORMAT PROMOTION
+     void pnm_promoteformatrow( xel* xelrow, int cols, xelval maxval, int format, xelval newmaxval, int newformat )
+
+     Promote a row of xels from one maxval and format  to  a  new
+     set.   Used  when  combining  multiple  anymaps of different
+     types - just take the max of the maxvals and the max of  the
+     formats, and promote them all to that.
+
+     void pnm_promoteformat( xel** xels, int cols, int rows, xelval maxval, int format, xelval newmaxval, int newformat )
+
+     Promote an entire anymap.
+
+  XEL MANIPULATION
+     xel pnm_whitexel( xelval maxval, int format )
+     xel pnm_blackxel( xelval maxval, int format )
+
+     Return a white or black xel for the given maxval and format.
+
+     void pnm_invertxel( xel* x, xelval maxval, int format )
+
+     Invert an xel.
+
+     xel pnm_backgroundxelrow( xel* xelrow, int cols, xelval maxval, int format )
+
+     Figure out an appropriate background xel based on this row.
+
+     xel pnm_backgroundxel( xel** xels, int cols, int rows, xelval maxval, int format )
+
+     Figure out a background xel based on an entire anymap.  This
+     can do a slightly better job than pnm_backgroundxelrow().
+
+2 See_Also
+     pbm, pgm, ppm
+
+2 Author
+     Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer.
+
+1 pnm
+     pnm - portable anymap file format
+
+2 Description
+     The pnm programs operate on portable bitmaps, graymaps,  and
+     pixmaps,  produced by the pbm, pgm, and ppm segments.  There
+     is no file format associated with pnm itself.
+
+2 See_Also
+    anytopnm,    rasttopnm,  tifftopnm,  xwdtopnm,  pnmtops,  pnmtorast,
+    pnmtotiff, pnmtoxwd, pnmar- ith, pnmcat, pnmconvol, pnmcrop, pnmcut,
+    pnmdepth,  pnmenlarge,    pnmfile,    pnmflip,  pnmgamma,  pnmindex,
+    pnminvert,  pnmmargin,  pnmnoraw,   pnmpaste,  pnmrotate,  pnmscale,
+    pnmshear, pnmsmooth, pnmtile, ppm, pgm, pbm
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+1 bmptoppm
+     bmptoppm - convert a BMP file into a portable pixmap
+
+2 Synopsis
+     bmptoppm [bmpfile]
+
+2 Description
+     Reads a Microsoft Windows or OS/2 BMP file as  input.   Pro-
+     duces a portable pixmap as output.
+
+2 See_Also
+     ppmtobmp, ppm
+
+2 Author
+     Copyright (C) 1992 by David W. Sanderson.
+
+1 gouldtoppm
+     gouldtoppm - convert Gould scanner file into a portable pix-
+     map
+
+2 Synopsis
+     gouldtoppm [gouldfile]
+
+2 Description
+     Reads a file produced by the Gould scanner as  input.   Pro-
+     duces a portable pixmap as output.
+
+2 See_Also
+     ppm
+
+2 Author
+     Copyright(C) 1990 by Stephen Paul Lesniewski
+
+1 ilbmtoppm
+     ilbmtoppm - convert an ILBM file into a portable pixmap
+
+2 Synopsis
+     ilbmtoppm [-verbose] [ILBMfile]
+
+2 Description
+     Reads an IFF ILBM file as input.  Produces a portable pixmap
+     as output.  Supported ILBM types are:
+
+     Normal ILBMs with 1-16 planes.
+
+     Amiga Extra-Halfbrite (EHB)
+
+     Amiga Hold-and-modify (HAM) with 3-16 planes.
+
+     24 bit.
+
+     Color map (BMHD + CMAP chunk only, nPlanes = 0).
+
+     Unofficial direct color.
+          1-16 planes for each color component.
+
+     Chunks used:
+          BMHD, CMAP, CAMG (only HAM  &  EHB  flags  used),  BODY
+          unofficial DCOL chunk to identify direct color ILBM
+
+     Chunks ignored:
+          GRAB, DEST, SPRT, CRNG, CCRT, CLUT, DPPV, DRNG, EPSF
+
+     Other chunks (ignored but displayed in verbose mode):
+          NAME, AUTH, (c), ANNO, DPI
+
+     Unknown chunks are skipped.
+
+2 Options
+     -verbose
+          Give some informaton about the ILBM file.
+
+2 Bugs
+     Probably.
+
+2 References
+     Amiga ROM Kernel Reference Manual - Devices (3rd Ed.)
+     Addison Wesley, ISBN 0-201-56775-X
+
+2 See_Also
+     ppm(5), ppmtoilbm(1)
+
+2 Authors
+     Copyright (C) 1989 by Jef Poskanzer.
+     Modified June 1993 by Ingo Wilken
+     (Ingo.Wilken@informatik.uni-oldenburg.de)
+
+1 imgtoppm
+     imgtoppm - convert an Img-whatnot file into a portable  pix-
+     map
+
+2 Synopsis
+     imgtoppm [imgfile]
+
+2 Description
+     Reads an Img-whatnot file as  input.   Produces  a  portable
+     pixmap  as output.  The Img-whatnot toolkit is available for
+     FTP on venera.isi.edu, along with numerous  images  in  this
+     format.
+
+2 See_Also
+     ppm
+
+2 Author
+     Based on a simple conversion program posted to comp.graphics
+     by Ed Falk.
+
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 mtvtoppm
+     mtvtoppm - convert output from the MTV or  PRT  ray  tracers
+     into a portable pixmap
+
+2 Synopsis
+     mtvtoppm [mtvfile]
+
+2 Description
+     Reads an input  file  from  Mark  VanDeWettering's  MTV  ray
+     tracer.  Produces a portable pixmap as output.
+
+     The PRT raytracer also produces this format.
+
+2 See_Also
+     ppm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 pcxtoppm
+     pcxtoppm - convert a PCX file into a portable pixmap
+
+2 Synopsis
+     pcxtoppm [pcxfile]
+
+2 Description
+     Reads a PCX file as input.  Produces a  portable  pixmap  as
+     output.
+
+2 See_Also
+     ppmtopcx, ppm
+
+2 Author
+     Copyright (C) 1990 by Michael Davidson.
+
+1 pgmtoppm
+     pgmtoppm - colorize a portable graymap into a portable  pix-
+     map
+
+2 Synopsis
+     pgmtoppm colorspec [pgmfile]
+     pgmtoppm colorspec1-colorspec2 [pgmfile]
+     pgmtoppm -map mapfile [pgmfile]
+
+2 Description
+     Reads a portable graymap as input.  Colorizes it  by  multi-
+     plying the the gray values by specified color or colors, and
+     produces a portable pixmap as output.
+
+     If only one color is specified, black in the pgm file  stays
+     black  and  white  in  the pgm file turns into the specified
+     color in the ppm file.  If two colors (separated by a  dash)
+     are specified, then black gets mapped to the first color and
+     white gets mapped to the second.
+
+     The color can be specified in five ways:
+
+     o    A name, assuming that a pointer to an  X11-style  color
+          names file was compiled in.
+
+     o    An X11-style hexadecimal specifier: rgb:r/g/b, where  r
+          g and b are each 1- to 4-digit hexadecimal numbers.
+
+     o    An X11-style decimal specifier: rgbi:r/g/b, where  r  g
+          and b are floating point numbers between 0 and 1.
+
+     o    For backwards compatibility, an  old-X11-style  hexade-
+          cimal    number:    #rgb,   #rrggbb,   #rrrgggbbb,   or
+          #rrrrggggbbbb.
+
+     o    For  backwards  compatibility,  a  triplet  of  numbers
+          separated  by commas: r,g,b, where r g and b are float-
+          ing point numbers between 0 and  1.   (This  style  was
+          added before MIT came up with the similar rgbi style.)
+
+     Also, the -map flag lets you specify an entire  colormap  to
+     be  used.   The  mapfile  is  just a ppm file; it can be any
+     shape, all that matters is the colors in it and their order.
+     In  this case, black gets mapped into the first color in the
+     map file, and white gets mapped to the last.
+
+2 See_Also
+     rgb3toppm, ppmtopgm, ppmtorgb3, ppm, pgm
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 pi1toppm
+     pi1toppm - convert an Atari Degas .pi1 into a portable  pix-
+     map
+
+2 Synopsis
+     pi1toppm [pi1file]
+
+2 Description
+     Reads an Atari Degas .pi1 file as input.  Produces  a  port-
+     able pixmap as output.
+
+2 See_Also
+     ppmtopi1, ppm, pi3topbm, pbmtopi3
+
+2 Author
+     Copyright (C) 1991 by Steve Belczyk (seb3@gte.com)  and  Jef
+     Poskanzer.
+
+1 picttoppm
+     picttoppm - convert a Macintosh PICT file  into  a  portable
+     pixmap
+
+2 Synopsis
+     picttoppm [-verbose] [-fullres] [-noheader] [pictfile]
+
+2 Description
+     Reads a PICT file (version 1 or 2) and  outputs  a  portable
+     pixmap.   Useful  as  the first step in converting a scanned
+     image to something that can be displayed on Unix.
+
+2 Options
+     -fullres
+          Force any images in the PICT file to be output with  at
+          least  their full resolution.  A PICT file may indicate
+          that a contained image is to be scaled down before out-
+          put.   This  option forces images to retain their sizes
+          and prevent information loss.
+
+     -noheader
+          Do not skip the 512 byte header that is present on  all
+          PICT  files.   This  is  useful when you have PICT data
+          that was not stored in the data fork of a PICT file.
+
+     -verbose
+          Turns on verbose mode which prints a a whole  bunch  of
+          information  that  only  picttoppm  hackers really care
+          about.
+
+2 Bugs
+     The PICT file format is a general drawing format.  picttoppm
+     only  supports a small subset of its operations but is still
+     very useful for files produced  by  scanning  software.   In
+     particular,  text  added to a scanned image will be silently
+     ignored.
+
+2 See_Also
+     Inside Macintosh volume 5, ppmtopict, ppm
+
+2 Author
+     Copyright 1989 George Phillips
+
+1 pjtoppm
+     pjtoppm - convert an HP PaintJet file to a portable pixmap
+
+2 Synopsis
+     pjtoppm [paintjet]
+
+2 Description
+     Reads an HP PaintJet file as input and converts  it  into  a
+     portable  pixmap.  This was a quick hack to save some trees,
+     and it only handles a small subset of the paintjet commands.
+     In  particular,  it will only handle enough commands to con-
+     vert most raster image files.
+
+REFERENCES
+     HP PaintJet XL Color Graphics Printer User's Guide
+
+2 See_Also
+     ppmtopj
+
+2 Author
+     Copyright (C) 1991 by Christos Zoulas.
+
+1 ppm3d
+     ppm3d - convert two  portable  pixmap  into  a  red/blue  3d
+     glasses pixmap
+
+2 Synopsis
+     ppm3d leftppmfile rightppmfile [horizontal offset]
+
+2 Description
+     Reads two portable pixmaps as input.   Produces  a  portable
+     pixmap   as   output,   with   the   images  overlapping  by
+     horizontal offset
+
+     pixels in blue/red format.
+
+     horizontal offset defaults to 30 pixels.   Pixmaps  MUST  be
+     the same size.
+
+2 See_Also
+     ppm(5)
+
+2 Author
+     Copyright (C) 1993 by David K. Drum.
+
+1 ppmbrighten
+     ppmbrighten - change an images Saturation and Value from  an
+     HSV map
+
+2 Synopsis
+     ppmbrighten  [-n]  [-s  <+-  saturation>]  [-v  <+-  value>]
+     <ppmfile>
+
+2 Description
+     Reads a portable pixmap as input.  Converts the  image  from
+     RGB  space  to HSV space and changes the Value by <+- value>
+     as a percentage.  Likewise with  the  Saturation.   Doubling
+     the Value would involve
+
+     ppmbrighten -v 100
+
+     to add 100 percent to the Value.
+
+     The 'n' option normalizes the Value to exist between 0 and 1
+     (normalized).
+
+2 See_Also
+     pgmnorm, ppm
+
+2 Notes
+     This program does not change the number of colors.
+
+2 Author
+     Copyright (C) 1990 by Brian Moffet Copyright (C) 1989 by Jef
+     Poskanzer.
+
+     Permission  to  use,  copy,  modify,  and  distribute   this
+     software  and  its documentation for any purpose and without
+     fee is hereby granted, provided  that  the  above  copyright
+     notice  appear  in  all  copies and that both that copyright
+     notice and this permission notice appear in supporting docu-
+     mentation.   This  software  is  provided  "as  is"  without
+     express or implied warranty.
+
+1 ppmchange
+     ppmchange -  change  all  pixels  of  one  color  to another in a
+     portable pixmap
+
+2 Synopsis
+     ppmchange colorspec1 colorspec2 [ppmfile]
+
+2 Description
+     Reads  a portable  pixmap  as  input.    Changes  all  pixels  of
+     colorspec1 to colorspec2, leaving all others unchanged.
+
+     The color can be specified in five ways:
+
+     o    A name, assuming that a pointer to an  X11-style  color
+          names file was compiled in.
+
+     o    An X11-style hexadecimal specifier: rgb:r/g/b, where  r
+          g and b are each 1- to 4-digit hexadecimal numbers.
+
+     o    An X11-style decimal specifier: rgbi:r/g/b, where  r  g
+          and b are floating point numbers between 0 and 1.
+
+     o    For backwards compatibility, an  old-X11-style  hexade-
+          cimal    number:    #rgb,   #rrggbb,   #rrrgggbbb,   or
+          #rrrrggggbbbb.
+
+     o    For  backwards  compatibility,  a  triplet  of  numbers
+          separated  by commas: r,g,b, where r g and b are float-
+          ing point numbers between 0 and  1.   (This  style  was
+          added before MIT came up with the similar rgbi style.)
+
+2 See_Also
+     pgmtoppm(1), ppm(5)
+
+2 Author
+     Wilson H. Bent. Jr. (whb@usc.edu)
+
+1 ppmdim
+     ppmdim - dim a portable pixmap down to total blackness
+
+2 Synopsis
+     ppmdim dimfactor [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.    Diminishes its brightness by
+     the specified dimfactor down to total blackness.    The dimfactor
+     may be in the range from 0.0 (total  blackness, deep night, nada,
+     null, nothing) to 1.0 (original picture's brightness).
+
+     As pnmgamma does not do the brightness correction in  the  way  I
+     wanted it, this small program was written.
+
+     ppmdim is similar to ppmbrighten , but not exactly the same.
+
+2 See_Also
+     ppm(5), ppmflash(1), pnmgamma(1), ppmbrighten(1)
+
+2 Author
+     Copyright (C) 1993 by Frank Neumann
+
+1 ppmdist
+     ppmdist -  simplistic grayscale assignment for machine generated,
+     color images
+
+2 Synopsis
+     ppmdist [-intensity|-frequency] [ppmfile]
+
+2 Description
+     Reads a portable pixmap  as  input,  performs  a  simplistic
+     grayscale assignment intended for use with grayscale or bit-
+     map printers.
+
+     Often conversion from ppm to pgm will yield  an  image  with
+     contrast  too low for good printer output.  The program max-
+     imizes contrast between the gray levels output.
+
+     A ppm input of n colors is read, and a pgm of n gray  levels
+     is  written.   The  gray  levels  take on the values 0..n-1,
+     while maxval takes on n-1.
+
+     The mapping from color to stepped grayscale can be performed
+     in  order of input pixel intensity, or input pixel frequency
+     (number of repetitions).
+
+2 Options
+     Helpful only for images with a very small number of  colors.
+     Perhaps should have been an option to ppmtopgm.
+
+2 See_Also
+     ppmtopgm, ppmhist, ppm
+
+2 Author
+     Copyright (C) 1993 by Dan Stromberg.
+
+1 ppmdither
+     ppmdither - ordered dither for color images
+
+2 Synopsis
+     ppmdither [-dim dimension] [-red shades] [-green shades]  [-
+     blue shades] [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input, and applies  dithering  to
+     it to reduce the number of colors used down to the specified
+     number of shades for each primary.  The  default  number  of
+     shades is red=5, green=9, blue=5, for a total of 225 colors.
+     To convert the image to a binary  rgb  format  suitable  for
+     color  printers,  use  -red 2 -green 2 -blue 2.  The maximum
+     number of colors that can be used is 256 and can be computed
+     as the product of the number of red, green and blue shades.
+
+2 Options
+     -dim dimension
+                   The size of the dithering matrix.  Must  be  a
+                   power of 2.
+
+     -red shades   The number of red shades to be  used;  minimum
+                   of 2.
+
+     -green shades The number of green shades to be used; minimum
+                   of 2.
+
+     -blue shades  The number of blue shades to be used;  minimum
+                   of 2.
+
+2 See_Also
+     pnmdepth, ppmquant, ppm
+
+2 Author
+     Copyright (C) 1991 by Christos Zoulas.
+
+1 ppmflash
+     ppmflash - brighten a picture up to complete white-out
+
+2 Synopsis
+     ppmflash flashfactor [ppmfile]
+
+2 Description
+     Reads  a portable pixmap as input.  Increases its  brightness  by
+     the  specified  flashfactor  up to a total white-out image.   The
+     flashfactor  may  be  in  the  range from 0.0 (original picture's
+     brightness) to 1.0 (full white-out, The Second After).
+
+     As pnmgamma  does  not  do the brightness correction in the way I
+     wanted it, this small program was written.
+
+     This program is similar to ppmbrighten, but not exactly the same.
+
+2 See_Also
+     ppm(5), ppmdim(1), pnmgamma(1), ppmbrighten(1)
+
+2 Author
+     Copyright (C) 1993 by Frank Neumann
+
+1 ppmhist
+     ppmhist - print a histogram of a portable pixmap
+
+2 Synopsis
+     ppmhist [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Generates a histogram  of
+     the colors in the pixmap.
+
+2 See_Also
+     ppm, pgmhist
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 ppmmake
+     ppmmake - create a pixmap of a specified size and color
+
+2 Synopsis
+     ppmmake color width height
+
+2 Description
+     Produces a portable pixmap of the  specified  color,  width,
+     and height.
+
+     The color can be specified in five ways:
+
+     o    A name, assuming that a pointer to an  X11-style  color
+          names file was compiled in.
+
+     o    An X11-style hexadecimal specifier: rgb:r/g/b, where  r
+          g and b are each 1- to 4-digit hexadecimal numbers.
+
+     o    An X11-style decimal specifier: rgbi:r/g/b, where  r  g
+          and b are floating point numbers between 0 and 1.
+
+     o    For backwards compatibility, an  old-X11-style  hexade-
+          cimal    number:    #rgb,   #rrggbb,   #rrrgggbbb,   or
+          #rrrrggggbbbb.
+
+     o    For  backwards  compatibility,  a  triplet  of  numbers
+          separated  by commas: r,g,b, where r g and b are float-
+          ing point numbers between 0 and  1.   (This  style  was
+          added before MIT came up with the similar rgbi style.)
+
+2 See_Also
+     ppm, pbmmake
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 ppmmix
+     ppmmix - blend together two portable pixmaps
+
+2 Synopsis
+     ppmmix fadefactor ppmfile1 ppmfile2
+
+2 Description
+     Reads two portable pixmaps  as  input.  Mixes them together using
+     the specified fade factor.   The  fade factor may be in the range
+     from 0.0 (only ppmfile1's image data)  to  1.0  (only  ppmfile2's
+     image data).  Anything in between gains  a  smooth  blend between
+     the two images.
+
+     The two pixmaps must have the same size.
+
+2 See_Also
+     ppm(5)
+
+2 Author
+     Copyright (C) 1993 by Frank Neumann
+
+1 ppmquant
+     ppmquant - quantize the colors in  a  portable  pixmap  down to a
+     specified number
+
+2 Synopsis
+     ppmquant [-floyd|-fs] ncolors [ppmfile]
+     ppmquant [-floyd|-fs] -map mapfile [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Chooses ncolors colors to
+     best  represent  the  image, maps the existing colors to the
+     new ones, and writes a portable pixmap as output.
+
+     The quantization method is Heckbert's "median cut".
+
+     Alternately, you can skip the color-choosing step by  speci-
+     fying  your  own set of colors with the -map flag.  The map-
+     file is just a ppm file; it  can  be  any  shape,  all  that
+     matters is the colors in it.  For instance, to quantize down
+     to the 8-color IBM TTL color set, you might use:
+         P3
+         8 1
+         255
+           0   0   0
+         255   0   0
+           0 255   0
+           0   0 255
+         255 255   0
+         255   0 255
+           0 255 255
+         255 255 255
+     If you want to quantize one pixmap  to  use  the  colors  in
+     another  one,  just  use the second one as the mapfile.  You
+     don't have to reduce it down  to  only  one  pixel  of  each
+     color, just use it as is.
+
+     The -floyd/-fs flag enables a Floyd-Steinberg  error  diffu-
+     sion  step.   Floyd-Steinberg gives vastly better results on
+     images where the  unmodified  quantization  has  banding  or
+     other  artifacts, especially when going to a small number of
+     colors such as the above IBM set.   However,  it  does  take
+     substantially more CPU time, so the default is off.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 References
+     "Color Image Quantization for Frame Buffer Display" by  Paul
+     Heckbert, SIGGRAPH '82 Proceedings, page 297.
+
+2 See_Also
+     ppmquantall, pnmdepth, ppmdither, ppm
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 ppmrelief
+     ppmrelief - run a Laplacian relief filter on a portable pixmap
+
+2 Synopsis
+     ppmrelief [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Does a  Laplacian  relief
+     filter, and writes a portable pixmap as output.
+
+     The Laplacian relief filter is described in "Beyond  Photog-
+     raphy"  by  Holzmann,  equation  3.19.  It's a sort of edge-
+     detection.
+
+2 See_Also
+     pgmbentley, pgmoil, ppm
+
+2 Author
+     Copyright (C) 1990 by Wilson Bent (whb@hoh-2.att.com)
+
+1 ppmshift
+     ppmshift - shift lines of  a  portable  pixmap left or right by a
+     random amount
+
+2 Synopsis
+     ppmshift shift [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Shifts every row of image data
+     to the left or right by a certain  amount.  The 'shift' parameter
+     determines by how many pixels a row is to be shifted at most.
+
+     Another one of those effects I intended to use  for  MPEG  tests.
+     Unfortunately,  this  program will not help me here - it  creates
+     too  random patterns to be used for animations.  Still, it  might
+     give interesting results on still images.
+
+2 Example
+     Check  this  out:    Save your  favourite  model's  picture  from
+     something like alt.binaries.pictures.supermodels (ok, or from any
+     other  picture source), convert it to ppm, and  process  it  e.g.
+     like this, assuming the picture is 800x600 pixels:
+     
+       # take the upper half, and leave it like it is
+       pnmcut 0 0 800 300 cs.ppm >upper.ppm
+
+       # take the lower half, flip it upside down,  dim it and distort
+         it a little
+       pnmcut 0 300 800 300 cs.ppm | pnmflip -tb | ppmdim 0.7 |
+          ppmshift 10 >lower.ppm
+
+       # and concatenate the two pieces
+       pnmcat -tb upper.ppm lower.ppm >newpic.ppm  The  resulting
+     picture  looks  like the image being reflected on a water surface
+     with slight ripples.
+
+2 See_Also
+     ppm(5), pnmcut(1), pnmflip(1), ppmdim(1), pnmcat(1)
+
+2 Author
+     Copyright (C) 1993 by Frank Neumann
+
+1 ppmspread
+     ppmspread - displace  a  portable  pixmap's  pixels by  a  random
+     amount
+
+2 Synopsis
+     ppmspread amount [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Moves every pixel around a bit
+     relative to its original position.  amount determines by how many
+     pixels a pixel is to be moved around at most.
+
+     Pictures processed with this  filter  will  seem  to  be somewhat
+     dissolved or unfocussed (although they  appear  more  coarse than
+     images processed by something like pnmconvol ).
+
+2 See_Also
+     ppm(5), pnmconvol(1)
+
+2 Author
+     Copyright (C) 1993 by Frank Neumann
+
+1 ppmtoacad
+     ppmtoacad - convert portable pixmap to AutoCAD database or slide
+
+2 Synopsis
+     ppmtoacad [-dxb] [-poly] [-background colour] [-white] [-
+               aspect ratio] [-8] [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces an AutoCAD(Reg.)
+     slide  file or binary database import (.dxb) file as output.
+     If no ppmfile is specified,  input  is  read  from  standard
+     input.
+
+2 Options
+     -dxb An AutoCAD binary database import (.dxb) file is  writ-
+          ten.   This  file  is  read with the DXBIN command and,
+          once loaded, becomes part of  the  AutoCAD  geometrical
+          database  and  can  be viewed and edited like any other
+          object.  Each sequence of identical  pixels  becomes  a
+          separate  object  in  the  database; this can result in
+          very large AutoCAD drawing files.  However, if you want
+          to trace over a bitmap, it lets you zoom and pan around
+          the bitmap as you wish.
+
+     -poly
+          If the -dxb option is  not  specified,  the  output  of
+          ppmtoacad  is an AutoCAD slide file.  Normally each row
+          of pixels is represented by an AutoCAD line entity.  If
+          -poly  is  selected,  the pixels are rendered as filled
+          polygons.  If the slide is viewed  on  a  display  with
+          higher  resolution  than  the  source pixmap, this will
+          cause the pixels to  expand  instead  of  appearing  as
+          discrete  lines  against  the screen background colour.
+          Regrettably, this  representation  yields  slide  files
+          which  occupy  more  disc  space  and  take  longer  to
+          display.
+
+     -background colour
+          Most AutoCAD display drivers can be configured  to  use
+          any  available  colour  as the screen background.  Some
+          users perfer a black screen background,  others  white,
+          while splinter groups advocate burnt ocher, tawny puce,
+          and shocking grey.   Discarding  pixels  whose  closest
+          AutoCAD  colour  representation  is  equal to the back-
+          ground colour can substantially reduce the size of  the
+          AutoCAD  database  or  slide file needed to represent a
+          bitmap.  If no -background  colour  is  specified,  the
+          screen  background  colour is assumed to be black.  Any
+          AutoCAD colour number may be specified  as  the  screen
+          background;  colour  numbers are assumed to specify the
+          hues  defined  in  the  standard  AutoCAD  256   colour
+          palette.
+
+     -white
+          Since many AutoCAD users choose a  white  screen  back-
+          ground, this option is provided as a short-cut.  Speci-
+          fying -white is identical in effect to -background 7.
+
+     -aspect ratio
+          If the source pixmap had non-square pixels,  the  ratio
+          of  the pixel width to pixel height should be specified
+          as ratio.  The resulting slide or  .dxb  file  will  be
+          corrected  so that pixels on the AutoCAD screen will be
+          square.  For example, to correct an image  made  for  a
+          320x200 VGA/MCGA screen, specify -aspect 0.8333.
+
+     -8   Restricts the colours in the output file to the  8  RGB
+          shades.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 Bugs
+     AutoCAD has a fixed  palette  of  256  colours,  distributed
+     along  the  hue,  lightness,  and  saturation axes.  Pixmaps
+     which contain many nearly-identical colours, or colours  not
+     closely  approximated  by  AutoCAD's  palette, may be poorly
+     rendered.
+
+     ppmtoacad works best if the  system  displaying  its  output
+     supports the full 256 colour AutoCAD palette.  Monochrome, 8
+     colour, and 16 colour configurations will produce less  than
+     optimal results.
+
+     When creating a .dxb file or a slide  file  with  the  -poly
+     option, ppmtoacad finds both vertical and horizontal runs of
+     identical pixels  and  consolidates  them  into  rectangular
+     regions  to  reduce  the  size  of the output file.  This is
+     effective for images with large areas of constant colour but
+     it's no substitute for true raster to vector conversion.  In
+     particular, thin diagonal lines are not optimised at all  by
+     this process.
+
+     Output files can be huge.
+
+2 See_Also
+     AutoCAD Reference Manual: Slide File Format and Binary Draw-
+     ing Interchange (DXB) Files, ppm
+
+2 Author
+          John Walker
+          Autodesk SA
+          Avenue des Champs-Montants 14b
+          CH-2074 MARIN
+          Suisse/Schweiz/Svizzera/Svizra/Switzerland
+          Usenet:  kelvin@Autodesk.com
+          Fax:     038/33 88 15
+          Voice:   038/33 76 33
+
+     Permission  to  use,  copy,  modify,  and  distribute   this
+     software  and  its documentation for any purpose and without
+     fee is hereby granted, without any  conditions  or  restric-
+     tions.   This software is provided ``as is'' without express
+     or implied warranty.
+
+     AutoCAD and Autodesk are registered trademarks of  Autodesk,
+     Inc.
+
+1 ppmtobmp
+     ppmtobmp - convert a portable pixmap into a BMP file
+
+2 Synopsis
+     ppmtobmp [-windows] [-os2] [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces a Microsoft Win-
+     dows or OS/2 BMP file as output.
+
+2 Options
+     -windows
+          Tells the program to produce a  Microsoft  Windows  BMP
+          file.
+
+     -os2 Tells the program to produce an OS/2 BMP  file.   (This
+          is the default.)
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     bmptoppm, ppm
+
+2 Author
+     Copyright (C) 1992 by David W. Sanderson.
+
+1 ppmtogif
+     ppmtogif - convert a portable pixmap into a GIF file
+
+2 Synopsis
+     ppmtogif [-interlace] [-sort] [-map mapfile ] [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces a  GIF  file  as
+     output.
+
+2 Options
+     -interlace
+          Tells the program to produce an interlaced GIF file.
+
+     -sort
+          Produces a GIF file with a sorted color map.
+
+     -map mapfile
+
+          Uses the colors found in  the  mapfile  to  create  the
+          colormap  in  the  GIF file, instead of the colors from
+          ppmfile. The mapfile can be  any  ppm  file;  all  that
+          matters  is  the colors in it. If the colors in ppmfile
+          do not match those in mapfile , they are matched  to  a
+          "best match". A (much) better result can be obtained by
+          using the following filter in advance:
+
+          ppmquant -floyd -map mapfile
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     giftopnm, ppmquant, ppm
+
+2 Author
+     Based      on      GIFENCOD      by       David       Rowley
+     <mgardi@watdcsu.waterloo.edu>.  Lempel-Ziv compression based
+     on "compress".
+
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 ppmtoicr
+     ppmtoicr - convert a portable pixmap into NCSA ICR format
+
+2 Synopsis
+     ppmtoicr  [-windowname  name]  [-expand  expand]   [-display
+     display] [-rle] [ppmfile]
+
+2 Description
+     Reads a portable pixmap file as  input.   Produces  an  NCSA
+     Telnet  Interactive Color Raster graphic file as output.  If
+     ppmfile is not supplied, ppmtoicr will  read  from  standard
+     input.
+
+     Interactive Color Raster (ICR) is a protocol for  displaying
+     raster  graphics  on  workstation  screens.  The protocol is
+     implemented in NCSA Telnet for the  Macintosh  version  2.3.
+     The  ICR  protocol  shares  characteristics of the Tektronix
+     graphics terminal emulation protocol.  For  example,  escape
+     sequences are used to control the display.
+
+     ppmtoicr will output the appropriate sequences to  create  a
+     window  of  the  dimensions  of  the  input pixmap, create a
+     colormap of up to 256 colors on the display, then  load  the
+     picture data into the window.
+
+     Note that there is no icrtoppm tool - this transformation is
+     one way.
+
+2 Options
+     -windownamename
+                   Output will be displayed in name  (Default  is
+                   to use ppmfile or "untitled" if standard input
+                   is read.)
+
+     -expandexpand Output will be expanded on display  by  factor
+                   expand  (For  example, a value of 2 will cause
+                   four pixels to be displayed  for  every  input
+                   pixel.)
+
+     -displaydisplay
+                   Output will be displayed  on  screen  numbered
+                   display
+
+     -rle          Use run-length  encoded  format  for  display.
+                   (This  will  nearly always result in a quicker
+                   display, but may skew the colormap.)
+
+2 Examples
+     To display a ppm file using the protocol:
+         ppmtoicr ppmfile
+     This will create a window named ppmfile on the display  with
+     the  correct  dimensions  for ppmfile, create and download a
+     colormap of up to 256 colors, and download the picture  into
+     the window. The same effect may be achieved by the following
+     sequence:
+         ppmtoicr ppmfile > filename
+         cat filename
+     To display a GIF file using the protocol in a window  titled
+     after  the  input file, zoom the displayed image by a factor
+     of 2, and run-length encode the data:
+         giftopnm giffile | ppmtoicr -w giffile -r -e 2
+
+2 Bugs
+     The protocol uses frequent fflush calls to speed up display.
+     If  the output is saved to a file for later display via cat,
+     drawing will be much slower. In either case, increasing  the
+     Blocksize  limit  on  the display will speed up transmission
+     substantially.
+
+2 See_Also
+     ppm
+
+     NCSA Telnet for the Macintosh,  University  of  Illinois  at
+     Urbana-Champaign (1989)
+
+2 Author
+     Copyright     (C)      1990      by      Kanthan      Pillay
+     (svpillay@Princeton.EDU), Princeton University Computing and
+     Information Technology.
+
+1 ppmtoilbm
+     ppmtoilbm - convert a portable pixmap into an ILBM file
+
+2 Synopsis
+     ppmtoilbm [-maxplanes|-mp  N]  [-fixplanes|-fp  N]  [-ham6|-
+     ham8]   [-dcbits|-dcplanesrg   [-normal|-hamif|-hamforce   -
+     dcif|-dcforce|-cmaponly] [-ecs|-aga] [-mapppmfile] [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces an ILBM file  as
+     output.  Supported ILBM types are:
+
+     Normal ILBMs with 1-16 planes.
+
+     Amiga Hold-and-modify (HAM) with 3-16 planes.
+
+     24 bit.
+
+     Color map (BMHD + CMAP chunk only, nPlanes = 0).
+
+     Unofficial direct color.
+          1-16 planes for each color component.
+
+     Chunks written:
+          BMHD, CMAP, CAMG (only for HAM), BODY (not for colormap
+          files) unofficial DCOL chunk for direct color ILBM
+
+2 Options
+     Options marked with (*) can be prefixed with  a  "no",  e.g.
+     "-nohamif". All options can be abbreviated to their shortest
+     unique prefix.
+
+     -maxplanes | -mp n
+          (default 5, minimum 1, maximum 16)  Maximum  planes  to
+          write  in  a  normal  ILBM.  If the pixmap does not fit
+          into <n> planes, ppmtoilbm writes a HAM file (if -hamif
+          is  used),  a 24bit file (if -24if is used) or a direct
+          color file (if -dcif is used) or aborts with an error.
+
+     -fixplanes | -fp n
+          (min 1, max 16) If a normal ILBM is  written,  it  will
+          have exactly <n> planes.
+
+     -hambits | -hamplanes n
+          (default 6, min 3, max 16) Select number of planes  for
+          HAM picture.  The current Amiga hardware supports 6 and
+          8 planes, so for now you should only use this values.
+
+     -normal (default)
+          Turns  off   -hamif/-24if/-dcif,   -hamforce/-24force/-
+          dcforce and -cmaponly.
+
+     -hamif (*)
+
+     -24if (*)
+
+     -dcif (*)
+          Write a HAM/24bit/direct color file if the pixmap  does
+          not fit into <maxplanes> planes.
+
+     -hamforce (*)
+
+     -24force (*)
+
+     -dcforce (*)
+          Write a HAM/24bit/direct color file.
+
+     -dcbits | -dcplanes r g b
+          (default 5, min 1, max 16).  Select number of bits  for
+          red, green & blue in a direct color ILBM.
+
+     -ecs (default)
+          Shortcut for: -hamplanes 6 -maxplanes 5
+
+     -aga
+
+     Shortcut for: -hamplanes 8 -maxplanes 8
+
+     -ham6
+
+     Shortcut for: -hamplanes 6 -hamforce
+
+     -ham8
+          Shortcut for: -hamplanes 8 -hamforce
+
+     -map ppmfile
+          Write a normal ILBM using the colors  in  <ppmfile>  as
+          the  colormap.  The  colormap  file also determines the
+          number of planes, a -maxplanes or -fixplanes option  is
+          ignored.
+
+     -cmaponly
+          Write a colormap file: only BMHD and  CMAP  chunks,  no
+          BODY chunk, nPlanes = 0.
+
+2 Bugs
+     Needs a real colormap selection algorithm for HAM  pictures,
+     instead of using a grayscale colormap.
+
+2 References
+     Amiga ROM Kernel Reference Manual - Devices (3rd Ed.)
+     Addison Wesley, ISBN 0-201-56775-X
+
+2 See_Also
+     ppm(5), ilbmtoppm(1)
+
+2 Authors
+     Copyright (C) 1989 by Jef Poskanzer.
+     Modified August 1993 by Ingo Wilken
+    (Ingo.Wilken@informatik.uni-oldenburg.de)
+
+1 ppmtomitsu
+     ppmtomitsu - convert a portable pixmap to a Mitsubishi S340-10 file
+
+2 Synopsis
+     ppmtomitsu [-sharpness val] [-enlarge val] [-media string]
+                [-copy val] [-dpi300] [-tiny] [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input and  converts  it  into  a  format
+     suitable  to  be printed by a Mitsubishi S340-10  printer,  or  any
+     other Mitsubishi color sublimation printer.
+
+     The  Mitsubishi  S340-10  Color  Sublimation printer supports 24bit
+     color.  Images of the available sizes take so long to transfer that
+     there is a  fast  method,  employing a lookuptable, that ppmtomitsu
+     will use if there  is  a  maximum  of  256  colors  in  the pixmap.
+     ppmtomitsu will try to position  your  image  to  the center of the
+     paper, and will rotate your image  for  you if xsize is larger than
+     ysize.  If your image is larger  than  the media allows, ppmtomitsu
+     will quit with an error message.  (We  decided  that the media were
+     too expensive to have careless users produce misprints.) Once  data
+     transmission  has started, the job can't be stopped in a  sane  way
+     without resetting the  printer.    The  printer understands putting
+     together images in the printers memory;  ppmtomitsu doesn't utilize
+     this as pnmcat etc provide  the same functionality and let you view
+     the  result  on-screen, too.  The  S340-10  is  the  lowest  common
+     denominator  printer;  for higher resolution printers  there's  the
+     dpi300 option.  The other printers also support  higher  values for
+     enlarge eg., but I don't think that's essential enough to warrant a
+     change in the program.
+
+     -sharpness 1-4
+          'sharpness' designation.    Default  is  to  use  the  current
+          sharpness.
+
+     -enlarge 1-3
+          Enlarge by a factor; Default is 1 (no enlarge)
+
+     -media A, A4, AS, A4S
+          Designate the media  you're  using.    Default is 1184 x 1350,
+          which will fit on any media.  A  is  1216 x 1350, A4 is 1184 x
+          1452, AS is 1216 x 1650 and A4S is 1184 x 1754.    A  warning:
+          If you specify a  different  media  than the printer currently
+          has, the printer will wait until  you put in the correct media
+          or switch it off.
+
+     -copy 1-9
+          The number of copies to produce. Default is 1.
+
+     -dpi300
+          Double the number of allowed pixels for  a S3600-30 Printer in
+          S340-10 compatibility mode.  (The S3600-30 has 300 dpi).
+
+     -tiny
+          Memory-safing, but always slow.  The printer will get the data
+          line-by-line in 24bit.  It's probably a good idea to  use this
+          if your machine starts paging a lot without this option.
+
+2 References
+     Mitsubishi Sublimation Full Color Printer S340-10 Specifications of
+     Parallel Interface LSP-F0232F
+
+2 See_Also
+     ppmquant(1), pnmscale(1), ppm(5)
+
+2 Bugs
+     We didn't find any - yet.  (Besides, they're called features anyway
+     :-) If you should find one, my email-adress is below.
+
+2 Author
+     Copyright (C) 1992, 93  by  S.Petra  Zeidler,  MPIfR Bonn, Germany.
+     (spz@specklec.mpifr-bonn.mpg.de)
+
+1 ppmtopcx
+     ppmtopcx - convert a portable pixmap into a PCX file
+
+2 Synopsis
+     ppmtopcx [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces a  PCX  file  as
+     output.
+
+2 See_Also
+     pcxtoppm, ppm
+
+2 Author
+     Copyright (C) 1990 by Michael Davidson.
+
+1 ppmtopgm
+     ppmtopgm - convert a portable pixmap into a portable graymap
+
+2 Synopsis
+     ppmtopgm [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces a portable gray-
+     map  as  output.   The quantization formula used is .299 r +
+     .587 g + .114 b.
+
+     Note that although there is a pgmtoppm program,  it  is  not
+     necessary  for  simple  conversions from pgm to ppm, because
+     any ppm program can read pgm (and pbm ) files automagically.
+     pgmtoppm  is for colorizing a pgm file.  Also, see ppmtorgb3
+     for a different way of converting color to gray.
+
+2 QUOTE
+     Cold-hearted orb that rules the night
+     Removes the colors from our sight
+     Red is gray, and yellow white
+     But we decide which is right
+     And which is a quantization error.
+
+2 See_Also
+     pgmtoppm, ppmtorgb3, rgb3toppm, ppm, pgm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 ppmtopi1
+     ppmtopi1 - convert a portable pixmap  into  an  Atari  Degas
+     .pi1 file
+
+2 Synopsis
+     ppmtopi1 [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces an  Atari  Degas
+     .pi1 file as output.
+
+2 See_Also
+     pi1toppm, ppm, pbmtopi3, pi3topbm
+
+2 Author
+     Copyright (C) 1991 by Steve Belczyk (seb3@gte.com)  and  Jef
+     Poskanzer.
+
+1 ppmtopict
+     ppmtopict - convert a portable pixmap into a Macintosh  PICT
+     file
+
+2 Synopsis
+     ppmtopict [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces a Macintosh PICT
+     file as output.
+
+     The generated file is only the data fork of a picture.   You
+     will  need  a program such as mcvert to generate a Macbinary
+     or a BinHex file that contains the necessary information  to
+     identify the file as a PICT file to MacOS.
+
+     Even though PICT supports 2 and 4 bits per pixel,  ppmtopict
+     always generates an 8 bits per pixel file.
+
+2 Bugs
+     The picture size field is only correct if the output is to a
+     file  since  writing  into this field requires seeking back-
+     wards on a file.  However the PICT  documentation  seems  to
+     suggest  that  this field is not critical anyway since it is
+     only the lower 16 bits of the picture size.
+
+2 See_Also
+     picttoppm, ppm, mcvert
+
+2 Author
+     Copyright (C) 1990 by Ken Yap <ken@cs.rocester.edu>.
+
+1 ppmtopj
+     ppmtopj - convert a portable pixmap to an HP PaintJet file
+
+2 Synopsis
+     ppmtopj  [-gamma  val]  [-xpos  val]  [-ypos   val]   [-back
+     dark|lite]         [-rle]         [-center]         [-render
+     none|snap|bw|dither|diffuse|monodither|monodiffuse|clusterdither|monoclusterdither]
+     [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input and converts it into a for-
+     mat suitable to be printed by an HP PaintJet printer.
+
+     For best results, the input file should be  in  8-color  RGB
+     form;  i.e. it should have only the 8 binary combinations of
+     full-on and full-off primaries.  You could get this by send-
+     ing  the  input  file  through ppmquant -map with a map file
+     such as:
+         P3
+         8 1
+         255
+         0 0 0      255 0 0    0 255 0    0 0 255
+         255 255 0  255 0 255  0 255 255  255 255 255
+     Or else you could use use ppmdither -red 2 -green 2 -blue
+
+2 Options
+     -rle          Run length encode the image.  (This can result
+                   in larger images)
+
+     -back         Enhance the foreground by  indicating  if  the
+                   background  is  light  or dark compated to the
+                   foreground.
+
+     -render alg   Use an internal rendering  algorithm  (default
+                   dither).
+
+     -gamma int    Gamma correct  the  image  using  the  integet
+                   parameter as a gamma (default 0).
+
+     -center       Center the image to an 8.5 by 11 page
+
+     -xpos pos     Move by pos pixels in the x direction.
+
+     -ypos pos     Move by pos pixels in the y direction.
+
+2 References
+     HP PaintJet XL Color Graphics Printer User's Guide
+
+2 See_Also
+     pnmdepth, ppmquant, ppmdither, ppm
+
+2 Bugs
+     Most of the options have not  been  tested  because  of  the
+     price of the paper.
+
+2 Author
+     Copyright (C) 1991 by Christos Zoulas.
+
+1 ppmtopuzz
+     ppmtopuzz - convert a portable pixmap into an  X11  "puzzle"
+     file
+
+2 Synopsis
+     ppmtopuzz [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces an X11  "puzzle"
+     file  as output.  A "puzzle" file is for use with the puzzle
+     program included with the  X11  distribution  -  puzzle's  -
+     picture flag lets you specify an image file.
+
+2 See_Also
+     ppm, puzzle
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 ppmtorgb3
+     ppmtorgb3 - separate a portable pixmap into  three  portable
+     graymaps
+
+2 Synopsis
+     ppmtorgb3 [ppmfile]
+
+2 Description
+     Reads a portable pixmap as  input.   Writes  three  portable
+     graymaps as output, one each for red, green, and blue.
+
+     The output filenames are constructed  by  taking  the  input
+     filename, stripping off any extension, and appending ".red",
+     ".grn", and ".blu".  For example, separating lenna.ppm would
+     result in lenna.red, lenna.grn, and lenna.blu.  If the input
+     comes from stdin, the names are noname.red, noname.grn,  and
+     noname.blu.
+
+2 See_Also
+     rgb3toppm, ppmtopgm, pgmtoppm, ppm, pgm
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 ppmtosixel
+     ppmtosixel - convert a portable pixmap into DEC sixel format
+
+2 Synopsis
+     ppmtosixel [-raw] [-margin] [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces  sixel  commands
+     (SIX)  as  output.  The output is formatted for color print-
+     ing, e.g. for a DEC LJ250 color inkjet printer.
+
+     If RGB values from the PPM file do not have maxval=100,  the
+     RGB  values  are  rescaled.   A printer control header and a
+     color assignment table begin the SIX file.   Image  data  is
+     written  in  a compressed format by default.  A printer con-
+     trol footer ends the image file.
+
+2 Options
+     -raw If specified, each pixel will be  explicitly  described
+          in  the  image  file.  If -raw is not specified, output
+          will default to compressed format  in  which  identical
+          adjacent  pixels  are  replaced  by "repeat pixel" com-
+          mands.  A raw file  is  often  an  order  of  magnitude
+          larger than a compressed file and prints much slower.
+
+     -margin
+          If -margin is not specified, the image will be start at
+          the  left  margin  (of the window, paper, or whatever).
+          If -margin is specified, a 1.5 inch  left  margin  will
+          offset the image.
+
+2 Printing
+     Generally, sixel files must reach  the  printer  unfiltered.
+     Use the lpr -x option or cat filename > /dev/tty0?.
+
+2 Bugs
+     Upon rescaling, truncation of the least significant bits  of
+     RGB values may result in poor color conversion.  If the ori-
+     ginal PPM  maxval  was  greater  than  100,  rescaling  also
+     reduces  the  image depth.  While the actual RGB values from
+     the ppm file are more or less retained, the color palette of
+     the  LJ250  may  not  match the colors on your screen.  This
+     seems to be a printer limitation.
+
+2 See_Also
+     ppm
+
+2 Author
+     Copyright (C) 1991 by Rick Vinci.
+
+1 ppmtotga
+     ppmtotga - convert portable pixmap into a  TrueVision  Targa
+     file
+
+2 Synopsis
+     ppmtotga [-mono|-cmap|-rgb] [-norle] [ppmfile]
+
+2 Description
+     Reads a portable pixmap as  input.   Produces  a  TrueVision
+     Targa file as output.
+
+2 Options
+     -mono
+          Forces Targa file to  be  of  type  8  bit  monochrome.
+          Input must be a portable bitmap or a portable graymap.
+
+     -cmap
+          Forces Targa file to be of  type  24  bit  colormapped.
+          Input  must be a portable bitmap, a portable graymap or
+          a portable pixmap containing no more than 256  distinct
+          colors.
+
+     -rgb Forces Targa file to be of type 24 bit unmapped color.
+
+     -norle
+          Disables run-length encoding, in case you have a  Targa
+          reader which can't read run-length encoded files.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.   If  no  file  type  is specified the most highly con-
+     stained compatible type is used, where  monochrome  is  more
+     constained than colormapped which is in turn more constained
+     than unmapped.
+
+2 Bugs
+     Does not support all  possible  Targa  file  types.   Should
+     really be in PNM, not PPM.
+
+2 See_Also
+     tgatoppm, ppm
+
+2 Author
+     Copyright (C) 1989, 1991 by Mark Shand and Jef Poskanzer.
+
+1 ppmtouil
+     ppmtouil - convert a portable pixmap into a Motif  UIL  icon
+     file
+
+2 Synopsis
+     ppmtouil [-name uilname] [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces a Motif UIL icon
+     file as output.
+
+     If the program was compiled with an rgb database  specified,
+     and  a RGB value from the ppm input matches a RGB value from
+     the database, then the corresponding color name mnemonic  is
+     printed  in the UIL's colormap.  If no rgb database was com-
+     piled in, or if the RGB values don't match, then  the  color
+     will  be  printed  with  the  #RGB,  #RRGGBB, #RRRGGGBBB, or
+     #RRRRGGGGBBBB hexadecimal format.
+
+2 Options
+     -name
+          Allows you  to  specify  the  prefix  string  which  is
+          printed in the resulting UIL output.  If not specified,
+          will default to the filename (without extension) of the
+          ppmfile  argument.   If  -name  is not specified and no
+          ppmfile is specified (i.e.  piped  input),  the  prefix
+          string will default to the string "noname".
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 See_Also
+     ppm
+
+2 Author
+     Converted by Jef Poskanzer from ppmtoxpm.c, which  is  Copy-
+     right (C) 1990 by Mark W. Snitily
+
+1 ppmtoxpm
+     ppmtoxpm - convert a portable pixmap into an X11 pixmap
+
+2 Synopsis
+     ppmtoxpm [-name xpmname] [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces X11 pixmap (XPM)
+     as output.
+
+     If the program was compiled with an rgb database  specified,
+     and  a RGB value from the ppm input matches a RGB value from
+     the database, then the corresponding color name mnemonic  is
+     printed  in the XPM's colormap.  If no rgb database was com-
+     piled in, or if the RGB values don't match, then  the  color
+     will  be  printed  with  the  #RGB,  #RRGGBB, #RRRGGGBBB, or
+     #RRRRGGGGBBBB hexadecimal format.
+
+2 Options
+     -name
+          Allows you  to  specify  the  prefix  string  which  is
+          printed in the resulting XPM output.  If not specified,
+          will default to the filename (without extension) of the
+          ppmfile  argument.   If  -name  is not specified and no
+          ppmfile is specified (i.e.  piped  input),  the  prefix
+          string will default to the string "noname".
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 Example
+     To     convert     the     file     "dot"     (found      in
+     /usr/include/X11/bitmaps), from xbm to xpm one could specify
+
+          xbmtopbm dot | ppmtoxpm -name dot
+
+2 Bugs
+     An option to match the closest  (rather  than  exact)  color
+     name  mnemonic  from  the  rgb  text  would  be  a desirable
+     enhancement.
+
+     Truncation of the least significant bits of a RGB value  may
+     result  in  nonexact  matches  when  performing  color  name
+     mnemonic lookups.
+
+2 See_Also
+     xpmtoppm, ppm
+
+2 Author
+     Copyright (C) 1990 by Mark W. Snitily.
+
+1 ppmtoyuv
+     ppmtoyuv - convert a portable pixmap into an Abekas YUV file
+
+2 Synopsis
+     ppmtoyuv [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces  an  Abekas  YUV
+     file as output.
+
+2 See_Also
+     yuvtoppm, ppm
+
+2 Author
+     Marc Boucher <marc@PostImage.COM>, based on Example  Conver-
+     sion  Program,  A60/A64 Digital Video Interface Manual, page
+     69.
+
+     Copyright (C) 1991 by DHD PostImage Inc.
+
+     Copyright (C) 1987 by Abekas Video Systems Inc.
+
+1 ppmtoyuvsplit
+     ppmtoyuvsplit - convert a portable pixmap into 3  subsampled
+     raw YUV files
+
+2 Synopsis
+     ppmtoyuvsplit basename [ppmfile]
+
+2 Description
+     Reads a portable pixmap as  input.   Produces  3  raw  files
+     basename.Y,  basename.U  and  basename.V  as  output.  These
+     files are the subsampled raw YUV representation of the input
+     pixmap,  as required by the Stanford MPEG codec. The subsam-
+     pling is done by arithmetic mean of  4  pixels  colors  into
+     one.  The  YUV  values  are scaled according to CCIR.601, as
+     assumed by MPEG.
+
+2 See_Also
+     mpeg, ppm
+
+2 Author
+     Copyright (C) 1993 by  Andre  Beck.  (Andreeck@IRS.Inf.TU-
+     Dresden.de)
+
+     Based on ppmtoyuv.c
+
+1 qrttoppm
+     qrttoppm - convert output from the QRT  ray  tracer  into  a
+     portable pixmap
+
+2 Synopsis
+     qrttoppm [qrtfile]
+
+2 Description
+     Reads a QRT file as input.  Produces a  portable  pixmap  as
+     output.
+
+2 See_Also
+     ppm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 rawtoppm
+     rawtoppm - convert raw RGB bytes into a portable pixmap
+
+2 Synopsis
+     rawtoppm [-headerskip N]  [-rowskip  N]  [-rgb|-rbg|-grb  |-
+     gbr|-brg|-bgr ] [-interpixel|-interrow] width height [image-
+     data]
+
+2 Description
+     Reads raw RGB bytes as input.  Produces a portable pixmap as
+     output.   The  input  file  is  just RGB bytes.  You have to
+     specify the width and height on the command line, since  the
+     program  obviously can't get them from the file.  The maxval
+     is assumed to be 255.  If  the  resulting  image  is  upside
+     down, run it through pnmflip -tb .
+
+2 Options
+     -headerskip
+          If the file has a header, you can use this flag to skip
+          over it.
+
+     -rowskip
+          If there is padding at the ends of the  rows,  you  can
+          skip it with this flag.
+
+     -rgb -rbg -grb -gbr -brg -bgr
+          These flags let you  specify  alternate  color  orders.
+          The default is -rgb.
+
+     -interpixel -interrow
+          These flags let you specify how the colors  are  inter-
+          leaved.   The  default  is  -interpixel, meaning inter-
+          leaved by pixel.  A byte of red, a byte of green, and a
+          byte  of  blue,  or whatever color order you specified.
+          -interrow means interleaved by row - a row  of  red,  a
+          row  of  green,  a  row  of blue, assuming standard rgb
+          color order.  An -interplane flag  - all the  red  pix-
+          els,  then  all the green, then all the blue - would be
+          an obvious extension,  but  is  not  implemented.   You
+          could  get  the  same effect by splitting the file into
+          three parts (perhaps using dd), turning each part  into
+          a  PGM file with rawtopgm, and then combining them with
+          rgb3toppm.
+
+2 See_Also
+     ppm, rawtopgm, rgb3toppm, pnmflip
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 rgb3toppm
+     rgb3toppm - combine three portable graymaps into  one  port-
+     able pixmap
+
+2 Synopsis
+     rgb3toppm redpgmfile greenpgmfile bluepgmfile
+
+2 Description
+     Reads three portable graymaps as input.  Combines  them  and
+     produces one portable pixmap as output.
+
+2 See_Also
+     ppmtorgb3, pgmtoppm, ppmtopgm, ppm, pgm
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 sldtoppm
+     sldtoppm - convert an AutoCAD slide  file  into  a  portable
+     pixmap
+
+2 Synopsis
+     sldtoppm [-adjust] [-dir] [-height|-ysize s] [-info] [-
+              lib|-Lib name] [-scale s] [-verbose] [-width|-xsize
+              s] [slidefile]
+
+2 Description
+     Reads an AutoCAD(Reg.) slide file  and  outputs  a  portable
+     pixmap.   If  no  slidefile is specified, input is read from
+     standard input.  The ppmdraw library is used to convert  the
+     vector  and  polygon information in the slide file to a pix-
+     map; see the file ppmdraw.h for details on this package.
+
+2 Options
+     -adjust
+          If the display on which the slide file was created  had
+          non-square  pixels,  when  the  slide is processed with
+          sldtoppm and the -adjust option  is  not  present,  the
+          following warning will appear:
+            Warning - pixels on source screen were non-square.
+            Specifying -adjust will correct image width  to  com-
+            pensate.
+          Specifying the -adjust option causes sldtoppm to  scale
+          the  width of the image so that pixels in the resulting
+          portable pixmap are square (and hence circles appear as
+          true  circles, not ellipses).  The scaling is performed
+          in  the  vector  domain,  before  scan  converting  the
+          objects.   The  results  are,  therefore,  superior  in
+          appearance to what you'd obtain were you to perform the
+          equivalent  scaling  with pnmscale after the bitmap had
+          been created.
+
+     -dir The input is assumed to be  an  AutoCAD  slide  library
+          file.  A directory listing each slide in the library is
+          printed on standard error.
+
+     -height size
+          Scales the image in the vector domain  so  it  is  size
+          pixels  in  height.   If  no -width or -xsize option is
+          specified, the width will be adjusted to  preserve  the
+          pixel aspect ratio.
+
+     -info
+          Dump the slide file header on standard error,  display-
+          ing  the  original  screen  size and aspect ratio among
+          other information.
+
+     -lib name
+          Extracts the slide with the given name from  the  slide
+          library  given  as  input.   The specified name is con-
+          verted to upper case.
+
+     -Lib name
+          Extracts the slide with the given name from  the  slide
+          library  given  as  input.  The name is used exactly as
+          specified; it is not converted to upper case.
+
+     -scale s
+          Scales the image by factor s, which may be any floating
+          point  value  greater than zero.  Scaling is done after
+          aspect ratio adjustment, if any.  Since scaling is per-
+          formed  in the vector domain, before rasterisation, the
+          results look much better than  running  the  output  of
+          sldtoppm through pnmscale.
+
+     -verbose
+          Dumps the slide file header and lists every vector  and
+          polygon in the file on standard error.
+
+     -width size
+          Scales the image in the vector domain  so  it  is  size
+          pixels  wide.  If no -height or -ysize option is speci-
+          fied, the height will be adjusted to preserve the pixel
+          aspect ratio.
+
+     -xsize size
+          Scales the image in the vector domain  so  it  is  size
+          pixels  wide.  If no -height or -ysize option is speci-
+          fied, the height will be adjusted to preserve the pixel
+          aspect ratio.
+
+     -ysize size
+          Scales the image in the vector domain  so  it  is  size
+          pixels  in  height.   If  no -width or -xsize option is
+          specified, the width will be adjusted to  preserve  the
+          pixel aspect ratio.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 Bugs
+     Only Level 2 slides are converted.  Level 1 format has  been
+     obsolete  since the advent of AutoCAD Release 9 in 1987, and
+     was not portable across machine architectures.
+
+     Slide library items with names containing  8  bit  (such  as
+     ISO)  or  16  bit (Kanji, for example) characters may not be
+     found when chosen with the -lib option unless  sldtoppm  has
+     been built with character set conversion functions appropri-
+     ate to the locale.  You  can  always  retrieve  slides  from
+     libraries  regardless of the character set by using the -Lib
+     option and specifying the precise name  of  library  member.
+     Use  the  -dir  option  to  list  the slides in a library if
+     you're unsure of the exact name.
+
+2 See_Also
+     AutoCAD Reference Manual: Slide  File  Format,  pnmscale,
+     ppm
+
+2 Author
+          John Walker
+          Autodesk SA
+          Avenue des Champs-Montants 14b
+          CH-2074 MARIN
+          Suisse/Schweiz/Svizzera/Svizra/Switzerland
+          Usenet:  kelvin@Autodesk.com
+          Fax:     038/33 88 15
+          Voice:   038/33 76 33
+
+     Permission  to  use,  copy,  modify,  and  distribute   this
+     software  and  its documentation for any purpose and without
+     fee is hereby granted, without any  conditions  or  restric-
+     tions.   This software is provided ``as is'' without express
+     or implied warranty.
+
+     AutoCAD and Autodesk are registered trademarks of  Autodesk,
+     Inc.
+
+1 spctoppm
+     spctoppm - convert an Atari compressed Spectrum file into  a
+     portable pixmap
+
+2 Synopsis
+     spctoppm [spcfile]
+
+2 Description
+     Reads an Atari compressed Spectrum file as input.   Produces
+     a portable pixmap as output.
+
+2 See_Also
+     sputoppm, ppm
+
+2 Author
+     Copyright (C) 1991 by Steve Belczyk (seb3@gte.com)  and  Jef
+     Poskanzer.
+
+1 sputoppm
+     sputoppm - convert an Atari uncompressed Spectrum file  into
+     a portable pixmap
+
+2 Synopsis
+     sputoppm [spufile]
+
+2 Description
+     Reads an Atari uncompressed Spectrum file  as  input.   Pro-
+     duces a portable pixmap as output.
+
+2 See_Also
+     spctoppm, ppm
+
+2 Author
+     Copyright (C) 1991 by Steve Belczyk (seb3@gte.com)  and  Jef
+     Poskanzer.
+
+1 tgatoppm
+     tgatoppm - convert TrueVision Targa  file  into  a  portable
+     pixmap
+
+2 Synopsis
+     tgatoppm [-debug] [tgafile]
+
+2 Description
+     Reads a TrueVision Targa file as input.  Produces a portable
+     pixmap as output.
+
+2 Options
+     -debug
+          Causes the header information to be dumped to stderr.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.  Should really be in PNM, not PPM.
+
+2 See_Also
+     ppmtotga, ppm
+
+2 Author
+     Partially based on tga2rast, version 1.0,  by  Ian  J.  Mac-
+     Phedran.
+
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 ximtoppm
+     ximtoppm - convert an Xim file into a portable pixmap
+
+2 Synopsis
+     ximtoppm [ximfile]
+
+2 Description
+     Reads an Xim file as input.  Produces a portable  pixmap  as
+     output.   The Xim toolkit is included in the contrib tree of
+     the X.V11R4 release.
+
+2 See_Also
+     ppm
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 xpmtoppm
+     xpmtoppm - convert an X11 pixmap into a portable pixmap
+
+2 Synopsis
+     xpmtoppm [xpmfile]
+
+2 Description
+     Reads an X11 pixmap (XPM) as  input.   Produces  a  portable
+     pixmap as output.
+
+2 See_Also
+     ppmtoxpm, ppm
+
+2 Author
+     Copyright (C) 1991 by Jef Poskanzer.
+
+1 yuvtoppm
+     yuvtoppm - convert Abekas YUV bytes into a portable pixmap
+
+2 Synopsis
+     yuvtoppm width height [imagedata]
+
+2 Description
+     Reads raw Abekas YUV bytes as input.   Produces  a  portable
+     pixmap  as  output.   The input file is just YUV bytes.  You
+     have to specify the width and height on  the  command  line,
+     since  the  program  obviously can't get them from the file.
+     The maxval is assumed to be 255.
+
+2 See_Also
+     ppmtoyuv, ppm
+
+2 Author
+     Marc Boucher <marc@PostImage.COM>, based on Example  Conver-
+     sion  Program,  A60/A64 Digital Video Interface Manual, page
+     69.
+
+     Copyright (C) 1991 by DHD PostImage Inc.
+
+     Copyright (C) 1987 by Abekas Video Systems Inc.
+
+1 yuvsplittoppm
+     yuvplittoppm - convert a Y- an U- and a V-file into a  port-
+     able pixmap.
+
+2 Synopsis
+     yuvsplittoppm basename width height [-ccir601]
+
+2 Description
+     Reads three files, containing the YUV components, as  input.
+     These  files  are  basename .Y,  basename.U and basename.V .
+     Produces a portable pixmap on stdout.
+
+     Since the YUV files are raw files, the dimensions width  and
+     height must be specified on the command line.
+
+2 Options
+     -ccir601
+          Assumes that the  YUV  triplets  are  scaled  into  the
+          smaller  range  of  the CCIR 601 (MPEG) standard. Else,
+          the JFIF (JPEG) standard is assumed.
+
+2 See_Also
+     ppmtoyuvsplit, yuvtoppm, ppm
+
+2 Author
+     Marcel    Wijkstra    <wijkstra@fwi.uva.nl>,    based     on
+     ppmtoyuvsplit.
+
+1 ppmforge
+     ppmforge - fractal forgeries of clouds, planets, and  starry
+     skies
+
+2 Synopsis
+     ppmforge [-clouds] [-night] [-dimension dimen] [-hour hour]
+              [-inclination|-tilt angle] [-mesh size] [-power
+              factor] [-glaciers level] [-ice level] [-saturation
+              sat] [-seed seed] [-stars fraction] [-xsize|-width
+              width] [-ysize|-height height]
+
+2 Description
+     ppmforge generates three  kinds  of  ``random  fractal  for-
+     geries,'' the term coined by Richard F. Voss of the IBM Tho-
+     mas J. Watson Research Center for seemingly  realistic  pic-
+     tures  of natural objects generated by simple algorithms em-
+     bodying randomness and fractal self-similarity.   The  tech-
+     niques  used  by  ppmforge  are  essentially  those given by
+     Voss[1], particularly the technique  of  spectral  synthesis
+     explained in more detail by Dietmar Saupe[2].
+
+     The program generates two varieties of pictures: planets and
+     clouds, which are just different renderings of data generat-
+     ed in an identical manner, illustrating  the  unity  of  the
+     fractal  structure of these very different objects.  A third
+     type of picture, a starry sky, is synthesised directly  from
+     pseudorandom numbers.
+
+     The generation of planets or clouds begins with the prepara-
+     tion  of  an  array  of random data in the frequency domain.
+     The size of this array, the ``mesh size,'' can be  set  with
+     the -mesh option; the larger the mesh the more realistic the
+     pictures but the calculation time and memory requirement in-
+     creases  as the square of the mesh size.  The fractal dimen-
+     sion, which you can  specify  with  the  -dimension  option,
+     determines the roughness of the terrain on the planet or the
+     scale of detail in the clouds.  As the fractal dimension  is
+     increased, more high frequency components are added into the
+     random mesh.
+
+     Once the mesh  is  generated,  an  inverse  two  dimensional
+     Fourier  transform  is performed upon it.  This converts the
+     original random frequency domain data  into  spatial  ampli-
+     tudes.   We  scale  the real components that result from the
+     Fourier transform into numbers from 0 to 1  associated  with
+     each  point on the mesh.  You can further modify this number
+     by applying a ``power law scale'' to it with the -power  op-
+     tion.    Unity  scale leaves the numbers unmodified; a power
+     scale of 0.5 takes the square root of  the  numbers  in  the
+     mesh,  while  a power scale of 3 replaces the numbers in the
+     mesh with their cubes.  Power law scaling is best envisioned
+     by  thinking  of  the  data as representing the elevation of
+     terrain; powers less than 1 yield landscapes  with  vertical
+     scarps  that  look  like  glacially-carved  valleys;  powers
+     greater than one make  fairy-castle  spires  (which  require
+     large mesh sizes and high resolution for best results).
+
+     After these calculations, we have a array of  the  specified
+     size containing numbers that range from 0 to 1.  The pixmaps
+     are generated as follows:
+
+     Clouds    A colour map is created that ranges from pure blue
+               to white by increasing admixture (desaturation) of
+               blue  with  white.   Numbers  less  than  0.5  are
+               coloured  blue,  numbers  between  0.5 and 1.0 are
+               coloured with corresponding levels of white,  with
+               1.0 being pure white.
+
+     Planet    The mesh is projected onto a sphere.  Values  less
+               than  0.5  are treated as water and values between
+               0.5 and 1.0 as land.  The water areas are coloured
+               based  upon the water depth, and land based on its
+               elevation.  The random  depth  data  are  used  to
+               create  clouds over the oceans.  An atmosphere ap-
+               proximately like the  Earth's  is  simulated;  its
+               light  absorption  is  calculated to create a blue
+               cast around the limb of the  planet.   A  function
+               that  rises from 0 to 1 based on latitude is modu-
+               lated by the local elevation to generate polar ice
+               caps--high   altitude   terrain  carries  glaciers
+               farther from the pole.  Based on the  position  of
+               the  star  with  respect  to the observer, the ap-
+               parent colour of each pixel of the planet is  cal-
+               culated by ray-tracing from the star to the planet
+               to the observer and applying a lighting model that
+               sums  ambient  light  and  diffuse reflection (for
+               most planets ambient light is zero, as their  pri-
+               mary  star  is  the  only source of illumination).
+               Additional random data are used to generate  stars
+               around the planet.
+
+     Night     A sequence of pseudorandom numbers is used to gen-
+               erate stars with a user specified density.
+
+     Cloud pictures always contain 256 or fewer colours  and  may
+     be  displayed  on most colour mapped devices without further
+     processing.  Planet pictures often contain tens of thousands
+     of  colours  which  must  be  compressed  with  ppmquant  or
+     ppmdither before encoding in a colour mapped format.  If the
+     display  resolution is high enough, ppmdither generally pro-
+     duces better looking  planets.   ppmquant  tends  to  create
+     discrete colour bands, particularly in the oceans, which are
+     unrealistic and distracting.  The number of colours in star-
+     ry  sky pictures generated with the -night option depends on
+     the value specified for -saturation.  Small values limit the
+     colour  temperature distribution of the stars and reduce the
+     number of colours in the image.  If the -saturation  is  set
+     to  0,  none of the stars will be coloured and the resulting
+     image will never contain more than 256 colours.   Night  sky
+     pictures  with  many  different star colours often look best
+     when colour compressed by pnmdepth rather than  ppmquant  or
+     ppmdither.   Try  newmaxval  settings  of 63, 31, or 15 with
+     pnmdepth to reduce the number of colours in the  picture  to
+     256 or fewer.
+
+2 Options
+     -clouds   Generate clouds.  A pixmap of  fractal  clouds  is
+               generated.   Selecting clouds sets the default for
+               fractal dimension to 2.15 and power  scale  factor
+               to 0.75.
+
+     -dimension dimen
+               Sets the fractal dimension to the specified dimen,
+               which  may  be  any floating point value between 0
+               and 3.   Higher  fractal  dimensions  create  more
+               ``chaotic''  images,  which require higher resolu-
+               tion output and a larger FFT  mesh  size  to  look
+               good.   If  no dimension is specified, 2.4 is used
+               when generating planets and 2.15 for clouds.
+
+     -glaciers level
+               The floating point level setting controls the  ex-
+               tent  to which terrain elevation causes ice to ap-
+               pear at lower latitudes.   The  default  value  of
+               0.75  makes the polar caps extend toward the equa-
+               tor across high terrain and forms glaciers in  the
+               highest  mountains,  as  on  Earth.  Higher values
+               make ice sheets that cover more and  more  of  the
+               land  surface,  simulating planets in the midst of
+               an ice age.   Lower  values  tend  to  be  boring,
+               resulting in unrealistic geometrically-precise ice
+               cap boundaries.
+
+     -hour hour
+               When generating a planet,  hour  is  used  as  the
+               ``hour  angle  at  the central meridian.''  If you
+               specify -hour 12, for example, the planet will  be
+               fully  illuminated,  corresponding to high noon at
+               the longitude at the centre of  the  screen.   You
+               can specify any floating point value between 0 and
+               24 for hour, but values which place  most  of  the
+               planet in darkness (0 to 4 and 20 to 24) result in
+               crescents which, while pretty, don't give you many
+               illuminated  pixels  for  the  amount of computing
+               that's required.  If no -hour option is specified,
+               a random hour angle is chosen, biased so that only
+               25% of the images generated will be crescents.
+
+     -ice level
+               Sets the extent of the polar ice caps to the given
+               floating  point  level.   The default level of 0.4
+               produces ice caps similar to those of  the  Earth.
+               Smaller  values  reduce  the  amount of ice, while
+               larger -ice settings  create  more  prominent  ice
+               caps.   Sufficiently  large values, such as 100 or
+               more, in conjunction with  small  settings  for  -
+               glaciers (try 0.1) create ``ice balls'' like Euro-
+               pa.
+
+     -inclination|-tilt angle
+               The inclination angle of the planet with regard to
+               its primary star is set to angle, which can be any
+               floating point value from -90 to 90.  The inclina-
+               tion angle can be thought of as specifying, in de-
+               grees, the ``season'' the planet is presently  ex-
+               periencing  or,  more  precisely,  the latitude at
+               which the star transits the zenith at local  noon.
+               If  0,  the  planet  is  at  equinox;  the star is
+               directly overhead at the equator.  Positive values
+               represent summer in the northern hemisphere, nega-
+               tive values summer  in  the  southern  hemisphere.
+               The  Earth's  inclination  angle,  for example, is
+               about  23.5  at  the  June  solstice,  0  at   the
+               equinoxes in March and September, and -23.5 at the
+               December solstice.  If  no  inclination  angle  is
+               specified,  a  random value between -21.6 and 21.6
+               degrees is chosen.
+
+     -mesh size
+               A mesh of size by size will be used for  the  fast
+               Fourier  transform  (FFT).   Note  that memory re-
+               quirements and computation speed increase  as  the
+               square  of  size; if you double the mesh size, the
+               program will use four times  the  memory  and  run
+               four  times as long.  The default mesh is 256x256,
+               which produces reasonably  good  looking  pictures
+               while  using half a megabyte for the 256x256 array
+               of single precision complex  numbers  required  by
+               the  FFT.  On machines with limited memory capaci-
+               ty, you may have to reduce the mesh size to  avoid
+               running out of RAM.  Increasing the mesh size pro-
+               duces better looking pictures; the difference  be-
+               comes particularly noticeable when generating high
+               resolution images with relatively high fractal di-
+               mensions (between 2.2 and 3).
+
+     -night    A starry sky is generated.  The stars are  created
+               by the same algorithm used for the stars that sur-
+               round planet pictures, but the output consists ex-
+               clusively of stars.
+
+     -power factor
+               Sets the ``power factor'' used to scale elevations
+               synthesised  from  the FFT to factor, which can be
+               any floating point number greater than  zero.   If
+               no factor is specified a default of 1.2 is used if
+               a planet is being generated, or 0.75 if clouds are
+               selected by the -clouds option.  The result of the
+               FFT image  synthesis  is  an  array  of  elevation
+               values  between 0 and 1.  A non-unity power factor
+               exponentiates each  of  these  elevations  to  the
+               specified power.  For example, a power factor of 2
+               squares each value, while a power  factor  of  0.5
+               replaces  each  with  its square root.  (Note that
+               exponentiating  values  between  0  and  1  yields
+               values that remain within that range.)  Power fac-
+               tors less than 1 emphasise  large-scale  elevation
+               changes at the expense of small variations.  Power
+               factors greater than 1 increase the  roughness  of
+               the terrain and, like high fractal dimensions, may
+               require a  larger  FFT  mesh  size  and/or  higher
+               screen resolution to look good.
+
+     -saturation sat
+               Controls the degree of colour  saturation  of  the
+               stars that surround planet pictures and fill star-
+               ry skies created with the -night option.  The  de-
+               fault  value  of  125 creates stars which resemble
+               the sky as seen by the human eye from Earth's sur-
+               face.   Stars are dim; only the brightest activate
+               the cones in the human retina, causing  colour  to
+               be  perceived.   Higher  values of sat approximate
+               the appearance of stars from  Earth  orbit,  where
+               better  dark  adaptation,  absence of skyglow, and
+               the concentration of light from a given star  onto
+               a smaller area of the retina thanks to the lack of
+               atmospheric turbulence enhances the perception  of
+               colour.   Values greater than 250 create ``science
+               fiction'' skies that, while pretty, don't occur in
+               this universe.
+
+               Thanks to the inverse  square  law  combined  with
+               Nature's  love of mediocrity, there are many, many
+               dim stars for every bright one.   This  population
+               relationship  is accurately reflected in the skies
+               created by ppmforge.  Dim,  low  mass  stars  live
+               much longer than bright massive stars, consequent-
+               ly there are many reddish stars for every blue gi-
+               ant.   This relationship is preserved by ppmforge.
+               You can reverse the proportion, simulating the sky
+               as  seen  in  a  starburst galaxy, by specifying a
+               negative sat value.
+
+     -seed num Sets the seed for the random number  generator  to
+               the  integer  num.   The  seed used to create each
+               picture is displayed on  standard  output  (unless
+               suppressed with the -quiet option).  Pictures gen-
+               erated with the same seed will be  identical.   If
+               no  -seed is specified, a random seed derived from
+               the date and time will be chosen.   Specifying  an
+               explicit  seed  allows  you to re-render a picture
+               you particularly like at a  higher  resolution  or
+               with different viewing parameters.
+
+     -stars fraction
+               Specifies the percentage of pixels, in tenths of a
+               percent,  which  will appear as stars, either sur-
+               rounding a planet or filling the entire  frame  if
+               -night is specified.  The default fraction is 100.
+
+     -xsize|-width width
+               Sets the width of the  generated  image  to  width
+               pixels.   The default width is 256 pixels.  Images
+               must be at least as wide as they are  high;  if  a
+               width  less  than the height is specified, it will
+               be increased to equal the  height.   If  you  must
+               have  a long skinny pixmap, make a square one with
+               ppmforge, then use pnmcut to extract a portion  of
+               the shape and size you require.
+
+     -ysize|-height height
+               Sets the height of the generated image  to  height
+               pixels.  The default height is 256 pixels.  If the
+               height specified exceeds the width, the width will
+               be increased to equal the height.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 Bugs
+     The algorithms require the output pixmap to be at  least  as
+     wide  as  it  is high, and the width to be an even number of
+     pixels.  These constraints are enforced  by  increasing  the
+     size of the requested pixmap if necessary.
+
+     You may have to reduce the FFT mesh size on machines with 16
+     bit integers and segmented pointer architectures.
+
+2 See_Also
+     pnmcut, pnmdepth, ppmdither, ppmquant, ppm
+
+     [1]  Voss, Richard  F.,  ``Random  Fractal  Forgeries,''  in
+          Earnshaw  et.  al., Fundamental Algorithms for Computer
+          Graphics, Berlin: Springer-Verlag, 1985.
+
+     [2]  Peitgen, H.-O., and Saupe,  D.  eds.,  The  Science  Of
+          Fractal Images, New York: Springer Verlag, 1988.
+
+2 Author
+          John Walker
+          Autodesk SA
+          Avenue des Champs-Montants 14b
+          CH-2074 MARIN
+          Suisse/Schweiz/Svizzera/Svizra/Switzerland
+          Usenet:  kelvin@Autodesk.com
+          Fax:     038/33 88 15
+          Voice:   038/33 76 33
+
+     Permission  to  use,  copy,  modify,  and  distribute   this
+     software  and  its documentation for any purpose and without
+     fee is hereby granted, without any  conditions  or  restric-
+     tions.   This software is provided ``as is'' without express
+     or implied warranty.
+
+     PLUGWARE! If you like this kind of stuff, you may also enjoy
+     ``James Gleick's Chaos--The Software'' for MS-DOS, available
+     for $59.95 from your local software store or  directly  from
+     Autodesk,  Inc.,  Attn:  Science Series, 2320 Marinship Way,
+     Sausalito, CA 94965, USA.  Telephone: (800)  688-2344  toll-
+     free  or,  outside  the  U.S. (415) 332-2344 Ext 4886.  Fax:
+     (415) 289-4718.  ``Chaos--The  Software''  includes  a  more
+     comprehensive   fractal   forgery  generator  which  creates
+     three-dimensional landscapes as well as clouds and  planets,
+     plus five more modules which explore other aspects of Chaos.
+     The user guide of more than 200 pages includes an  introduc-
+     tion by James Gleick and detailed explanations by Rudy Ruck-
+     er of the mathematics and algorithms used by each program.
+
+1 ppmpat
+     ppmpat - make a pretty pixmap
+
+2 Synopsis
+     ppmpat   -gingham2|-g2|-gingham3|   -g3|-madras|-tartan|   -
+     poles|-squig|-camo| -anticamo width height
+
+2 Description
+     Produces a  portable  pixmap  of  the  specified  width  and
+     height, with a pattern in it.
+
+     This program is mainly to demonstrate  use  of  the  ppmdraw
+     routines,  a  simple  but powerful drawing library.  See the
+     ppmdraw.h include file for more info  on  using  these  rou-
+     tines.   Still,  some  of the patterns can be rather pretty.
+     If you have  a  color  workstation,  something  like  ppmpat
+     -squig  300  300 | ppmquant 128 should generate a nice back-
+     ground.
+
+2 Options
+     The different flags specify various different pattern types:
+
+     -gingham2
+          A gingham check pattern.  Can be tiled.
+
+     -gingham3
+          A slightly more complicated gingham.  Can be tiled.
+
+     -madras
+          A madras plaid.  Can be tiled.
+
+     -tartan
+          A tartan plaid.  Can be tiled.
+
+     -poles
+          Color gradients centered on randomly-placed poles.  May
+          need to be run through ppmquant.
+
+     -squig
+          Squiggley tubular pattern.  Can be tiled.  May need  to
+          be run through ppmquant.
+
+     -camo
+          Camouflage  pattern.   May  need  to  be  run   through
+          ppmquant.
+
+     -anticamo
+          Anti-camouflage pattern - like -camo, but  ultra-bright
+          colors.  May need to be run through ppmquant.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 References
+     Some of the patterns are from "Designer's Guide to Color  3"
+     by Jeanne Allen.
+
+2 See_Also
+     pnmtile, ppmquant, ppm
+
+2 Author
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 ppmqvga
+     ppmqvga - 8 plane quantization
+
+2 Synopsis
+     ppmqvga [ options ] [ input file ]
+
+2 Description
+     ppmqvga quantizes PPM  files  to  8  planes,  with  optional
+     Floyd-Steinberg  dithering.   Input  is  a PPM file from the
+     file named, or standard input of no file is provided.
+
+2 Options
+     -d dither. Apply Floyd-Steinberg dithering to the data
+
+     -q quiet. Produces no progress reporting,  and  no  terminal
+     output unless and error occurs.
+
+     -v verbose. Produces additional output describing the number
+     of  colors found, and some information on the resulting map-
+     ping. May be repeated to generate loads  of  internal  table
+     output, but generally only useful once.
+
+2 Examples
+     ppmqvga -d mymage.ppm | ppmtogif >mymage.gif
+
+     tgatoppm zombie.tga | ppmqvga | ppmtotif > zombie.tif
+
+2 See_Also
+     ppmquant
+
+2 Diagnostics
+     Error messages if problems, various levels of optional  pro-
+     gress reporting.
+
+2 Limitations
+     none known.
+
+2 Author
+     Original by Lyle Rains (lrains@netcom.com)  as  ppmq256  and
+     ppmq256fs  combined, documented, and enhanced by Bill David-
+     sen (davidsen@crd.ge.com)
+
+     Copyright 1991,1992 by Bill Davidsen, all  rights  reserved.
+     The  program  and documentation may be freely distributed by
+     anyone in source or binary format. Please clearly  note  any
+     changes.
+
+1 ppmtomap
+     ppmtomap - extract all colors from a portable pixmap
+
+2 Synopsis
+     ppmtomap [-sort] [-square] [ppmfile]
+
+2 Description
+     Reads a portable pixmap as input.  Produces a portable  pix-
+     map  as  output, representing a color map of the input file.
+     All N different colors found are put in an Nx1 portable pix-
+     map.   This  color  map  file  can  be used as a mapfile for
+     ppmquant or ppmtogif.
+
+2 Options
+     -sort
+          Produces a portable pixmap  with  the  colors  in  some
+          sorted order.
+
+     -square
+          Produces a (more or less) square output  file,  instead
+          of putting all colors on the top row.
+
+     All flags can be abbreviated to their shortest  unique  pre-
+     fix.
+
+2 WARNING
+     If you want to use the output file as a mapfile  for  ppmto-
+     gif,  you first have to do a ppmquant 256, since ppmtomap is
+     not limited to 256 colors (but to 65536).
+
+2 See_Also
+     ppmtogif, ppmquant, ppm
+
+2 Author
+     Marcel Wijkstra (wijkstra@fwi.uva.nl).
+
+     Copyright (C) 1989 by Jef Poskanzer.
+
+1 ppmtopjxl
+     ppmtopjxl - convert a portable pixmap into an HP PaintJet XL
+     PCL file
+
+2 Synopsis
+     ppmtopjxl [-nopack] [-gamma <n>  ]  [-presentation]  [-dark]
+     [-diffuse]  [-cluster] [-dither] [-xshift <s> ] [-yshift <s>
+     ] [-xshift <s> ] [-yshift <s> ] [-xsize|-width|-xscale <s> ]
+     [-ysize|-height|-yscale <s> ] [ppmfile]
+
+
+2 Description
+     Reads a portable pixmap as input.  Produces a PCL file suit-
+     able for printing on an HP PaintJet XL printer as output.
+
+     The generated file is not suitable for printing on a  normal
+     PrintJet printer.  The -nopack option generates a file which
+     does not use the normal TIFF 4.0  compression  method.  This
+     file might be printable on a normal PaintJet printer (not an
+     XL).
+
+     The -gamma option sets the gamma correction for  the  image.
+     The useful range for the PaintJet XL is approximately 0.6 to
+     1.5.
+
+     The rendering algorithm used for images can be altered  with
+     the  -dither,  -cluster, and -diffuse options. These options
+     select ordered dithering, clustered  ordered  dithering,  or
+     error  diffusion respectively.  The -dark option can be used
+     to enhance images with  a  dark  background  when  they  are
+     reduced  in size.  The -presentation option turns on presen-
+     tation mode, in which two passes are made over the paper  to
+     increase  ink  density.  This should be used only for images
+     where quality is critical.
+
+
+     The image can be resized by setting the  -xsize  and  -ysize
+     options.  The parameter to either of these options is inter-
+     preted as the number of dots to set the width or height  to,
+     but  an  optional  dimension  of  `pt' (points), `dp' (deci-
+     points),  `in'  (inches),  or  `cm'  (centimetres)  may   be
+     appended.   If  only  one  dimension is specified, the other
+     will be scaled appropriately.
+
+     The options -width and -height are synonyms  of  -xsize  and
+     -ysize.
+
+     The -xscale and -yscale options can alternatively be used to
+     scale the image by a simple factor.
+
+     The image can be shifted on the page by  using  the  -xshift
+     and  -yshift  options.  These  move  the image the specified
+     dimensions right and down.
+
+
+2 See_Also
+     ppm
+
+2 Author
+     Angus Duggan
+
+1 libppm
+     libppm - functions to support portable pixmap programs
+
+2 Synopsis
+     #include <ppm.h>
+     cc ... libppm.a libpgm.a libpbm.a
+
+
+2 Description
+  TYPES AND CONSTANTS
+     typedef ... pixel;
+     typedef ... pixval;
+     #define PPM_MAXMAXVAL ...
+     extern pixval ppm_pbmmaxval;
+
+     Each pixel contains three pixvals, each of which should con-
+     tain   only   the   values   between  0  and  PPM_MAXMAXVAL.
+     ppm_pbmmaxval is the maxval used when a PPM program reads  a
+     PBM  file.   Normally it is 1; however, for some programs, a
+     larger value gives better results.
+
+     #define PPM_FORMAT ...
+     #define RPPM_FORMAT ...
+     #define PPM_TYPE PPM_FORMAT
+     int PPM_FORMAT_TYPE( int format )
+
+     For distinguishing different file formats and types.
+
+     pixval PPM_GETR( pixel p )
+     pixval PPM_GETG( pixel p )
+     pixval PPM_GETB( pixel p )
+
+     These three macros retrieve the red,  green  or  blue  value
+     from the given pixel.
+
+     void PPM_ASSIGN( pixel p, pixval red, pixval grn, pixval blu )
+
+     This macro assigns the given red, green and blue  values  to
+     the pixel.
+
+     int PPM_EQUAL( pixel p, pixel q )
+
+     This macro checks two pixels for equality.
+
+     void PPM_DEPTH( pixel newp, pixel p, pixval oldmaxval, pixval newmaxval )
+
+     This macro scales the colors of pixel p  according  the  old
+     and  new  maximum values and assigns the new values to newp.
+     It is intended to make writing ppmtowhatever easier.
+
+     float PPM_LUMIN( pixel p )
+     This macro determines the luminance of the pixel p.
+
+  MEMORY MANAGEMENT
+     pixel** ppm_allocarray( int cols, int rows )
+
+     Allocate an array of pixels.
+
+     pixel* ppm_allocrow( int cols )
+
+     Allocate a row of the given number of pixels.
+
+     void ppm_freearray( pixel** pixels, int rows )
+
+     Free the array allocated  with  ppm_allocarray()  containing
+     the given number of rows.
+
+     void pbm_freerow( pixel* pixelrow )
+
+     Free a row of pixels.
+
+  READING PBM FILES
+     void ppm_readppminit( FILE* fp, int* colsP, int* rowsP, pixval* maxvalP, int* formatP )
+
+     Read the header from a PPM file, filling in the rows,  cols,
+     maxval and format variables.
+
+     void ppm_readppmrow( FILE* fp, pixel* pixelrow, int cols, pixval maxval, int format )
+
+     Read a row of pixels into the pixelrow array.  Format, cols,
+     and maxval were filled in by ppm_readppminit().
+
+     pixel** ppm_readppm( FILE* fp, int* colsP, int* rowsP, pixval* maxvalP )
+
+     Read an entire pixmap file into memory, returning the  allo-
+     cated  array  and filling in the rows, cols and maxval vari-
+     ables.    This    function    combines    ppm_readppminit(),
+     ppm_allocarray() and ppm_readppmrow().
+
+  WRITING FILES
+     void ppm_writeppminit( FILE* fp, int cols, int rows, pixval maxval, int forceplain )
+
+     Write the header for a portable pixmap file.  The forceplain
+     flag forces a plain-format file to be written, as opposed to
+     a raw-format one.
+
+     void ppm_writeppmrow( FILE* fp, pixel* pixelrow, int cols, pixval maxval, int forceplain )
+
+     Write a row from a portable pixmap.
+
+     void ppm_writeppm( FILE* fp, pixel** pixels, int cols, int rows, pixval maxval, int forceplain )
+
+     Write the header and all data for a portable  pixmap.   This
+     function combines ppm_writeppminit() and ppm_writeppmrow().
+
+  COLOR NAMES
+     pixel ppm_parsecolor( char* colorname, pixval maxval )
+
+     Parses an ASCII color name into a pixel.  The color  can  be
+     specified  in  three  ways.  One, as a name, assuming that a
+     pointer to an X11-style color names file  was  compiled  in.
+     Two,  as  an  X11-style  hexadecimal  number: #rgb, #rrggbb,
+     #rrrgggbbb,  or  #rrrrggggbbbb.   Three,  as  a  triplet  of
+     decimal   floating   point   numbers  separated  by  commas:
+     r.r,g.g,b.b.
+
+     char* ppm_colorname( pixel* colorP, pixval maxval, int hexok )
+
+     Returns a pointer to a string describing  the  given  color.
+     If  the  X11  color  names  file  is available and the color
+     appears in it, that name is  returned.   Otherwise,  if  the
+     hexok flag is true then a hexadecimal colorspec is returned;
+     if hexok is false and the X11 color names file is available,
+     then the closest matching color is returned; otherwise, it's
+     an error.
+
+2 See_Also
+     pbm, pgm
+
+2 Author
+     Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer.
+
+1 ppm
+     ppm - portable pixmap file format
+
+2 Description
+     The portable pixmap format is a  lowest  common  denominator
+     color image file format.  The definition is as follows:
+
+     - A "magic number" for identifying the  file  type.   A  ppm
+       file's magic number is the two characters "P3".
+
+     - Whitespace (blanks, TABs, CRs, LFs).
+
+     - A width, formatted as ASCII characters in decimal.
+
+     - Whitespace.
+
+     - A height, again in ASCII decimal.
+
+     - Whitespace.
+
+     - The maximum color-component value, again in ASCII decimal.
+
+     - Whitespace.
+
+     - Width * height pixels, each  three  ASCII  decimal  values
+       between 0 and the specified maximum value, starting at the
+       top-left  corner  of  the  pixmap,  proceeding  in  normal
+       English  reading  order.   The three values for each pixel
+       represent red, green, and blue, respectively; a value of 0
+       means  that color is off, and the maximum value means that
+       color is maxxed out.
+
+     - Characters from a "#" to the next end-of-line are  ignored
+       (comments).
+
+     - No line should be longer than 70 characters.
+
+     Here is an example of a small pixmap in this format:
+     P3
+     # feep.ppm
+     4 4
+     15
+      0  0  0    0  0  0    0  0  0   15  0 15
+      0  0  0    0 15  7    0  0  0    0  0  0
+      0  0  0    0  0  0    0 15  7    0  0  0
+     15  0 15    0  0  0    0  0  0    0  0  0
+
+     Programs that read this format should be as lenient as  pos-
+     sible, accepting anything that looks remotely like a pixmap.
+
+     There is also a variant on the format, available by  setting
+     the  RAWBITS  option  at  compile  time.   This  variant  is
+     different in the following ways:
+
+     - The "magic number" is "P6" instead of "P3".
+
+     - The pixel values are stored as  plain  bytes,  instead  of
+       ASCII decimal.
+
+     - Whitespace is not allowed in the pixels area, and  only  a
+       single  character  of  whitespace (typically a newline) is
+       allowed after the maxval.
+
+     - The files are smaller and many times faster  to  read  and
+       write.
+
+     Note that this raw format can only be used for maxvals  less
+     than or equal to 255.  If you use the ppm library and try to
+     write a file with a larger  maxval,  it  will  automatically
+     fall back on the slower but more general plain format.
+
+2 See_Also
+     giftopnm, gouldtoppm, ilbmtoppm, imgtoppm, mtvtoppm, pcxtoppm,
+     pgmtoppm, pi1toppm, picttoppm, pjtoppm, qrttoppm, rawtoppm,
+     rgb3toppm, sldtoppm, spctoppm, sputoppm, tgatoppm, ximtoppm,
+     xpmtoppm, yuvtoppm, ppmtoacad, ppmtogif, ppmtoicr, ppmtoilbm,
+     ppmtopcx, ppmtopgm, ppmtopi1, ppmtopict, ppmtopj, ppmtopuzz,
+     ppmtorgb3, ppmtosixel, ppmtotga, ppmtouil, ppmtoxpm, ppmtoyuv,
+     ppmdither, ppmforge, ppmhist, ppmmake, ppmpat, ppmquant,
+     ppmquantall, ppmrelief, pnm, pgm, pbm
+
+2 Author
+     Copyright (C) 1989, 1991 by Jef Poskanzer.
+
+1 pgmkernel
+        pgmkernel - generate a convolution kernel
+
+2 Synopis
+        pgmkernel [-weight w] width [height]
+
+2 Description
+        Generates a portable graymap array of size width x height  (or
+    width  x  width  if  height  is  not  specified) to be used  as  a
+    convolution file  by pnmconvol.  The data in the convolution array
+    K are computed according to the formula:
+
+    K(i,j) = 1 / ( 1 + w * sqrt((i-width/2)\^{}2 + (j-height/2)\^{}2)) 
+
+    where w is a coefficient specified via the -weight flag, and width
+    and height are the X and Y filter sizes.
+
+        The output PGM file is always written out in ASCII format.
+
+2 Options
+        The optional -weight flag should be a real number greater than
+    -1.  The default value is 6.0.
+
+2 Bugs
+        The computation time is proportional  to width * height.  This
+    increases rapidly with the increase of  the kernel size.  A better
+    approach could be using a FFT in these cases.
+
+2 See_Also
+        pnmconvol(1), pnmsmooth(1)
+
+2 Author
+        Alberto Accomazzi (alberto@cfa.harvard.edu).
+
+1 fitstopnm
+        fitstopnm - convert a FITS file into a portable anymap
+
+2 Synopis
+        fitstopnm [-image N] [-noraw] [-scanmax] [-printmax] [-min f]
+                  [-max f] [FITSfile]
+
+2 Description
+        Reads a FITS file as input.  Produces a portable pixmap if the
+    FITS file consists of 3 image planes (NAXIS = 3 and NAXIS3 = 3), a
+    portable  graymap  if  the  FITS file consists of 2  image  planes
+    (NAXIS  =  2),  or  whenever  the -image flag is specified.    The
+    results may need to be flipped top for bottom;  if  so,  just pipe
+    the output through pnmflip -tb.
+
+2 Options
+        The  -image  option  is  for  FITS files with three axes.  The
+    assumption is that the third axis is for multiple images, and this
+    option lets you select which one you want.
+
+        Flags -min and  -max  can  be used to override the min and max
+    values as read from  the  FITS  header  or  the  image  data if no
+    DATAMIN and DATAMAX keywords are found.  Flag -scanmax can be used
+    to  force the program to scan  the  data  even  when  DATAMIN  and
+    DATAMAX are found in the header.   If  -printmax is specified, the
+    program will just print the min and max  values  and  quit.   Flag
+    -noraw  can  be  used  to force the program to  produce  an  ASCII
+    portable anymap.
+
+        The  program  will tell what kind of anymap is writing.    All
+    flags can be abbreviated to their shortest unique prefix.
+
+2 References
+        FITS stands for  Flexible  Image  Transport  System.    A full
+    description can be found  in  Astronomy  & Astrophysics Supplement
+    Series 44 (1981), page 363.
+
+2 See_Also
+        pnmtofits(1), pgm(5), pnmflip(1)
+
+2 Author
+        Copyright (C) 1989 by Jef  Poskanzer,  with  modifications  by
+    Daniel    Briggs    (dbriggs@nrao.edu)    and   Alberto  Accomazzi
+    (alberto@cfa.harvard.edu).
+
+1 pnmalias
+        pnmalias - antialias a portable anyumap.
+
+2 Synopis
+        pnmalias  [-bgcolor  color] [-fgcolor color] [-bonly] [-fonly]
+                  [-balias] [-falias] [-weight w] [pnmfile]
+
+2 Description
+        Reads a portable anymap as input, and applies anti-aliasing to
+    background and foreground pixels.  If the input file is a portable
+    bitmap,  the  output  anti-aliased image is promoted to a graymap,
+    and  a  message  is  printed  informing the user of the change  in
+    format.
+
+2 Options
+        -bgcolor colorb,
+        -fgcolor colorf
+        set the  background  color  to  colorb,  and the foreground to
+    color to colorf.    Pixels with these values will be anti-aliased.
+    by  default, the background  color  is  taken  to  be  black,  and
+    foreground color is assumed to  be  white.    The  colors  can  be
+    specified in five ways:
+
+            o A name,  assuming  that  a pointer to an X11-style color
+            names file was compiled in.
+
+            o An X11-style hexadecimal  specifier:  rgb:r/g/b, where r
+            g and b are each 1- to 4-digit hexadecimal numbers.
+
+            o An X11-style decimal specifier:    rgbi:r/g/b, where r g
+            and b are floating point numbers between 0 and 1.
+
+            o    For    backwards    compatibility,  an  old-X11-style
+            hexadecimal    number:    #rgb,  #rrggbb,  #rrrgggbbb,  or
+            #rrrrggggbbbb.
+
+            o  For  backwards  compatibility,  a  triplet  of  numbers
+            separated by commas:   r,g,b, where r g and b are floating
+            point numbers between 0  and  1.    (This  style was added
+            before MIT came up with the similar rgbi style.)
+
+        Note  that  even when dealing with  graymaps,  background  and
+    foreground colors need to be specified in  the  fashion  described
+    above.  In this case, background and foreground  pixel  values are
+    taken to be the value of the red component for the given color.
+
+        -bonly,
+        -fonly
+        Apply anti-aliasing only to background (-bonly), or foreground
+    (-fonly) pixels.
+
+        -balias,
+        -falias 
+        Apply  anti-aliasing  to  all  pixels  surrounding  background
+    (-balias),  or  foreground    (-falias)    pixels.    By  default,
+    anti-aliasing takes place only  among  neighboring  background and
+    foreground pixels.
+
+        -weight w
+        Use w as the central  weight  for the aliasing filter.  W must
+    be a real number in the range 0 < w < 1.  The lower the value of w
+    is, the "blurrier" the output image is.  The default is w = 1/3.
+
+2 See_Also
+        pbmtext(1), pnmsmooth(1), pnm(5)
+
+2 Author
+        Copyright    (C)    1992  by  Alberto  Accomazzi,  Smithsonian
+    Astrophysical Observatory.
+
+1 pnmtofits
+        pnmtofits - convert a portable anymap into FITS format
+
+2 Synopis
+        pnmtofits [-max f] [-min f] [pnmfile]
+
+2 Description
+        Reads a portable anymap as input.  Produces  a  FITS (Flexible
+    Image  Transport  System) file as output.  The resolution  of  the
+    output file is either 8 bits/pixel, or 16 bits/pixel, depending on
+    the value of maxval in the input file.  If the  input  file  is  a
+    portable bitmap or a portable graymap, the output file consists of
+    a single plane image (NAXIS = 2).   If instead the input file is a
+    portable  pixmap,  the output file will consist of  a  three-plane
+    image (NAXIS = 3, NAXIS3 = 3).  A  full  description  of  the FITS
+    format  can be found in Astronomy & Astrophysics Supplement Series
+    44 (1981), page 363.
+
+2 Options
+        Flags  -min  and  -max  can  be  used to set DATAMAX, DATAMIN,
+    BSCALE and BZERO in the FITS header, but do not cause the  data to
+    be rescaled.
+
+2 See_Also
+        fitstopnm(1), pgm(5)
+
+2 Author
+        Copyright (C) 1989 by Wilson  H.    Bent  (whb@hoh-2.att.com),
+    with modifications by Alberto Accomazzi (alberto@cfa.harvard.edu).
+
+1 ppmchange
+        ppmchange -  change  all  pixels  of one color to another in a
+    portable pixmap
+
+2 Synopis
+        ppmchange oldcolor newcolor [...] [ppmfile]
+
+2 Description
+        Reads  a portable pixmap as input.    Changes  all  pixels  of
+    oldcolor to newcolor, leaving all others unchanged.    Up  to  256
+    colors  may  be replaced by specifying couples of  colors  on  the
+    command line.  
+
+        The colors can be specified in five ways:
+
+            o A name, assuming that a  pointer  to  an X11-style color
+            names file was compiled in.
+
+            o An X11-style hexadecimal specifier:  rgb:r/g/b,  where r
+            g and b are each 1- to 4-digit hexadecimal numbers.
+
+            o An X11-style decimal specifier:  rgbi:r/g/b, where  r  g
+            and b are floating point numbers between 0 and 1.
+
+            o    For    backwards  compatibility,  an    old-X11-style
+            hexadecimal  number:    #rgb,  #rrggbb,  #rrrgggbbb,    or
+            #rrrrggggbbbb.
+
+            o  For  backwards  compatibility,  a  triplet  of  numbers
+            separated by commas:  r,g,b, where r g  and b are floating
+            point  numbers  between  0 and 1.  (This style  was  added
+            before MIT came up with the similar rgbi style.)
+
+2 See_Also
+        pgmtoppm(1), ppm(5)
+
+2 Author
+        Wilson  H.    Bent.   Jr.  (whb@usc.edu) with modifications by
+    Alberto Accomazzi (alberto@cfa.harvard.edu)
+
+1 xvminitoppm
+        xvminitoppm - convert a XV "thumbnail" picture to PPM
+
+2 Synopis
+        xvminitoppm [xvminipic]
+
+2 Description
+        Reads a  XV "thumbnail" picture (a miniature picture generated
+    by the "VisualSchnauzer"  browser)  as input.  Produces a portable
+    pixmap as output.
+
+2 See_Also
+        ppm(5), xv(1)
+
+2 Author
+        Copyright (C) 1993 by Ingo Wilken
+
diff --git a/vms/RGB.txt b/vms/RGB.txt
new file mode 100644
index 00000000..e5f61889
--- /dev/null
+++ b/vms/RGB.txt
@@ -0,0 +1,738 @@
+255 250 250 snow
+248 248 255 ghost white
+248 248 255 GhostWhite
+245 245 245 white smoke
+245 245 245 WhiteSmoke
+220 220 220 gainsboro
+255 250 240 floral white
+255 250 240 FloralWhite
+253 245 230 old lace
+253 245 230 OldLace
+250 240 230 linen
+250 235 215 antique white
+250 235 215 AntiqueWhite
+255 239 213 papaya whip
+255 239 213 PapayaWhip
+255 235 205 blanched almond
+255 235 205 BlanchedAlmond
+255 228 196 bisque
+255 218 185 peach puff
+255 218 185 PeachPuff
+255 222 173 navajo white
+255 222 173 NavajoWhite
+255 228 181 moccasin
+255 248 220 cornsilk
+255 255 240 ivory
+255 250 205 lemon chiffon
+255 250 205 LemonChiffon
+255 245 238 seashell
+240 255 240 honeydew
+245 255 250 mint cream
+245 255 250 MintCream
+240 255 255 azure
+240 248 255 alice blue
+240 248 255 AliceBlue
+230 230 250 lavender
+255 240 245 lavender blush
+255 240 245 LavenderBlush
+255 228 225 misty rose
+255 228 225 MistyRose
+255 255 255 white
+  0   0   0 black
+ 47  79  79 dark slate gray
+ 47  79  79 DarkSlateGray
+ 47  79  79 dark slate grey
+ 47  79  79 DarkSlateGrey
+105 105 105 dim gray
+105 105 105 DimGray
+105 105 105 dim grey
+105 105 105 DimGrey
+112 128 144 slate gray
+112 128 144 SlateGray
+112 128 144 slate grey
+112 128 144 SlateGrey
+119 136 153 light slate gray
+119 136 153 LightSlateGray
+119 136 153 light slate grey
+119 136 153 LightSlateGrey
+190 190 190 gray
+190 190 190 grey
+211 211 211 light grey
+211 211 211 LightGrey
+211 211 211 light gray
+211 211 211 LightGray
+ 25  25 112 midnight blue
+ 25  25 112 MidnightBlue
+  0   0 128 navy
+  0   0 128 navy blue
+  0   0 128 NavyBlue
+100 149 237 cornflower blue
+100 149 237 CornflowerBlue
+ 72  61 139 dark slate blue
+ 72  61 139 DarkSlateBlue
+106  90 205 slate blue
+106  90 205 SlateBlue
+123 104 238 medium slate blue
+123 104 238 MediumSlateBlue
+132 112 255 light slate blue
+132 112 255 LightSlateBlue
+  0   0 205 medium blue
+  0   0 205 MediumBlue
+ 65 105 225 royal blue
+ 65 105 225 RoyalBlue
+  0   0 255 blue
+ 30 144 255 dodger blue
+ 30 144 255 DodgerBlue
+  0 191 255 deep sky blue
+  0 191 255 DeepSkyBlue
+135 206 235 sky blue
+135 206 235 SkyBlue
+135 206 250 light sky blue
+135 206 250 LightSkyBlue
+ 70 130 180 steel blue
+ 70 130 180 SteelBlue
+176 196 222 light steel blue
+176 196 222 LightSteelBlue
+173 216 230 light blue
+173 216 230 LightBlue
+176 224 230 powder blue
+176 224 230 PowderBlue
+175 238 238 pale turquoise
+175 238 238 PaleTurquoise
+  0 206 209 dark turquoise
+  0 206 209 DarkTurquoise
+ 72 209 204 medium turquoise
+ 72 209 204 MediumTurquoise
+ 64 224 208 turquoise
+  0 255 255 cyan
+224 255 255 light cyan
+224 255 255 LightCyan
+ 95 158 160 cadet blue
+ 95 158 160 CadetBlue
+102 205 170 medium aquamarine
+102 205 170 MediumAquamarine
+127 255 212 aquamarine
+  0 100   0 dark green
+  0 100   0 DarkGreen
+ 85 107  47 dark olive green
+ 85 107  47 DarkOliveGreen
+143 188 143 dark sea green
+143 188 143 DarkSeaGreen
+ 46 139  87 sea green
+ 46 139  87 SeaGreen
+ 60 179 113 medium sea green
+ 60 179 113 MediumSeaGreen
+ 32 178 170 light sea green
+ 32 178 170 LightSeaGreen
+152 251 152 pale green
+152 251 152 PaleGreen
+  0 255 127 spring green
+  0 255 127 SpringGreen
+124 252   0 lawn green
+124 252   0 LawnGreen
+  0 255   0 green
+127 255   0 chartreuse
+  0 250 154 medium spring green
+  0 250 154 MediumSpringGreen
+173 255  47 green yellow
+173 255  47 GreenYellow
+ 50 205  50 lime green
+ 50 205  50 LimeGreen
+154 205  50 yellow green
+154 205  50 YellowGreen
+ 34 139  34 forest green
+ 34 139  34 ForestGreen
+107 142  35 olive drab
+107 142  35 OliveDrab
+189 183 107 dark khaki
+189 183 107 DarkKhaki
+240 230 140 khaki
+238 232 170 pale goldenrod
+238 232 170 PaleGoldenrod
+250 250 210 light goldenrod yellow
+250 250 210 LightGoldenrodYellow
+255 255 224 light yellow
+255 255 224 LightYellow
+255 255   0 yellow
+255 215   0 gold
+238 221 130 light goldenrod
+238 221 130 LightGoldenrod
+218 165  32 goldenrod
+184 134  11 dark goldenrod
+184 134  11 DarkGoldenrod
+188 143 143 rosy brown
+188 143 143 RosyBrown
+205  92  92 indian red
+205  92  92 IndianRed
+139  69  19 saddle brown
+139  69  19 SaddleBrown
+160  82  45 sienna
+205 133  63 peru
+222 184 135 burlywood
+245 245 220 beige
+245 222 179 wheat
+244 164  96 sandy brown
+244 164  96 SandyBrown
+210 180 140 tan
+210 105  30 chocolate
+178  34  34 firebrick
+165  42  42 brown
+233 150 122 dark salmon
+233 150 122 DarkSalmon
+250 128 114 salmon
+255 160 122 light salmon
+255 160 122 LightSalmon
+255 165   0 orange
+255 140   0 dark orange
+255 140   0 DarkOrange
+255 127  80 coral
+240 128 128 light coral
+240 128 128 LightCoral
+255  99  71 tomato
+255  69   0 orange red
+255  69   0 OrangeRed
+255   0   0 red
+255 105 180 hot pink
+255 105 180 HotPink
+255  20 147 deep pink
+255  20 147 DeepPink
+255 192 203 pink
+255 182 193 light pink
+255 182 193 LightPink
+219 112 147 pale violet red
+219 112 147 PaleVioletRed
+176  48  96 maroon
+199  21 133 medium violet red
+199  21 133 MediumVioletRed
+208  32 144 violet red
+208  32 144 VioletRed
+255   0 255 magenta
+238 130 238 violet
+221 160 221 plum
+218 112 214 orchid
+186  85 211 medium orchid
+186  85 211 MediumOrchid
+153  50 204 dark orchid
+153  50 204 DarkOrchid
+148   0 211 dark violet
+148   0 211 DarkViolet
+138  43 226 blue violet
+138  43 226 BlueViolet
+160  32 240 purple
+147 112 219 medium purple
+147 112 219 MediumPurple
+216 191 216 thistle
+255 250 250 snow1
+238 233 233 snow2
+205 201 201 snow3
+139 137 137 snow4
+255 245 238 seashell1
+238 229 222 seashell2
+205 197 191 seashell3
+139 134 130 seashell4
+255 239 219 AntiqueWhite1
+238 223 204 AntiqueWhite2
+205 192 176 AntiqueWhite3
+139 131 120 AntiqueWhite4
+255 228 196 bisque1
+238 213 183 bisque2
+205 183 158 bisque3
+139 125 107 bisque4
+255 218 185 PeachPuff1
+238 203 173 PeachPuff2
+205 175 149 PeachPuff3
+139 119 101 PeachPuff4
+255 222 173 NavajoWhite1
+238 207 161 NavajoWhite2
+205 179 139 NavajoWhite3
+139 121  94 NavajoWhite4
+255 250 205 LemonChiffon1
+238 233 191 LemonChiffon2
+205 201 165 LemonChiffon3
+139 137 112 LemonChiffon4
+255 248 220 cornsilk1
+238 232 205 cornsilk2
+205 200 177 cornsilk3
+139 136 120 cornsilk4
+255 255 240 ivory1
+238 238 224 ivory2
+205 205 193 ivory3
+139 139 131 ivory4
+240 255 240 honeydew1
+224 238 224 honeydew2
+193 205 193 honeydew3
+131 139 131 honeydew4
+255 240 245 LavenderBlush1
+238 224 229 LavenderBlush2
+205 193 197 LavenderBlush3
+139 131 134 LavenderBlush4
+255 228 225 MistyRose1
+238 213 210 MistyRose2
+205 183 181 MistyRose3
+139 125 123 MistyRose4
+240 255 255 azure1
+224 238 238 azure2
+193 205 205 azure3
+131 139 139 azure4
+131 111 255 SlateBlue1
+122 103 238 SlateBlue2
+105  89 205 SlateBlue3
+ 71  60 139 SlateBlue4
+ 72 118 255 RoyalBlue1
+ 67 110 238 RoyalBlue2
+ 58  95 205 RoyalBlue3
+ 39  64 139 RoyalBlue4
+  0   0 255 blue1
+  0   0 238 blue2
+  0   0 205 blue3
+  0   0 139 blue4
+ 30 144 255 DodgerBlue1
+ 28 134 238 DodgerBlue2
+ 24 116 205 DodgerBlue3
+ 16  78 139 DodgerBlue4
+ 99 184 255 SteelBlue1
+ 92 172 238 SteelBlue2
+ 79 148 205 SteelBlue3
+ 54 100 139 SteelBlue4
+  0 191 255 DeepSkyBlue1
+  0 178 238 DeepSkyBlue2
+  0 154 205 DeepSkyBlue3
+  0 104 139 DeepSkyBlue4
+135 206 255 SkyBlue1
+126 192 238 SkyBlue2
+108 166 205 SkyBlue3
+ 74 112 139 SkyBlue4
+176 226 255 LightSkyBlue1
+164 211 238 LightSkyBlue2
+141 182 205 LightSkyBlue3
+ 96 123 139 LightSkyBlue4
+198 226 255 SlateGray1
+185 211 238 SlateGray2
+159 182 205 SlateGray3
+108 123 139 SlateGray4
+202 225 255 LightSteelBlue1
+188 210 238 LightSteelBlue2
+162 181 205 LightSteelBlue3
+110 123 139 LightSteelBlue4
+191 239 255 LightBlue1
+178 223 238 LightBlue2
+154 192 205 LightBlue3
+104 131 139 LightBlue4
+224 255 255 LightCyan1
+209 238 238 LightCyan2
+180 205 205 LightCyan3
+122 139 139 LightCyan4
+187 255 255 PaleTurquoise1
+174 238 238 PaleTurquoise2
+150 205 205 PaleTurquoise3
+102 139 139 PaleTurquoise4
+152 245 255 CadetBlue1
+142 229 238 CadetBlue2
+122 197 205 CadetBlue3
+ 83 134 139 CadetBlue4
+  0 245 255 turquoise1
+  0 229 238 turquoise2
+  0 197 205 turquoise3
+  0 134 139 turquoise4
+  0 255 255 cyan1
+  0 238 238 cyan2
+  0 205 205 cyan3
+  0 139 139 cyan4
+151 255 255 DarkSlateGray1
+141 238 238 DarkSlateGray2
+121 205 205 DarkSlateGray3
+ 82 139 139 DarkSlateGray4
+127 255 212 aquamarine1
+118 238 198 aquamarine2
+102 205 170 aquamarine3
+ 69 139 116 aquamarine4
+193 255 193 DarkSeaGreen1
+180 238 180 DarkSeaGreen2
+155 205 155 DarkSeaGreen3
+105 139 105 DarkSeaGreen4
+ 84 255 159 SeaGreen1
+ 78 238 148 SeaGreen2
+ 67 205 128 SeaGreen3
+ 46 139  87 SeaGreen4
+154 255 154 PaleGreen1
+144 238 144 PaleGreen2
+124 205 124 PaleGreen3
+ 84 139  84 PaleGreen4
+  0 255 127 SpringGreen1
+  0 238 118 SpringGreen2
+  0 205 102 SpringGreen3
+  0 139  69 SpringGreen4
+  0 255   0 green1
+  0 238   0 green2
+  0 205   0 green3
+  0 139   0 green4
+127 255   0 chartreuse1
+118 238   0 chartreuse2
+102 205   0 chartreuse3
+ 69 139   0 chartreuse4
+192 255  62 OliveDrab1
+179 238  58 OliveDrab2
+154 205  50 OliveDrab3
+105 139  34 OliveDrab4
+202 255 112 DarkOliveGreen1
+188 238 104 DarkOliveGreen2
+162 205  90 DarkOliveGreen3
+110 139  61 DarkOliveGreen4
+255 246 143 khaki1
+238 230 133 khaki2
+205 198 115 khaki3
+139 134  78 khaki4
+255 236 139 LightGoldenrod1
+238 220 130 LightGoldenrod2
+205 190 112 LightGoldenrod3
+139 129  76 LightGoldenrod4
+255 255 224 LightYellow1
+238 238 209 LightYellow2
+205 205 180 LightYellow3
+139 139 122 LightYellow4
+255 255   0 yellow1
+238 238   0 yellow2
+205 205   0 yellow3
+139 139   0 yellow4
+255 215   0 gold1
+238 201   0 gold2
+205 173   0 gold3
+139 117   0 gold4
+255 193  37 goldenrod1
+238 180  34 goldenrod2
+205 155  29 goldenrod3
+139 105  20 goldenrod4
+255 185  15 DarkGoldenrod1
+238 173  14 DarkGoldenrod2
+205 149  12 DarkGoldenrod3
+139 101   8 DarkGoldenrod4
+255 193 193 RosyBrown1
+238 180 180 RosyBrown2
+205 155 155 RosyBrown3
+139 105 105 RosyBrown4
+255 106 106 IndianRed1
+238  99  99 IndianRed2
+205  85  85 IndianRed3
+139  58  58 IndianRed4
+255 130  71 sienna1
+238 121  66 sienna2
+205 104  57 sienna3
+139  71  38 sienna4
+255 211 155 burlywood1
+238 197 145 burlywood2
+205 170 125 burlywood3
+139 115  85 burlywood4
+255 231 186 wheat1
+238 216 174 wheat2
+205 186 150 wheat3
+139 126 102 wheat4
+255 165  79 tan1
+238 154  73 tan2
+205 133  63 tan3
+139  90  43 tan4
+255 127  36 chocolate1
+238 118  33 chocolate2
+205 102  29 chocolate3
+139  69  19 chocolate4
+255  48  48 firebrick1
+238  44  44 firebrick2
+205  38  38 firebrick3
+139  26  26 firebrick4
+255  64  64 brown1
+238  59  59 brown2
+205  51  51 brown3
+139  35  35 brown4
+255 140 105 salmon1
+238 130  98 salmon2
+205 112  84 salmon3
+139  76  57 salmon4
+255 160 122 LightSalmon1
+238 149 114 LightSalmon2
+205 129  98 LightSalmon3
+139  87  66 LightSalmon4
+255 165   0 orange1
+238 154   0 orange2
+205 133   0 orange3
+139  90   0 orange4
+255 127   0 DarkOrange1
+238 118   0 DarkOrange2
+205 102   0 DarkOrange3
+139  69   0 DarkOrange4
+255 114  86 coral1
+238 106  80 coral2
+205  91  69 coral3
+139  62  47 coral4
+255  99  71 tomato1
+238  92  66 tomato2
+205  79  57 tomato3
+139  54  38 tomato4
+255  69   0 OrangeRed1
+238  64   0 OrangeRed2
+205  55   0 OrangeRed3
+139  37   0 OrangeRed4
+255   0   0 red1
+238   0   0 red2
+205   0   0 red3
+139   0   0 red4
+255  20 147 DeepPink1
+238  18 137 DeepPink2
+205  16 118 DeepPink3
+139  10  80 DeepPink4
+255 110 180 HotPink1
+238 106 167 HotPink2
+205  96 144 HotPink3
+139  58  98 HotPink4
+255 181 197 pink1
+238 169 184 pink2
+205 145 158 pink3
+139  99 108 pink4
+255 174 185 LightPink1
+238 162 173 LightPink2
+205 140 149 LightPink3
+139  95 101 LightPink4
+255 130 171 PaleVioletRed1
+238 121 159 PaleVioletRed2
+205 104 137 PaleVioletRed3
+139  71  93 PaleVioletRed4
+255  52 179 maroon1
+238  48 167 maroon2
+205  41 144 maroon3
+139  28  98 maroon4
+255  62 150 VioletRed1
+238  58 140 VioletRed2
+205  50 120 VioletRed3
+139  34  82 VioletRed4
+255   0 255 magenta1
+238   0 238 magenta2
+205   0 205 magenta3
+139   0 139 magenta4
+255 131 250 orchid1
+238 122 233 orchid2
+205 105 201 orchid3
+139  71 137 orchid4
+255 187 255 plum1
+238 174 238 plum2
+205 150 205 plum3
+139 102 139 plum4
+224 102 255 MediumOrchid1
+209  95 238 MediumOrchid2
+180  82 205 MediumOrchid3
+122  55 139 MediumOrchid4
+191  62 255 DarkOrchid1
+178  58 238 DarkOrchid2
+154  50 205 DarkOrchid3
+104  34 139 DarkOrchid4
+155  48 255 purple1
+145  44 238 purple2
+125  38 205 purple3
+ 85  26 139 purple4
+171 130 255 MediumPurple1
+159 121 238 MediumPurple2
+137 104 205 MediumPurple3
+ 93  71 139 MediumPurple4
+255 225 255 thistle1
+238 210 238 thistle2
+205 181 205 thistle3
+139 123 139 thistle4
+  0   0   0 gray0
+  0   0   0 grey0
+  3   3   3 gray1
+  3   3   3 grey1
+  5   5   5 gray2
+  5   5   5 grey2
+  8   8   8 gray3
+  8   8   8 grey3
+ 10  10  10 gray4
+ 10  10  10 grey4
+ 13  13  13 gray5
+ 13  13  13 grey5
+ 15  15  15 gray6
+ 15  15  15 grey6
+ 18  18  18 gray7
+ 18  18  18 grey7
+ 20  20  20 gray8
+ 20  20  20 grey8
+ 23  23  23 gray9
+ 23  23  23 grey9
+ 26  26  26 gray10
+ 26  26  26 grey10
+ 28  28  28 gray11
+ 28  28  28 grey11
+ 31  31  31 gray12
+ 31  31  31 grey12
+ 33  33  33 gray13
+ 33  33  33 grey13
+ 36  36  36 gray14
+ 36  36  36 grey14
+ 38  38  38 gray15
+ 38  38  38 grey15
+ 41  41  41 gray16
+ 41  41  41 grey16
+ 43  43  43 gray17
+ 43  43  43 grey17
+ 46  46  46 gray18
+ 46  46  46 grey18
+ 48  48  48 gray19
+ 48  48  48 grey19
+ 51  51  51 gray20
+ 51  51  51 grey20
+ 54  54  54 gray21
+ 54  54  54 grey21
+ 56  56  56 gray22
+ 56  56  56 grey22
+ 59  59  59 gray23
+ 59  59  59 grey23
+ 61  61  61 gray24
+ 61  61  61 grey24
+ 64  64  64 gray25
+ 64  64  64 grey25
+ 66  66  66 gray26
+ 66  66  66 grey26
+ 69  69  69 gray27
+ 69  69  69 grey27
+ 71  71  71 gray28
+ 71  71  71 grey28
+ 74  74  74 gray29
+ 74  74  74 grey29
+ 77  77  77 gray30
+ 77  77  77 grey30
+ 79  79  79 gray31
+ 79  79  79 grey31
+ 82  82  82 gray32
+ 82  82  82 grey32
+ 84  84  84 gray33
+ 84  84  84 grey33
+ 87  87  87 gray34
+ 87  87  87 grey34
+ 89  89  89 gray35
+ 89  89  89 grey35
+ 92  92  92 gray36
+ 92  92  92 grey36
+ 94  94  94 gray37
+ 94  94  94 grey37
+ 97  97  97 gray38
+ 97  97  97 grey38
+ 99  99  99 gray39
+ 99  99  99 grey39
+102 102 102 gray40
+102 102 102 grey40
+105 105 105 gray41
+105 105 105 grey41
+107 107 107 gray42
+107 107 107 grey42
+110 110 110 gray43
+110 110 110 grey43
+112 112 112 gray44
+112 112 112 grey44
+115 115 115 gray45
+115 115 115 grey45
+117 117 117 gray46
+117 117 117 grey46
+120 120 120 gray47
+120 120 120 grey47
+122 122 122 gray48
+122 122 122 grey48
+125 125 125 gray49
+125 125 125 grey49
+127 127 127 gray50
+127 127 127 grey50
+130 130 130 gray51
+130 130 130 grey51
+133 133 133 gray52
+133 133 133 grey52
+135 135 135 gray53
+135 135 135 grey53
+138 138 138 gray54
+138 138 138 grey54
+140 140 140 gray55
+140 140 140 grey55
+143 143 143 gray56
+143 143 143 grey56
+145 145 145 gray57
+145 145 145 grey57
+148 148 148 gray58
+148 148 148 grey58
+150 150 150 gray59
+150 150 150 grey59
+153 153 153 gray60
+153 153 153 grey60
+156 156 156 gray61
+156 156 156 grey61
+158 158 158 gray62
+158 158 158 grey62
+161 161 161 gray63
+161 161 161 grey63
+163 163 163 gray64
+163 163 163 grey64
+166 166 166 gray65
+166 166 166 grey65
+168 168 168 gray66
+168 168 168 grey66
+171 171 171 gray67
+171 171 171 grey67
+173 173 173 gray68
+173 173 173 grey68
+176 176 176 gray69
+176 176 176 grey69
+179 179 179 gray70
+179 179 179 grey70
+181 181 181 gray71
+181 181 181 grey71
+184 184 184 gray72
+184 184 184 grey72
+186 186 186 gray73
+186 186 186 grey73
+189 189 189 gray74
+189 189 189 grey74
+191 191 191 gray75
+191 191 191 grey75
+194 194 194 gray76
+194 194 194 grey76
+196 196 196 gray77
+196 196 196 grey77
+199 199 199 gray78
+199 199 199 grey78
+201 201 201 gray79
+201 201 201 grey79
+204 204 204 gray80
+204 204 204 grey80
+207 207 207 gray81
+207 207 207 grey81
+209 209 209 gray82
+209 209 209 grey82
+212 212 212 gray83
+212 212 212 grey83
+214 214 214 gray84
+214 214 214 grey84
+217 217 217 gray85
+217 217 217 grey85
+219 219 219 gray86
+219 219 219 grey86
+222 222 222 gray87
+222 222 222 grey87
+224 224 224 gray88
+224 224 224 grey88
+227 227 227 gray89
+227 227 227 grey89
+229 229 229 gray90
+229 229 229 grey90
+232 232 232 gray91
+232 232 232 grey91
+235 235 235 gray92
+235 235 235 grey92
+237 237 237 gray93
+237 237 237 grey93
+240 240 240 gray94
+240 240 240 grey94
+242 242 242 gray95
+242 242 242 grey95
+245 245 245 gray96
+245 245 245 grey96
+247 247 247 gray97
+247 247 247 grey97
+250 250 250 gray98
+250 250 250 grey98
+252 252 252 gray99
+252 252 252 grey99
+255 255 255 gray100
+255 255 255 grey100
diff --git a/vms/SetUp.com b/vms/SetUp.com
new file mode 100755
index 00000000..077318b5
--- /dev/null
+++ b/vms/SetUp.com
@@ -0,0 +1,37 @@
+$ VERIFY = F$Verify (0)
+$ On Error Then GoTo EXIT
+$ Write Sys$Output "SETting UP PBMplus (ver netpbm-VMS)..."
+$! 
+$!  Keep this proc in the top directory of the PBMPLUS tree. Execute it from 
+$!  anywhere and it will set up command symbols for all executables in the
+$!  PBMplus_Root:[EXE] directory.
+$!  There is a problem if this directory is located in a "rooted"
+$!  directory structure already.  It is not possible to define a "rooted"
+$!  directory twice, i.e.:
+$! BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD
+$! BAD                                                                 BAD
+$! BAD     Define /Trans=conceal Public Disk$:[Dir.]                   BAD
+$! BAD     Define /Trans=conceal PBMplus_Root Public:[PBMplus.]        BAD
+$! BAD                                                                 BAD
+$! BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD BAD
+$!  THIS WILL NOT WORK!  In this case, you will have to manually define
+$!  PBMplus_Root instead of the autosensing feature below....
+$! 
+$ PBMPLUS_PATH = F$Element (0, "]", F$Environment ("PROCEDURE")) + ".]"
+$ Define /Translation_Attributes = Concealed PBMplus_Root "''PBMPLUS_PATH'"
+$ Define PBMplus_Dir PBMplus_Root:[000000]
+$ Define PBMplusShr PBMplus_Dir:PBMplusShr
+$ NAME = "PBMplus_Root:[Exe]*.EXE"
+$LOOP:
+$   PROG = F$Search (NAME)
+$   If PROG .nes. ""
+$       Then
+$           PROG = PROG - F$Parse (PROG, , , "VERSION")
+$           CMD = F$Parse (PROG, , , "NAME")
+$           'CMD' :== $ 'PROG'
+$       GoTo LOOP
+$   EndIf
+$   @ PBMplus_Dir:ADD_LIST Hlp$Library PBMplus_Dir:PBMPLUS.HLB
+$EXIT:
+$   VERIFY = F$Verify (VERIFY)
+$   Exit
diff --git a/vms/stamp-date.com b/vms/stamp-date.com
new file mode 100755
index 00000000..349f6626
--- /dev/null
+++ b/vms/stamp-date.com
@@ -0,0 +1,25 @@
+$!# Copyright (C) 1993 by Oliver Trepte.
+$!#
+$!# Permission to use, copy, modify, and distribute this software and its
+$!# documentation for any purpose and without fee is hereby granted, provided
+$!# that the above copyright notice appear in all copies and that both that
+$!# copyright notice and this permission notice appear in supporting
+$!# documentation.  This software is provided "as is" without express or
+$!# implied warranty.
+$!#
+$!# This shell script creates a file called "compile_time.h" which holds
+$!# a define stating the compilation time. This is used for the -version
+$!# flag.
+$!#
+$!# modified to a VMS command procedure by Rick Dyson 29-NOV-1993
+
+$ OUTFILE   := "compile.h"
+$ DATE      := "''F$Time ()'"
+$ USER      := "''F$GetJPI (F$GetJPI ("", "PID"), "USERNAME")'"
+$ Open /Write OUTFILE compile.h
+$ Write OUTFILE "/* compile_time.h  This file tells the package when it was compiled */"
+$ Write OUTFILE "/* DO NOT EDIT - THIS FILE IS MAINTAINED AUTOMATICALLY              */"
+$ Write OUTFILE "#define COMPILE_TIME ""''DATE'"""
+$ Write OUTFILE "#define COMPILED_BY ""''USER'"""
+$ Close OUTFILE
+$ Exit