From dc55d4f5cde421a3704c183bc6ceb3fcdb6b0653 Mon Sep 17 00:00:00 2001 From: Reinhard Kotucha Date: Wed, 12 May 2010 19:25:45 +0000 Subject: tlgs: 8.70 => 8.71 git-svn-id: svn://tug.org/texlive/trunk@18215 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/tlgs/lib/viewpbm.ps | 368 +++++++++++++++++++-------------------- 1 file changed, 184 insertions(+), 184 deletions(-) mode change 100755 => 100644 Master/tlpkg/tlgs/lib/viewpbm.ps (limited to 'Master/tlpkg/tlgs/lib/viewpbm.ps') diff --git a/Master/tlpkg/tlgs/lib/viewpbm.ps b/Master/tlpkg/tlgs/lib/viewpbm.ps old mode 100755 new mode 100644 index 2811eac3eb5..a6934fbab5c --- a/Master/tlpkg/tlgs/lib/viewpbm.ps +++ b/Master/tlpkg/tlgs/lib/viewpbm.ps @@ -1,184 +1,184 @@ -% Copyright (C) 1992, 1995, 1996, 1998, 1999 Aladdin Enterprises. All rights reserved. -% -% This software is provided AS-IS with no warranty, either express or -% implied. -% -% This software is distributed under license and may not be copied, -% modified or distributed except as expressly authorized under the terms -% of the license contained in the file LICENSE in this distribution. -% -% For more information about licensing, please refer to -% http://www.ghostscript.com/licensing/. For information on -% commercial licensing, go to http://www.artifex.com/licensing/ or -% contact Artifex Software, Inc., 101 Lucas Valley Road #110, -% San Rafael, CA 94903, U.S.A., +1(415)492-9861. - -% $Id: viewpbm.ps 6300 2005-12-28 19:56:24Z giles $ -% viewpbm.ps -% Display a PBM/PGM/PPM 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. - -/s 100 string def -/readmaxv { % readmaxv - - 10 string readline pop cvx exec /maxv exch def -} bind def -/readrow { % readrow - 0 1 2 index length 1 sub { - 1 index exch 3 index token pop put - } for exch pop -} bind def -/read01 { % read01 - 0 exch { - 1 index read pop 48 xor dup 1 le { exch dup add add } { pop } ifelse - } repeat -} bind def -/readrow01 { % readrow01 - 0 1 w 8 idiv { - 1 index exch 3 index 8 read01 put - } for - wrem 0 ne { - dup rsize 1 sub wrem read01 8 wrem sub bitshift put - } if - exch pop -} bind def -/readwh { % readwh - dup s readline pop % check for comment - (#) anchorsearch { - pop pop dup s readline pop - } if - cvx exec -} bind def -/pbmtypes mark -% The procedures in this dictionary are called as -% Pn -/P1 { % ASCII 1-bit white/black - /bpc 1 def /maxv 1 def /rsize w 7 add 8 idiv def - /wrem w 8 mod def - /ncomp 1 def /invert true def /DeviceGray setcolorspace - readwh - { readrow01 } -} bind -/P2 { % ASCII 8-bit gray - readwh - /bpc 8 def 2 index readmaxv /rsize 2 index def - /ncomp 1 def /invert false def /DeviceGray setcolorspace - { readrow } -} bind -/P3 { % ASCII 8-bit RGB - readwh - /bpc 8 def 2 index readmaxv /rsize 2 index 3 mul def - /ncomp 3 def /invert false def /DeviceRGB setcolorspace - { readrow } -} bind -/P4 { % Binary 1-bit white/black - readwh - /bpc 1 def /maxv 1 def /rsize 2 index 7 add 8 idiv def - /ncomp 1 def /invert true def /DeviceGray setcolorspace - { readstring pop } -} bind -/P5 { % Binary 8-bit gray - readwh - /bpc 8 def 2 index readmaxv /rsize 2 index def - /ncomp 1 def /invert false def /DeviceGray setcolorspace - { readstring pop } -} bind -/P6 { % Binary 8-bit RGB - readwh - /bpc 8 def 2 index readmaxv /rsize 2 index 3 mul def - /ncomp 3 def /invert false def /DeviceRGB setcolorspace - { readstring pop } -} bind -.dicttomark readonly def -/pbmsetup { % runpbm - - /readproc exch def - /h exch def - /w exch def - /f exch def - 20 dict begin % image dictionary - /ImageType 1 def - /Width w def - /Height h def - /ImageMatrix [w 0 0 h neg 0 h] def - /BitsPerComponent bpc def - /Decode [ 0 255 maxv div invert { exch } if ncomp 1 sub { 2 copy } repeat ] def - /DataSource [ f rsize string /readproc load /exec load ] cvx def - currentdict end -} def -/imagescale { % imagescale - - begin - /SCALE where { - pop - % Map pixels SCALE-for-1. Assume orthogonal transformation. - Width 1 0 dtransform add abs div SCALE mul - Height 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 Height Width gt { - Width mul Height div exch - } { - Height mul Width div - } ifelse - } - ifelse scale - end -} def - -% Image a PBM file page by page. -/viewpbm { % viewpbm - - 20 dict begin - (r) file /pf exch def { - pf token not { exit } if - pbmtypes exch get pf exch exec pbmsetup - dup imagescale image showpage - } loop - end -} def - -% Reassemble a composite PBM file from the CMYK separations. -/viewpsm { - 20 dict begin - /fname exch def - /sources [ 0 1 3 { - /plane exch def - /pf fname (r) file def - pf pbmtypes pf token pop get exec - % Stack: pf w h readproc - plane { - /readproc exch def /h exch def /w exch def pop - /row rsize string def - h { pf row readproc pop } repeat - pf pbmtypes pf token pop get exec - } repeat - pbmsetup - } for ] def - /datas [ sources { /DataSource get 0 get } forall ] def - /decode sources 0 get /Decode get - dup 0 get exch 1 get add cvi 0 exch - 2 copy 4 copy 8 array astore def - sources 0 get - dup /MultipleDataSources true put - dup /DataSource datas put - dup /Decode decode put - /DeviceCMYK setcolorspace - dup imagescale image showpage - end -} def - -% If the program was invoked from the command line, run it now. -[ shellarguments - { counttomark 1 ge - { ] { viewpbm } forall - } - { cleartomark - (Usage: gs [--] viewpbm.ps filename.p*m ...\n) print - ( e.g.: gs [--] viewpbm.ps my.ppm another.ppm\n) print flush - } - ifelse - } - { pop - } -ifelse +% Copyright (C) 1992, 1995, 1996, 1998, 1999 Aladdin Enterprises. All rights reserved. +% +% This software is provided AS-IS with no warranty, either express or +% implied. +% +% This software is distributed under license and may not be copied, +% modified or distributed except as expressly authorized under the terms +% of the license contained in the file LICENSE in this distribution. +% +% For more information about licensing, please refer to +% http://www.ghostscript.com/licensing/. For information on +% commercial licensing, go to http://www.artifex.com/licensing/ or +% contact Artifex Software, Inc., 101 Lucas Valley Road #110, +% San Rafael, CA 94903, U.S.A., +1(415)492-9861. + +% $Id: viewpbm.ps 6300 2005-12-28 19:56:24Z giles $ +% viewpbm.ps +% Display a PBM/PGM/PPM 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. + +/s 100 string def +/readmaxv { % readmaxv - + 10 string readline pop cvx exec /maxv exch def +} bind def +/readrow { % readrow + 0 1 2 index length 1 sub { + 1 index exch 3 index token pop put + } for exch pop +} bind def +/read01 { % read01 + 0 exch { + 1 index read pop 48 xor dup 1 le { exch dup add add } { pop } ifelse + } repeat +} bind def +/readrow01 { % readrow01 + 0 1 w 8 idiv { + 1 index exch 3 index 8 read01 put + } for + wrem 0 ne { + dup rsize 1 sub wrem read01 8 wrem sub bitshift put + } if + exch pop +} bind def +/readwh { % readwh + dup s readline pop % check for comment + (#) anchorsearch { + pop pop dup s readline pop + } if + cvx exec +} bind def +/pbmtypes mark +% The procedures in this dictionary are called as +% Pn +/P1 { % ASCII 1-bit white/black + /bpc 1 def /maxv 1 def /rsize w 7 add 8 idiv def + /wrem w 8 mod def + /ncomp 1 def /invert true def /DeviceGray setcolorspace + readwh + { readrow01 } +} bind +/P2 { % ASCII 8-bit gray + readwh + /bpc 8 def 2 index readmaxv /rsize 2 index def + /ncomp 1 def /invert false def /DeviceGray setcolorspace + { readrow } +} bind +/P3 { % ASCII 8-bit RGB + readwh + /bpc 8 def 2 index readmaxv /rsize 2 index 3 mul def + /ncomp 3 def /invert false def /DeviceRGB setcolorspace + { readrow } +} bind +/P4 { % Binary 1-bit white/black + readwh + /bpc 1 def /maxv 1 def /rsize 2 index 7 add 8 idiv def + /ncomp 1 def /invert true def /DeviceGray setcolorspace + { readstring pop } +} bind +/P5 { % Binary 8-bit gray + readwh + /bpc 8 def 2 index readmaxv /rsize 2 index def + /ncomp 1 def /invert false def /DeviceGray setcolorspace + { readstring pop } +} bind +/P6 { % Binary 8-bit RGB + readwh + /bpc 8 def 2 index readmaxv /rsize 2 index 3 mul def + /ncomp 3 def /invert false def /DeviceRGB setcolorspace + { readstring pop } +} bind +.dicttomark readonly def +/pbmsetup { % runpbm - + /readproc exch def + /h exch def + /w exch def + /f exch def + 20 dict begin % image dictionary + /ImageType 1 def + /Width w def + /Height h def + /ImageMatrix [w 0 0 h neg 0 h] def + /BitsPerComponent bpc def + /Decode [ 0 255 maxv div invert { exch } if ncomp 1 sub { 2 copy } repeat ] def + /DataSource [ f rsize string /readproc load /exec load ] cvx def + currentdict end +} def +/imagescale { % imagescale - + begin + /SCALE where { + pop + % Map pixels SCALE-for-1. Assume orthogonal transformation. + Width 1 0 dtransform add abs div SCALE mul + Height 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 Height Width gt { + Width mul Height div exch + } { + Height mul Width div + } ifelse + } + ifelse scale + end +} def + +% Image a PBM file page by page. +/viewpbm { % viewpbm - + 20 dict begin + (r) file /pf exch def { + pf token not { exit } if + pbmtypes exch get pf exch exec pbmsetup + dup imagescale image showpage + } loop + end +} def + +% Reassemble a composite PBM file from the CMYK separations. +/viewpsm { + 20 dict begin + /fname exch def + /sources [ 0 1 3 { + /plane exch def + /pf fname (r) file def + pf pbmtypes pf token pop get exec + % Stack: pf w h readproc + plane { + /readproc exch def /h exch def /w exch def pop + /row rsize string def + h { pf row readproc pop } repeat + pf pbmtypes pf token pop get exec + } repeat + pbmsetup + } for ] def + /datas [ sources { /DataSource get 0 get } forall ] def + /decode sources 0 get /Decode get + dup 0 get exch 1 get add cvi 0 exch + 2 copy 4 copy 8 array astore def + sources 0 get + dup /MultipleDataSources true put + dup /DataSource datas put + dup /Decode decode put + /DeviceCMYK setcolorspace + dup imagescale image showpage + end +} def + +% If the program was invoked from the command line, run it now. +[ shellarguments + { counttomark 1 ge + { ] { viewpbm } forall + } + { cleartomark + (Usage: gs [--] viewpbm.ps filename.p*m ...\n) print + ( e.g.: gs [--] viewpbm.ps my.ppm another.ppm\n) print flush + } + ifelse + } + { pop + } +ifelse -- cgit v1.2.3