diff options
Diffstat (limited to 'Master/xemtex/gslib/viewpcx.ps')
-rw-r--r-- | Master/xemtex/gslib/viewpcx.ps | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/Master/xemtex/gslib/viewpcx.ps b/Master/xemtex/gslib/viewpcx.ps deleted file mode 100644 index 204db00eb03..00000000000 --- a/Master/xemtex/gslib/viewpcx.ps +++ /dev/null @@ -1,151 +0,0 @@ -% Copyright (C) 1996, 1999 Aladdin Enterprises. All rights reserved. -% -% This program is free software; you can redistribute it and/or modify it -% under the terms of the GNU General Public License as published by the -% Free Software Foundation; either version 2 of the License, or (at your -% option) any later version. -% -% This program is distributed in the hope that it will be useful, but -% WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -% Public License for more details. -% -% You should have received a copy of the GNU General Public License along -% with this program; if not, write to the Free Software Foundation, Inc., -% 59 Temple Place, Suite 330, Boston, MA, 02111-1307. - -% $Id: viewpcx.ps,v 1.2.6.2.2.1 2003/04/12 14:02:39 giles Exp $ -% viewpcx.ps -% Display a PCX file. -% Requires the Level 2 `image' operator (to handle variable pixel widths). -% If SCALE is defined, maps input pixels to output pixels with that scale; -% if SCALE is undefined, scales the image to fit the page. -% ****NOTE: does not handle multi-plane images with palette. - -/pcxbytes [ - 0 1 255 { - 64 string exch 0 1 63 { - 3 copy exch put pop - } for pop - } for -] readonly def -/readpcx { % - readpcx <str> - f % gets replaced - dup read not { - pop () - } { - dup 192 lt { - ( ) dup 0 4 -1 roll put exch pop - } { - 192 sub //pcxbytes 3 -1 roll read pop get exch 0 exch getinterval - } ifelse - } ifelse -} def -/get2 % <string> <index> get2 <int> - { 2 copy get 3 1 roll 1 add get 8 bitshift add - } bind def -/dsproc - { df s readstring pop % s gets filled in - s1 () ne { df s1 readstring pop pop } if % discard padding bytes - } def % don't bind, must be writable -/viewpcx % <filename> viewpcx - - { 100 dict begin - /fname 1 index def - /f exch (r) file def - % Read and unpack the header. - /header f 128 string readstring pop def - /version header 1 get def - /bpp header 3 get def - /w header 8 get2 header 4 get2 sub 1 add def - /h header 10 get2 header 6 get2 sub 1 add def - /nplanes header 65 get def - /bpl header 66 get2 def - /palinfo header 68 get2 def - /nbits bpp nplanes mul def - version 5 eq - { nbits 8 le - { /cspace - [/Indexed /DeviceRGB 1 bpp bitshift 1 sub - f fileposition - 1 nbits bitshift 3 mul string - fname status pop pop pop exch pop - 1 index length sub f exch setfileposition - f exch readstring pop - exch f exch setfileposition - ] def - /decode [0 cspace 2 get] def - } - { /cspace /DeviceRGB def - /decode [0 1 0 1 0 1] def - } - ifelse - } - { /cspace - [/Indexed /DeviceRGB 1 bpp bitshift 1 sub - header 16 1 nbits bitshift 16 .min 3 mul getinterval - ] def - /decode [0 cspace 2 get] def - } - ifelse - % Set up scaling. - /SCALE where - { pop - % Map pixels SCALE-for-1. Assume orthogonal transformation. - w 1 0 dtransform add abs div SCALE mul - h 0 1 dtransform add abs div SCALE mul - } - { % Scale the image (uniformly) to fit the page. - clippath pathbbox pop pop translate - pathbbox .min exch pop exch pop ceiling - dup h w gt { w mul h div exch } { h mul w div } ifelse - } - ifelse scale - % Since the number of bytes per line is always even, - % it may not match the width specification. - /wbpl w bpp mul 7 add 8 idiv def - % Define the data source procedure. - /s1 bpl wbpl sub string def - /df /readpcx load copyarray dup 0 f put cvx bind readonly - 0 () /SubFileDecode filter def - /dsource [ nplanes - { /dsproc load copyarray - dup 1 wbpl string put - cvx bind readonly - } - repeat ] def - % Construct the image dictionary. - 20 dict begin % image dictionary - /ImageType 1 def - /Width w def - /Height h def - /ImageMatrix [w 0 0 h neg 0 h] def - /BitsPerComponent bpp def - /Decode decode def - /DataSource dsource dup length 1 gt - { /MultipleDataSources true def } - { 0 get } - ifelse def - currentdict end - % Finally, display the image. - cspace setcolorspace - image - showpage - df closefile - f closefile - end - } bind def - -% If the program was invoked from the command line, run it now. -[ shellarguments - { counttomark 1 ge - { ] { viewpcx } forall - } - { cleartomark - (Usage: gs -- viewpcx.ps filename.pcx ...\n) print - ( e.g.: gs -- viewpcx.ps my.pcx another.pcx\n) print flush - } - ifelse - } - { pop - } -ifelse |