%!PS-Adobe-2.0 %%Version: 0.1 %%DocumentFonts: (atend) %%Pages: (atend) %%EndComments % % Version 3.3.2 prologue for troff files. % /#copies 1 store /aspectratio 1 def /formsperpage 1 def /landscape false def /linewidth .3 def /magnification 1 def /margin 0 def /orientation 0 def /resolution 720 def /rotation 1 def /xoffset 0 def /yoffset 0 def /roundpage true def /useclippath true def /pagebbox [0 0 612 792] def /R /Times-Roman def /I /Times-Italic def /B /Times-Bold def /BI /Times-BoldItalic def /H /Helvetica def /HI /Helvetica-Oblique def /HB /Helvetica-Bold def /HX /Helvetica-BoldOblique def /CW /Courier def /CO /Courier def /CI /Courier-Oblique def /CB /Courier-Bold def /CX /Courier-BoldOblique def /PA /Palatino-Roman def /PI /Palatino-Italic def /PB /Palatino-Bold def /PX /Palatino-BoldItalic def /Hr /Helvetica-Narrow def /Hi /Helvetica-Narrow-Oblique def /Hb /Helvetica-Narrow-Bold def /Hx /Helvetica-Narrow-BoldOblique def /KR /Bookman-Light def /KI /Bookman-LightItalic def /KB /Bookman-Demi def /KX /Bookman-DemiItalic def /AR /AvantGarde-Book def /AI /AvantGarde-BookOblique def /AB /AvantGarde-Demi def /AX /AvantGarde-DemiOblique def /NR /NewCenturySchlbk-Roman def /NI /NewCenturySchlbk-Italic def /NB /NewCenturySchlbk-Bold def /NX /NewCenturySchlbk-BoldItalic def /ZD /ZapfDingbats def /ZI /ZapfChancery-MediumItalic def /S /S def /S1 /S1 def /GR /Symbol def /inch {72 mul} bind def /min {2 copy gt {exch} if pop} bind def /setup { counttomark 2 idiv {def} repeat pop landscape {/orientation 90 orientation add def} if /scaling 72 resolution div def linewidth setlinewidth 1 setlinecap pagedimensions xcenter ycenter translate orientation rotation mul rotate width 2 div neg height 2 div translate xoffset inch yoffset inch neg translate margin 2 div dup neg translate magnification dup aspectratio mul scale scaling scaling scale addmetrics 0 0 moveto } def /pagedimensions { useclippath userdict /gotpagebbox known not and { /pagebbox [clippath pathbbox newpath] def roundpage currentdict /roundpagebbox known and {roundpagebbox} if } if pagebbox aload pop 4 -1 roll exch 4 1 roll 4 copy landscape {4 2 roll} if sub /width exch def sub /height exch def add 2 div /xcenter exch def add 2 div /ycenter exch def userdict /gotpagebbox true put } def /addmetrics { /Symbol /S null Sdefs cf /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf } def /pagesetup { /page exch def currentdict /pagedict known currentdict page known and { page load pagedict exch get cvx exec } if } def /decodingdefs [ {counttomark 2 idiv {y moveto show} repeat} {neg /y exch def counttomark 2 idiv {y moveto show} repeat} {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} {counttomark 2 idiv {y moveto show} repeat} {neg setfunnytext} ] def /setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def /w {neg moveto show} bind def /m {neg dup /y exch def moveto} bind def /done {/lastpage where {pop lastpage} if} def /f { dup /font exch def findfont exch dup /ptsize exch def scaling div dup /size exch def scalefont setfont linewidth ptsize mul scaling 10 mul div setlinewidth /spacewidth ( ) stringwidth pop def } bind def /changefont { /fontheight exch def /fontslant exch def currentfont [ 1 0 fontheight ptsize div fontslant sin mul fontslant cos div fontheight ptsize div 0 0 ] makefont setfont } bind def /sf {f} bind def /cf { dup length 2 idiv /entries exch def /chtab exch def /newencoding exch def /newfont exch def findfont dup length 1 add dict /newdict exch def {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall newencoding type /arraytype eq {newdict /Encoding newencoding put} if newdict /Metrics entries dict put newdict /Metrics get begin chtab aload pop 1 1 entries {pop def} for newfont newdict definefont pop end } bind def % % A few arrays used to adjust reference points and character widths in some % of the printer resident fonts. If square roots are too high try changing % the lines describing /radical and /radicalex to, % % /radical [0 -75 550 0] % /radicalex [-50 -75 500 0] % % Move braceleftbt a bit - default PostScript character is off a bit. % /Sdefs [ /bracketlefttp [201 500] /bracketleftbt [201 500] /bracketrighttp [-81 380] /bracketrightbt [-83 380] /braceleftbt [203 490] /bracketrightex [220 -125 500 0] /radical [0 0 550 0] /radicalex [-50 0 500 0] /parenleftex [-20 -170 0 0] /integral [100 -50 500 0] /infinity [10 -75 730 0] ] def /S1defs [ /underscore [0 80 500 0] /endash [7 90 650 0] ] def % % Tries to round clipping path dimensions, as stored in array pagebbox, so they % match one of the known sizes in the papersizes array. Lower left coordinates % are always set to 0. % /roundpagebbox { 7 dict begin /papersizes [8.5 inch 11 inch 14 inch 17 inch] def /mappapersize { /val exch def /slop .5 inch def /diff slop def /j 0 def 0 1 papersizes length 1 sub { /i exch def papersizes i get val sub abs dup diff le {/diff exch def /j i def} {pop} ifelse } for diff slop lt {papersizes j get} {val} ifelse } def pagebbox 0 0 put pagebbox 1 0 put pagebbox dup 2 get mappapersize 2 exch put pagebbox dup 3 get mappapersize 3 exch put end } bind def %%EndProlog %%BeginSetup mark % % Encoding vector and redefinition of findfont for the ISO Latin1 standard. % The 18 characters missing from ROM based fonts on older printers are noted % below. % /ISOLatin1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar % missing /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree % missing /plusminus % missing /twosuperior % missing /threesuperior % missing /acute /mu % missing /paragraph /periodcentered /cedilla /onesuperior % missing /ordmasculine /guillemotright /onequarter % missing /onehalf % missing /threequarters % missing /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth % missing /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply % missing /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute % missing /Thorn % missing /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth % missing /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide % missing /oslash /ugrave /uacute /ucircumflex /udieresis /yacute % missing /thorn % missing /ydieresis ] def /NewFontDirectory FontDirectory maxlength dict def % % Apparently no guarantee findfont is defined in systemdict so the obvious % % systemdict /findfont get exec % % can generate an error. So far the only exception is a VT600 (version 48.0). % userdict /@RealFindfont known not { userdict begin /@RealFindfont systemdict begin /findfont load end def end } if /findfont { dup NewFontDirectory exch known not { dup %dup systemdict /findfont get exec % not always in systemdict dup userdict /@RealFindfont get exec dup /Encoding get StandardEncoding eq { dup length dict begin {1 index /FID ne {def}{pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /DummyFontName exch definefont } if NewFontDirectory 3 1 roll put } if NewFontDirectory exch get } bind def setup %%EndSetup %%Page: 1 1 /saveobj save def mark 1 pagesetup 12 /Times-Bold f (Pamlookup User) 2236 1230 w (Manual) 3123 1230 w 10 /Times-Bold f (pamlookup) 720 1920 w 10 /Times-Roman f (Updated: 10 November 2002) 720 2076 w (Table Of Contents) 720 2196 w 10 /Times-Bold f (NAME) 720 2436 w 10 /Times-Roman f (pamlookup \255 map an image to a new image by using it as indices into a table) 720 2592 w 10 /Times-Bold f (SYNOPSIS) 720 2832 w (pamlookup \255lookupfile=) 720 2988 w 10 /Times-Italic f (lookupfile) 1749 2988 w 10 /Times-Bold f (\255missingcolor=) 2174 2988 w 10 /Times-Italic f (color) 2803 2988 w 10 /Times-Roman f ([) 3039 2988 w 10 /Times-Bold f (\255fit) 3072 2988 w 10 /Times-Roman f (]) 3199 2988 w 10 /Times-Italic f (indexfile) 3257 2988 w 10 /Times-Roman f (All) 720 3144 w (options) 881 3144 w (can) 1209 3144 w (be) 1380 3144 w (abbreviated) 1507 3144 w (to) 2005 3144 w (their) 2117 3144 w (shortest) 2334 3144 w (unique) 2679 3144 w (prefix.) 2985 3144 w (You) 3307 3144 w (may) 3513 3144 w (use) 3719 3144 w (two) 3886 3144 w (hyphens) 4070 3144 w (instead) 4437 3144 w (of) 4754 3144 w (one.) 4871 3144 w (You may separate an option name and its value with white space instead of an equals sign.) 720 3264 w 10 /Times-Bold f (DESCRIPTION) 720 3504 w 10 /Times-Roman f (This program is part of Netpbm.) 720 3696 w 10 /Times-Bold f (pamlookup) 720 3852 w 10 /Times-Roman f (takes) 1234 3852 w (a) 1468 3852 w (two) 1541 3852 w (dimensional) 1720 3852 w (array) 2238 3852 w (of) 2471 3852 w (indices) 2584 3852 w (and) 2897 3852 w (a) 3071 3852 w (lookup) 3145 3852 w (table) 3453 3852 w (as) 3677 3852 w (input.) 3790 3852 w (For) 4076 3852 w (each) 4245 3852 w (position) 4457 3852 w (in) 4810 3852 w (the) 4918 3852 w (index) 720 3972 w (array,) 968 3972 w (it) 1223 3972 w (looks) 1305 3972 w (up) 1548 3972 w (the) 1674 3972 w (index) 1822 3972 w (in) 2070 3972 w (the) 2174 3972 w (lookup) 2322 3972 w (table and places the result of the lookup in the output image.) 2626 3972 w (The) 720 4092 w (output) 916 4092 w (thus) 1213 4092 w (has) 1421 4092 w (the) 1595 4092 w (same) 1758 4092 w (width) 2004 4092 w (and) 2273 4092 w (height) 2458 4092 w (as) 2749 4092 w (the) 2873 4092 w (index) 3036 4092 w (image,) 3299 4092 w (and) 3609 4092 w (tuple) 3794 4092 w (types) 4035 4092 w (determined) 4287 4092 w (by) 4777 4092 w (the) 4918 4092 w (lookup table.) 720 4212 w (An) 720 4368 w (index) 870 4368 w (is) 1120 4368 w (either) 1215 4368 w (a) 1470 4368 w (whole) 1542 4368 w (number) 1814 4368 w (or) 2147 4368 w (an) 2258 4368 w (ordered) 2380 4368 w (pair) 2712 4368 w (of) 2895 4368 w (whole) 3006 4368 w (numbers.) 3278 4368 w (If) 3701 4368 w (the) 3796 4368 w (index) 3947 4368 w (image) 4198 4368 w (has) 4471 4368 w (a) 4633 4368 w (depth) 4706 4368 w (of) 4957 4368 w (one,) 720 4488 w (each) 916 4488 w (index) 1125 4488 w (in) 1374 4488 w (it) 1479 4488 w (is) 1561 4488 w (a) 1654 4488 w (whole) 1724 4488 w (number:) 1994 4488 w (the) 2353 4488 w (value) 2501 4488 w (of) 2743 4488 w (the) 2852 4488 w (one) 3000 4488 w (sample.) 3170 4488 w (If) 3529 4488 w (the) 3621 4488 w (index) 3769 4488 w (image) 4017 4488 w (has) 4287 4488 w (a) 4446 4488 w (depth) 4516 4488 w (greater) 4764 4488 w (than one, each index in it is an ordered pair of the first and second samples in the relevant tuple.) 720 4608 w (The) 720 4764 w (lookup) 904 4764 w (table) 1211 4764 w (is) 1434 4764 w (a) 1530 4764 w (PAM) 1603 4764 w (or) 1849 4764 w (PNM) 1961 4764 w (image.) 2207 4764 w (If) 2530 4764 w (the) 2625 4764 w (index) 2776 4764 w (image) 3027 4764 w (contains) 3300 4764 w (whole) 3663 4764 w (number) 3937 4764 w (indices,) 4272 4764 w (the) 4610 4764 w (lookup) 4762 4764 w (image) 720 4884 w (is) 990 4884 w (a) 1083 4884 w (single) 1153 4884 w (row) 1418 4884 w (and) 1599 4884 w (the) 1769 4884 w (index) 1917 4884 w (is) 2165 4884 w (a) 2258 4884 w (column) 2328 4884 w (number.) 2654 4884 w (The) 3035 4884 w (lookup) 3216 4884 w (result) 3520 4884 w (is) 3768 4884 w (the) 3861 4884 w (value) 4009 4884 w (of) 4251 4884 w (the tuple or pixel) 4360 4884 w (at the indicated column in the one row in the) 720 5004 w (lookup) 2530 5004 w (table.) 2834 5004 w (If) 3104 5004 w (the) 3196 5004 w (index) 3344 5004 w (image) 3592 5004 w (contains) 3862 5004 w (ordered) 4221 5004 w (pair) 4551 5004 w (indices,) 4732 5004 w (the) 720 5124 w (first) 869 5124 w (element) 1057 5124 w (of) 1400 5124 w (the) 1510 5124 w (ordered) 1659 5124 w (pair) 1990 5124 w (is) 2171 5124 w (a) 2264 5124 w (row) 2334 5124 w (number) 2515 5124 w (and) 2846 5124 w (the) 3016 5124 w (second) 3164 5124 w (element) 3467 5124 w (of) 3809 5124 w (the) 3918 5124 w (ordered) 4066 5124 w (pair) 4396 5124 w (is) 4577 5124 w (a) 4670 5124 w (column) 4740 5124 w (number.) 720 5244 w (The) 1104 5244 w (lookup) 1288 5244 w (result) 1595 5244 w (is) 1846 5244 w (the) 1942 5244 w (value) 2093 5244 w (of) 2338 5244 w (the) 2450 5244 w (tuple) 2601 5244 w (or) 2830 5244 w (pixel) 2942 5244 w (at) 3171 5244 w (the) 3272 5244 w (indicated) 3423 5244 w (row) 3818 5244 w (and) 4002 5244 w (column) 4175 5244 w (in) 4504 5244 w (the) 4611 5244 w (lookup) 4762 5244 w (table.) 720 5364 w (For example:) 720 5520 w (Consider an index image consisting of a 3x2x1 PAM as follows:) 1300 5520 w (center ; ) 720 5700 w ( 0) 745 5820 w ( 1) 745 5940 w ( 0) 745 6060 w () 745 6180 w () 720 6420 w ( 2) 745 6540 w ( 2) 745 6660 w ( 2) 745 6780 w () 745 6900 w (and a lookup table consisting of a 3x1 PPM image as follows:) 720 7200 w cleartomark showpage saveobj restore %%EndPage: 1 1 %%Page: 2 2 /saveobj save def mark 2 pagesetup 10 /Times-Roman f (\255 2 \255) 2797 480 w (center ; ) 720 840 w ( red) 745 960 w ( yellow) 745 1080 w ( beige) 745 1200 w () 745 1320 w (The lookup table above says Index 0) 720 1620 w (corresponds) 2210 1620 w (to) 2718 1620 w (the) 2822 1620 w (color) 2970 1620 w (red,) 3201 1620 w (Index) 3379 1620 w (1) 3632 1620 w (corresponds) 3708 1620 w (to) 4216 1620 w (yellow,) 4320 1620 w (and) 4643 1620 w (Index) 4813 1620 w (2 corresponds to beige.) 720 1740 w (The output of) 1696 1740 w 10 /Times-Bold f (pamlookup) 2265 1740 w 10 /Times-Roman f (is the following PPM image:) 2775 1740 w (center ; ) 720 1920 w ( red) 745 2040 w ( yellow) 745 2160 w ( red) 745 2280 w () 745 2400 w () 720 2640 w ( beige) 745 2760 w ( beige) 745 2880 w ( beige) 745 3000 w () 745 3120 w (Now) 720 3456 w (let's) 942 3456 w (look) 1142 3456 w (at) 1348 3456 w (an) 1448 3456 w (example) 1570 3456 w (of) 1936 3456 w (the) 2047 3456 w (more) 2197 3456 w (complex) 2430 3456 w (case) 2803 3456 w (where) 3003 3456 w (the) 3275 3456 w (indices) 3426 3456 w (are) 3738 3456 w (ordered) 3888 3456 w (pairs) 4221 3456 w (of) 4444 3456 w (whole) 4556 3456 w (num\255) 4829 3456 w (bers instead of whole numbers.) 720 3576 w (Our index image will be this 3x2x2 PAM image:) 2015 3576 w (center ; ) 720 3756 w ( \(0,0\)) 745 3876 w ( \(0,1\)) 745 3996 w ( \(0,0\)) 745 4116 w () 745 4236 w () 720 4476 w ( \(1,1\)) 745 4596 w ( \(1,0\)) 745 4716 w ( \(0,0\)) 745 4836 w () 745 4956 w (Our lookup table for the example will be this two dimensional PPM:) 720 5256 w (center ; ) 720 5436 w ( red) 745 5556 w ( yellow) 795 5676 w () 745 5796 w () 720 6036 w ( green) 745 6156 w ( black) 745 6276 w () 745 6396 w (This) 720 6696 w (lookup) 931 6696 w (table) 1242 6696 w (says) 1469 6696 w (Index) 1674 6696 w (\(0,0\)) 1934 6696 w (corresponds) 2159 6696 w (to) 2675 6696 w (the) 2787 6696 w (color) 2943 6696 w (red,) 3182 6696 w (Index) 3368 6696 w (\(0,1\)) 3629 6696 w (corresponds) 3854 6696 w (to) 4370 6696 w (yellow,) 4482 6696 w (Index) 4813 6696 w (\(1,0\)) 720 6816 w (corresponds) 941 6816 w (to) 1453 6816 w (green,) 1561 6816 w (and) 1837 6816 w (Index) 2011 6816 w (\(1,1\)) 2268 6816 w (corresponds) 2489 6816 w (to) 3001 6816 w (black.) 3109 6816 w (The) 3404 6816 w (output) 3588 6816 w (of) 3873 6816 w 10 /Times-Bold f (pamlookup) 3985 6816 w 10 /Times-Roman f (is) 4499 6816 w (the) 4595 6816 w (follow\255) 4746 6816 w (ing PPM image:) 720 6936 w (center ; ) 720 7116 w ( red) 745 7236 w cleartomark showpage saveobj restore %%EndPage: 2 2 %%Page: 3 3 /saveobj save def mark 3 pagesetup 10 /Times-Roman f (\255 3 \255) 2797 480 w ( yellow) 795 840 w ( red) 745 960 w () 745 1080 w () 720 1320 w ( black) 745 1440 w ( green) 745 1560 w ( red) 770 1680 w () 745 1800 w (If) 720 2136 w (an) 817 2136 w (index) 942 2136 w (specifies) 1195 2136 w (a) 1575 2136 w (row) 1650 2136 w (or) 1836 2136 w (column) 1950 2136 w (that) 2281 2136 w (exceeds) 2462 2136 w (the) 2808 2136 w (dimensions) 2961 2136 w (of) 3449 2136 w (the) 3564 2136 w (lookup) 3718 2136 w (table) 4028 2136 w (image,) 4254 2136 w 10 /Times-Bold f (pamlookup) 4555 2136 w 10 /Times-Roman f (uses) 720 2256 w (the) 919 2256 w (value) 1068 2256 w (from) 1310 2256 w (the) 1530 2256 w (top) 1678 2256 w (left) 1832 2256 w (corner) 1991 2256 w (of) 2271 2256 w (the) 2380 2256 w (lookup) 2528 2256 w (image,) 2832 2256 w (or) 3127 2256 w (the) 3236 2256 w (value) 3384 2256 w (you) 3626 2256 w (specify) 3802 2256 w (with) 4116 2256 w (the) 4320 2256 w 10 /Times-Bold f (\255missingcolor) 4468 2256 w 10 /Times-Roman f (option.) 720 2376 w (The) 720 2532 w 10 /Times-Italic f (indexfile) 914 2532 w 10 /Times-Roman f (argument) 1297 2532 w (identifies) 1713 2532 w (the) 2125 2532 w (file) 2287 2532 w (containing) 2460 2532 w (the) 2922 2532 w (index) 3084 2532 w (PAM) 3346 2532 w (or) 3603 2532 w (PNM) 3726 2532 w (image.) 3983 2532 w 10 /Times-Bold f (\255) 4317 2532 w 10 /Times-Roman f (means) 4390 2532 w (Standard) 4685 2532 w (Input.) 720 2652 w (The) 1019 2652 w (mandatory) 1212 2652 w 10 /Times-Bold f (\255lookupfile) 1676 2652 w 10 /Times-Roman f (option) 2175 2652 w (identifies) 2468 2652 w (the) 2877 2652 w (file) 3036 2652 w (containing) 3206 2652 w (the) 3665 2652 w (lookup) 3824 2652 w (table) 4139 2652 w (image.) 4370 2652 w (Again,) 4701 2652 w 10 /Times-Bold f (\255) 5007 2652 w 10 /Times-Roman f (means) 720 2772 w (Standard) 1004 2772 w (Input.) 1388 2772 w (It) 1678 2772 w (won't) 1768 2772 w (work) 2030 2772 w (if) 2264 2772 w (both) 2354 2772 w (the) 2561 2772 w (index) 2712 2772 w (image) 2963 2772 w (file) 3236 2772 w (and) 3399 2772 w (lookup) 3573 2772 w (table) 3881 2772 w (file) 4105 2772 w (are) 4268 2772 w (Standard) 4419 2772 w (Input.) 4804 2772 w (The output image goes to Standard Output.) 720 2892 w (You can use) 720 3048 w 10 /Times-Bold f (ppmmake) 1238 3048 w 10 /Times-Roman f (and) 1691 3048 w 10 /Times-Bold f (pnmcat) 1860 3048 w 10 /Times-Roman f (to create a lookup table file.) 2207 3048 w (If) 720 3204 w (you) 817 3204 w (want) 998 3204 w (to) 1223 3204 w (use) 1332 3204 w (two) 1496 3204 w (separate) 1677 3204 w (1\255plane) 2034 3204 w (images) 2364 3204 w (as) 2678 3204 w (indices) 2792 3204 w (\(so) 3107 3204 w (that) 3261 3204 w (your) 3443 3204 w (output) 3658 3204 w (reflects) 3946 3204 w (the) 4271 3204 w (combination) 4425 3204 w (of) 4957 3204 w (both) 720 3324 w (inputs\),) 927 3324 w (use) 1259 3324 w 10 /Times-Bold f (pamstack) 1421 3324 w 10 /Times-Roman f (to) 1861 3324 w (combine) 1968 3324 w (the) 2341 3324 w (two) 2491 3324 w (into) 2669 3324 w (one) 2853 3324 w (two\255plane) 3025 3324 w (image) 3452 3324 w (\(and) 3724 3324 w (use) 3929 3324 w (a) 4090 3324 w (2\255dimensional) 4162 3324 w (lookup) 4762 3324 w (table image\).) 720 3444 w 10 /Times-Bold f (OPTIONS) 720 3684 w (\255lookupfile=) 970 3876 w 10 /Times-Italic f (lookupfilelookupfile) 1489 3876 w 10 /Times-Roman f (names) 2330 3876 w (the) 2626 3876 w (file) 2789 3876 w (that) 2963 3876 w (contains) 3154 3876 w (the) 3528 3876 w (PAM) 3691 3876 w (or) 3949 3876 w (PNM) 4073 3876 w (image) 4331 3876 w (that) 4617 3876 w (is) 4809 3876 w (the) 4918 3876 w (lookup table.) 1220 3996 w (This option is mandatory.) 1792 3996 w 10 /Times-Bold f (\255missingcolor=) 970 4152 w 10 /Times-Italic f (color) 1599 4152 w 10 /Times-Roman f (This) 1810 4152 w (option) 2017 4152 w (is) 2302 4152 w (meaningful) 2398 4152 w (only) 2882 4152 w (if) 3089 4152 w (the) 3179 4152 w (lookup) 3330 4152 w (image) 3637 4152 w (\(and) 3910 4152 w (therefore) 4116 4152 w (the) 4504 4152 w (output\)) 4655 4152 w (is) 4973 4152 w (a) 1220 4272 w (PNM) 1292 4272 w (image.) 1537 4272 w 10 /Times-Italic f (color) 1859 4272 w 10 /Times-Roman f (specifies) 2098 4272 w (the) 2475 4272 w (color) 2625 4272 w (that) 2858 4272 w (is) 3036 4272 w (to) 3131 4272 w (go) 3237 4272 w (in) 3365 4272 w (the) 3470 4272 w (output) 3619 4272 w (wherever) 3902 4272 w (the) 4299 4272 w (index) 4448 4272 w (from) 4697 4272 w (the) 4918 4272 w (input) 1220 4392 w (is) 1453 4392 w (not) 1547 4392 w (present) 1702 4392 w (in) 2017 4392 w (the) 2122 4392 w (lookup) 2271 4392 w (table) 2576 4392 w (\(not) 2797 4392 w (present) 2985 4392 w (means) 3300 4392 w (the) 3582 4392 w (index) 3731 4392 w (exceeds) 3980 4392 w (the) 4323 4392 w (dimensions) 4473 4392 w (of) 4957 4392 w (the lookup image \255\255 e.g. index is 100 but the lookup image is a 50 x 1 PPM\).) 1220 4512 w (If) 970 4668 w (you) 1074 4668 w (don't) 1262 4668 w (specify) 1511 4668 w (this) 1837 4668 w (option) 2020 4668 w (of) 2314 4668 w 10 /Times-Bold f (\255fit) 2435 4668 w 10 /Times-Roman f (,) 2562 4668 w 10 /Times-Bold f (pamlookup) 2625 4668 w 10 /Times-Roman f (uses) 3148 4668 w (the) 3358 4668 w (value) 3518 4668 w (from) 3772 4668 w (the) 4004 4668 w (top) 4164 4668 w (left) 4331 4668 w (corner) 4503 4668 w (of) 4796 4668 w (the) 4918 4668 w (lookup image whenever an index exceeds the dimensions of the lookup image.) 970 4788 w (Specify the color \() 970 4944 w 10 /Times-Italic f (color) 1710 4944 w 10 /Times-Roman f (\) as described for the argument of the) 1921 4944 w 10 /Times-Bold f (ppm) 3439 4944 w 10 /S f (_) 3634 4944 w 10 /Times-Bold f (parsecolor\(\)) 3684 4944 w 10 /Times-Roman f (library routine.) 4224 4944 w (Another way to deal with a too\255small lookup image is to use the) 970 5100 w 10 /Times-Bold f (\255fit) 3554 5100 w 10 /Times-Roman f (option.) 3706 5100 w 10 /Times-Bold f (\255fit) 970 5256 w 10 /Times-Roman f (This) 1220 5256 w (option) 1425 5256 w (says) 1708 5256 w (to) 1907 5256 w (shrink) 2012 5256 w (or) 2289 5256 w (expand) 2399 5256 w (the) 2714 5256 w (lookup) 2863 5256 w (image) 3168 5256 w (as) 3439 5256 w (necessary) 3549 5256 w (to) 3963 5256 w (fit) 4068 5256 w (the) 4185 5256 w (indices) 4335 5256 w (present) 4646 5256 w (in) 4962 5256 w (the) 1220 5376 w (index) 1370 5376 w (image,) 1620 5376 w (per) 1917 5376 w (the) 2072 5376 w (index) 2222 5376 w (image's) 2472 5376 w (maxval.) 2816 5376 w (For) 3188 5376 w (example,) 3355 5376 w (if) 3746 5376 w (your) 3835 5376 w (index) 4046 5376 w (image) 4296 5376 w (has) 4568 5376 w (a) 4729 5376 w (single) 4801 5376 w (plane) 1220 5496 w (and) 1482 5496 w (a) 1672 5496 w (maxval) 1762 5496 w (of) 2102 5496 w (255) 2231 5496 w (and) 2427 5496 w (your) 2617 5496 w (lookup) 2846 5496 w (image) 3170 5496 w (is) 3460 5496 w (1) 3573 5496 w (row) 3669 5496 w (of) 3870 5496 w (10) 3999 5496 w (columns,) 4145 5496 w 10 /Times-Bold f (pamlookup) 4555 5496 w 10 /Times-Roman f (stretches) 1220 5616 w (your) 1603 5616 w (lookup) 1820 5616 w (image) 2132 5616 w (to) 2410 5616 w (255) 2522 5616 w (columns) 2706 5616 w (before) 3079 5616 w (doing) 3367 5616 w (the) 3629 5616 w (lookups.) 3784 5616 w 10 /Times-Bold f (pamlookup) 4184 5616 w 10 /Times-Roman f (does) 4702 5616 w (the) 4918 5616 w (stretching \(or shrinking\) with the) 1220 5736 w 10 /Times-Bold f (pamscale) 2566 5736 w 10 /Times-Roman f (program.) 2985 5736 w (When you use) 970 5892 w 10 /Times-Bold f (\255fit) 1566 5892 w 10 /Times-Roman f (,) 1693 5892 w 10 /Times-Bold f (pamlookup) 1743 5892 w 10 /Times-Roman f (never fails or warns you due to invalid lookup image dimensions,) 2253 5892 w (and) 4896 5892 w (the) 970 6012 w 10 /Times-Bold f (\255missingcolor) 1117 6012 w 10 /Times-Roman f (option has no effect.) 1714 6012 w 10 /Times-Bold f (EXAMPLES) 720 6252 w (Example: rainfall map) 720 6528 w 10 /Times-Roman f (Say) 720 6720 w (you) 899 6720 w (have) 1078 6720 w (a) 1295 6720 w (set) 1368 6720 w (of) 1508 6720 w (rainfall) 1620 6720 w (data) 1937 6720 w (in) 2132 6720 w (a) 2239 6720 w (single) 2312 6720 w (plane) 2580 6720 w (PAM) 2825 6720 w (image.) 3071 6720 w (The) 3394 6720 w (rows) 3578 6720 w (and) 3801 6720 w (columns) 3974 6720 w (of) 4342 6720 w (the) 4454 6720 w (PAM) 4605 6720 w (indi\255) 4851 6720 w (cate) 720 6840 w (lattitude) 909 6840 w (and) 1266 6840 w (longitude.) 1439 6840 w (The) 1896 6840 w (sample) 2080 6840 w (values) 2392 6840 w (are) 2676 6840 w (the) 2826 6840 w (annual) 2976 6840 w (rainfall) 3270 6840 w (in) 3586 6840 w (\(whole\)) 3692 6840 w (centimeters.) 4030 6840 w (The) 4568 6840 w (highest) 4751 6840 w (rainfall value in the image is 199 centimeters.) 720 6960 w (The image is in the file rainfall.pam.) 2595 6960 w (You) 720 7116 w (want) 919 7116 w (to) 1140 7116 w (produce) 1245 7116 w (a) 1593 7116 w (PPM) 1664 7116 w (rainfall) 1892 7116 w (map) 2207 7116 w (with) 2406 7116 w (green) 2611 7116 w (for) 2859 7116 w (the) 3002 7116 w (wettest) 3151 7116 w (places,) 3461 7116 w (red) 3762 7116 w (for) 3916 7116 w (the) 4059 7116 w (driest,) 4208 7116 w (and) 4482 7116 w (other) 4653 7116 w (col\255) 4885 7116 w (ors in between.) 720 7236 w cleartomark showpage saveobj restore %%EndPage: 3 3 %%Page: 4 4 /saveobj save def mark 4 pagesetup 10 /Times-Roman f (\255 4 \255) 2797 480 w (First,) 720 840 w (compose) 958 840 w (a) 1342 840 w (lookup) 1415 840 w (table) 1722 840 w (image,) 1945 840 w (probably) 2243 840 w (with) 2627 840 w (a) 2834 840 w (graphical) 2907 840 w (editor) 3307 840 w (and) 3569 840 w (the) 3742 840 w (image) 3893 840 w (blown) 4166 840 w (way) 4445 840 w (up) 4641 840 w (so) 4771 840 w (you) 4890 840 w (can) 720 960 w (work) 889 960 w (with) 1125 960 w (individual) 1334 960 w (pixels.) 1771 960 w (The) 2091 960 w (image) 2277 960 w (must) 2552 960 w (have) 2778 960 w (a) 2997 960 w (single) 3072 960 w (row) 3342 960 w (and) 3528 960 w (200) 3703 960 w (columns.) 3884 960 w (Make) 4303 960 w (the) 4560 960 w (leftmost) 4712 960 w (pixel red and the rightmost pixel green and choose appropriate colors in between.) 720 1080 w (Call it colorkey.ppm.) 4022 1080 w 10 /Courier f (pamlookup rainfall.ppm \255lookupfile=colorkey.ppm >rainfallmap.ppm) 960 1260 w 10 /Times-Roman f (Now) 720 1476 w (lets) 941 1476 w (say) 1107 1476 w (you're) 1267 1476 w (too) 1554 1476 w (lazy) 1710 1476 w (to) 1904 1476 w (type) 2010 1476 w (in) 2210 1476 w (200) 2316 1476 w (color) 2494 1476 w (values) 2727 1476 w (and) 3010 1476 w (nobody) 3182 1476 w (really) 3510 1476 w (cares) 3765 1476 w (about) 3997 1476 w (the) 4247 1476 w (places) 4397 1476 w (that) 4674 1476 w (have) 4852 1476 w (more) 720 1596 w (than) 951 1596 w (99 centimeters of annual rainfall.) 1149 1596 w (In that case, just make colorkey.ppm 100 columns wide and do) 2521 1596 w (this:) 720 1716 w 10 /Courier f (pamlookup rainfall.ppm \255lookupfile=colorkey.ppm \255missingcolor=black) 960 1896 w (>rainfallmap.ppm) 5460 1896 w 10 /Times-Roman f (Now if there are areas that get more than 100 centimeters of rainfall, they will just show up black in the out\255) 720 2076 w (put.) 720 2196 w 10 /Times-Bold f (Example: graphical diff) 720 2436 w 10 /Times-Roman f (Say) 720 2628 w (you) 900 2628 w (want) 1080 2628 w (to) 1304 2628 w (compare) 1412 2628 w (two) 1785 2628 w (PBM) 1965 2628 w (\(black) 2207 2628 w (and) 2486 2628 w (white\)) 2660 2628 w (images) 2946 2628 w (visually.) 3260 2628 w (Each) 3658 2628 w (consists) 3888 2628 w (of) 4236 2628 w (black) 4350 2628 w (foreground) 4597 2628 w (pixels) 720 2748 w (on) 992 2748 w (a) 1125 2748 w (white) 1202 2748 w (background.) 1457 2748 w (You) 2011 2748 w (want) 2215 2748 w (to) 2441 2748 w (create) 2551 2748 w (an) 2820 2748 w (image) 2946 2748 w (that) 3222 2748 w (contains) 3404 2748 w (background) 3769 2748 w (where) 4272 2748 w (both) 4547 2748 w (images) 4757 2748 w (contain) 720 2868 w (background) 1042 2868 w (and) 1541 2868 w (foreground) 1713 2868 w (where) 2184 2868 w (both) 2455 2868 w (images) 2661 2868 w (contain) 2972 2868 w (foreground.) 3294 2868 w (But) 3815 2868 w (where) 3988 2868 w (Image) 4259 2868 w (1) 4536 2868 w (has) 4614 2868 w (a) 4775 2868 w (fore\255) 4847 2868 w (ground) 720 2988 w (pixel) 1033 2988 w (and) 1263 2988 w (Image) 1437 2988 w (2) 1716 2988 w (does) 1796 2988 w (not,) 2009 2988 w (you) 2192 2988 w (want) 2372 2988 w (red) 2596 2988 w (in) 2753 2988 w (the) 2861 2988 w (output;) 3013 2988 w (where) 3327 2988 w (Image) 3600 2988 w (2) 3879 2988 w (has) 3959 2988 w (a) 4122 2988 w (foreground) 4195 2988 w (pixel) 4667 2988 w (and) 4896 2988 w (Image 1 does not, you want green.) 720 3108 w (First, we create a single image that contains the information from both input PBMs:) 720 3264 w 10 /Courier f (pamstack image1.pbm image2.pbm >bothimages.pam) 960 3444 w 10 /Times-Roman f (Note that this image has 1 of 4 possible tuple values at each location: \(0,0\), \(0,1\), \(1,0\), or \(1,1\).) 720 3624 w (Now, we create a lookup table that we can index with those 4 values:) 720 3780 w 10 /Courier f (ppmmake white 1 1 >white.ppm) 960 3960 w (ppmmake black 1 1 >black.ppm) 960 4080 w (ppmmake red) 960 4200 w (1 1 >red.ppm) 1800 4200 w (ppmmake green 1 1 >green.ppm) 960 4320 w (pnmcat \255leftright black.ppm red.ppm) 960 4440 w (>blackred.ppm) 3240 4440 w (pnmcat \255leftright green.ppm white.ppm >greenwhite.ppm) 960 4560 w (pnmcat \255topbottom blackred.ppm greenwhite.ppm >lookup.ppm) 960 4680 w 10 /Times-Roman f (Finally, we look up the indices from our index in our lookup table and produce the output:) 720 4896 w 10 /Courier f (pamlookup bothimages.ppm \255lookupfile=lookup.ppm >imagediff.ppm) 960 5076 w 10 /Times-Bold f (SEE ALSO) 720 5376 w 10 /Times-Roman f (pnmremap, ppmmake, pnmcat, pamstack, pnm, pam) 720 5532 w 10 /Times-Bold f (HISTORY) 720 5772 w (pamlookup) 720 5964 w 10 /Times-Roman f (was new in Netpbm 10.13 \(December 2002\).) 1230 5964 w 10 /S1 f (________________________________________________________________________) 720 6084 w 10 /Times-Bold f (Table Of Contents) 720 6324 w 10 /LucidaSansUnicode22 f (\031) 720 6516 w 10 /Times-Roman f (NAME) 970 6516 w 10 /LucidaSansUnicode22 f (\031) 720 6672 w 10 /Times-Roman f (SYNOPSIS) 970 6672 w 10 /LucidaSansUnicode22 f (\031) 720 6828 w 10 /Times-Roman f (DESCRIPTION) 970 6828 w 10 /LucidaSansUnicode22 f (\031) 720 6984 w 10 /Times-Roman f (OPTIONS) 970 6984 w 10 /LucidaSansUnicode22 f (\031) 720 7140 w 10 /Times-Roman f (EXAMPLES) 970 7140 w 10 /LucidaSansUnicode22 f (\031) 720 7296 w 10 /Times-Roman f (HISTORY) 970 7296 w cleartomark showpage saveobj restore %%EndPage: 4 4 %%Page: 5 5 /saveobj save def mark 5 pagesetup 10 /Times-Roman f (\255 5 \255) 2797 480 w 10 /LucidaSansUnicode22 f (\031) 720 840 w 10 /Times-Roman f (SEE ALSO) 970 840 w cleartomark showpage saveobj restore %%EndPage: 5 5 %%Trailer done %%DocumentFonts: Times-Roman LucidaSansUnicode22 Times-Italic Times-Bold Courier S1 S %%Pages: 5