%!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 (Ppmshift) 2296 1230 w (User) 2794 1230 w (Manual) 3063 1230 w 10 /Times-Bold f (ppmshift) 720 1920 w 10 /Times-Roman f (Updated: 16 November 1993) 720 2076 w (Table Of Contents) 720 2196 w 10 /Times-Bold f (NAME) 720 2436 w 10 /Times-Roman f (ppmshift \255 shift lines of a PPM image left or right by a random amount) 720 2592 w 10 /Times-Bold f (SYNOPSIS) 720 2832 w (ppmshift) 720 2988 w 10 /Times-Italic f (shift) 1129 2988 w 10 /Times-Roman f ([) 1327 2988 w 10 /Times-Italic f (ppmfile) 1360 2988 w 10 /Times-Roman f (]) 1660 2988 w 10 /Times-Bold f (DESCRIPTION) 720 3228 w 10 /Times-Roman f (This program is part of Netpbm.) 720 3420 w 10 /Times-Bold f (ppmshift) 720 3576 w 10 /Times-Roman f (reads) 1142 3576 w (a) 1390 3576 w (PPM) 1472 3576 w (image) 1711 3576 w (as) 1993 3576 w (input.) 2115 3576 w (Shifts) 2410 3576 w (every) 2683 3576 w (row) 2943 3576 w (of) 3137 3576 w (image) 3259 3576 w (data) 3542 3576 w (to) 3747 3576 w (the) 3864 3576 w (left) 4025 3576 w (or) 4197 3576 w (right) 4319 3576 w (by) 4547 3576 w (a) 4686 3576 w (certain) 4769 3576 w (amount.) 720 3696 w (The) 1095 3696 w 10 /Times-Italic f (shift) 1275 3696 w 10 /Times-Roman f (parameter determines by how many pixels a row is to be shifted at most.) 1473 3696 w (This) 720 3852 w (is) 926 3852 w (another) 1021 3852 w (one) 1348 3852 w (of) 1520 3852 w (those) 1631 3852 w (effects) 1870 3852 w (I) 2163 3852 w (intended) 2224 3852 w (to) 2596 3852 w (use) 2702 3852 w (for) 2863 3852 w (MPEG) 3008 3852 w (tests.) 3315 3852 w (Unfortunately,) 3572 3852 w (this) 4186 3852 w (program) 4360 3852 w (will) 4727 3852 w (not) 4912 3852 w (help) 720 3972 w (me) 932 3972 w (here) 1094 3972 w (\255) 1304 3972 w (it) 1376 3972 w (creates) 1471 3972 w (too) 1786 3972 w (random) 1953 3972 w (patterns) 2297 3972 w (to) 2652 3972 w (be) 2769 3972 w (used) 2902 3972 w (for) 3124 3972 w (animations.) 3279 3972 w (Still,) 3807 3972 w (it) 4039 3972 w (might) 4134 3972 w (give) 4407 3972 w (interesting) 4618 3972 w (results on still images.) 720 4092 w 10 /Times-Bold f (EXAMPLE) 720 4332 w 10 /Times-Roman f (Check) 720 4488 w (this) 1007 4488 w (out:) 1184 4488 w (Save) 1372 4488 w (your) 1598 4488 w (favourite) 1813 4488 w (model's) 2205 4488 w (picture) 2559 4488 w (from) 2868 4488 w (something) 3095 4488 w (like) 3545 4488 w (alt.binaries.pictures.supermodels) 3728 4488 w (\(ok,) 720 4608 w (or) 908 4608 w (from) 1021 4608 w (any) 1245 4608 w (other) 1419 4608 w (picture) 1654 4608 w (source\),) 1961 4608 w (convert) 2309 4608 w (it) 2638 4608 w (to) 2724 4608 w (ppm,) 2832 4608 w (and) 3065 4608 w (process) 3239 4608 w (it) 3568 4608 w (e.g.) 3654 4608 w (like) 3827 4608 w (this,) 4006 4608 w (assuming) 4205 4608 w (the) 4612 4608 w (picture) 4763 4608 w (is 800x600 pixels:) 720 4728 w (#take the upper half, and leave it like it is) 845 4908 w (pamcut \255top=0 \255width=800 \255height=300 cs.ppm >upper.ppm) 845 5028 w (#take the lower half, flip it upside down, dim it and distort it a little) 845 5268 w (pamcut \255top=300 \255width=800 \255height=300 cs.ppm ) 845 5388 w 10 /S f (\357) 2873 5388 w 10 /Times-Roman f (pamflip \255topbottom ) 3172 5388 w 10 /S f (\357) 3978 5388 w 10 /Times-Roman f (ppmdim 0.7 ) 4277 5388 w 10 /S f (\357) 4786 5388 w 10 /Times-Roman f (ppmshift 10 >lower.ppm) 5085 5388 w (#and concatenate the two pieces) 845 5628 w (pnmcat \255topbottom upper.ppm lower.ppm >newpic.ppm) 845 5748 w (The resulting picture looks like the image being reflected on a water surface with slight ripples.) 720 5928 w 10 /Times-Bold f (SEE ALSO) 720 6168 w 10 /Times-Roman f (ppm, pamcut, pamflip, ppmdim, pnmcat) 720 6324 w 10 /Times-Bold f (AUTHOR) 720 6564 w 10 /Times-Roman f (Copyright \(C\) 1993 by Frank Neumann) 720 6720 w 10 /S1 f (________________________________________________________________________) 720 6840 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 10 /Times-Bold f (Table Of Contents) 720 840 w 10 /LucidaSansUnicode22 f (\031) 720 1032 w 10 /Times-Roman f (NAME) 970 1032 w 10 /LucidaSansUnicode22 f (\031) 720 1188 w 10 /Times-Roman f (SYNOPSIS) 970 1188 w 10 /LucidaSansUnicode22 f (\031) 720 1344 w 10 /Times-Roman f (DESCRIPTION) 970 1344 w 10 /LucidaSansUnicode22 f (\031) 720 1500 w 10 /Times-Roman f (EXAMPLE) 970 1500 w 10 /LucidaSansUnicode22 f (\031) 720 1656 w 10 /Times-Roman f (SEE ALSO) 970 1656 w 10 /LucidaSansUnicode22 f (\031) 720 1812 w 10 /Times-Roman f (AUTHOR) 970 1812 w cleartomark showpage saveobj restore %%EndPage: 2 2 %%Trailer done %%DocumentFonts: Times-Roman LucidaSansUnicode22 Times-Italic Times-Bold S1 S %%Pages: 2