diff options
Diffstat (limited to 'postscript/prologues/postgif.ps')
-rw-r--r-- | postscript/prologues/postgif.ps | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/postscript/prologues/postgif.ps b/postscript/prologues/postgif.ps new file mode 100644 index 00000000..9827857f --- /dev/null +++ b/postscript/prologues/postgif.ps @@ -0,0 +1,104 @@ +% +% Version 3.3.2 prologue for GIF pixmap files. +% + +/#copies 1 store +/aspectratio 1 def +/formsperpage 1 def +/landscape false def +/magnification 1 def +/margin 0 def +/orientation 0 def +/rotation 1 def +/xoffset 0 def +/yoffset 0 def + +/useclippath true def +/pagebbox [0 0 612 792] 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 + + pagedimensions + xcenter ycenter translate + orientation rotation mul rotate + xoffset inch yoffset inch translate + magnification dup aspectratio mul scale + + /height height margin sub def + /width width margin sub def +} def + +/pagedimensions { + useclippath { + /pagebbox [clippath pathbbox newpath] def + } 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 + +/pagesetup {/page exch def} bind def + +/done {/lastpage where {pop lastpage} if} def + +/alignment false def + +/gifscreen { % scrwidth scrheight $ + 2 copy + + alignment { + 100 dup dtransform exch 100 exch div abs exch 100 exch div abs + 2 copy scale + /height exch height exch div def + /width exch width exch div def + } if + + height exch div exch width exch div + 2 copy lt { pop } { exch pop } ifelse + + alignment { cvi } if + + dup scale + + neg 2 div exch neg 2 div exch translate +} def + +/gifimage { % gray imagewidth imageheight xorigin yorigin $ + translate + 2 copy scale + /imageheight exch def + /imagewidth exch def + /gray exch def + imagewidth imageheight 8 [imagewidth 0 0 imageheight neg 0 imageheight] + gray { + { currentfile codestr readhexstring pop } image + } { + /colorimage where { + pop + /picstr imagewidth 3 mul string def + { currentfile codestr readhexstring pop pop + 0 1 imagewidth 1 sub { + picstr exch dup 3 mul exch colortbl exch codestr exch get + 3 mul 3 getinterval putinterval + } for picstr + } false 3 colorimage + } { + { currentfile codestr readhexstring pop pop + 0 1 imagewidth 1 sub { + codestr exch dup graytbl exch codestr exch get get put + } for codestr + } image + } ifelse + } ifelse +} def |