summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlgs/lib/viewraw.ps
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlgs/lib/viewraw.ps')
-rw-r--r--Master/tlpkg/tlgs/lib/viewraw.ps77
1 files changed, 77 insertions, 0 deletions
diff --git a/Master/tlpkg/tlgs/lib/viewraw.ps b/Master/tlpkg/tlgs/lib/viewraw.ps
new file mode 100644
index 00000000000..c456afe5d1c
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/viewraw.ps
@@ -0,0 +1,77 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% viewcmyk.ps
+% Display a raw CMYK file.
+% Requires the colorimage operator.
+% If SCALE is defined, maps input pixels to output pixels with that scale;
+% if SCALE is undefined, scales the image to fit the page.
+% If BITS is defined, it is the number of bits per sample (1,2,4,8,12);
+% if BITS is undefined, its default value is 1.
+% Colorspace defaults to cmyk, but -dGray or -dRGB can change it
+
+/viewraw { % <filename> <ncomp> <width> viewraw -
+ 20 dict begin
+ % Default ncomp is 4 == CMYK
+ /w exch def
+ /fname exch def
+ /ncomp
+ /Gray where
+ { pop 1 } % DeviceGray is 1 component
+ { /RGB where { pop 3 } { 4 } ifelse % DeviceRGB is 3 component, DeviceCMYK is 4 component
+ } ifelse
+ def
+ /bpc /BITS where { pop BITS } { 1 } ifelse def
+ /f fname (r) file def
+ mark fname status pop pop pop /flen exch def cleartomark
+ /h flen w bpc ncomp mul mul 7 add 8 idiv idiv def
+ %% (Dimensions: ) print [w h] == flush
+ % Set up scaling.
+ /SCALE where {
+ pop
+ % Map pixels SCALE-for-1. Assume orthogonal transformation.
+ SCALE 1 0 dtransform add abs div
+ SCALE 0 1 dtransform add abs div
+ } {
+ % Scale the image (uniformly) to fit the page.
+ clippath pathbbox pop pop translate
+ pathbbox 3 -1 roll sub h div
+ 3 1 roll exch sub w div .min dup
+ } ifelse scale
+ %% w h bpc [1 0 0 -1 0 h] f false ncomp colorimage
+ << /ImageType 1 /Width w /Height h /ImageMatrix [1 0 0 -1 0 h]
+ /MultipleDataSources false /DataSource f /BitsPerComponent BITS
+ /Decode BITS 1 gt % inverted sense for 1 bit per component
+ { [ [ 0 1 ] [0] [ 0 1 0 1 0 1 ] [ 0 1 0 1 0 1 0 1 ] ] ncomp 1 sub get }
+ { [ [ 1 0 ] [0] [ 1 0 1 0 1 0 ] [ 1 0 1 0 1 0 1 0 ] ] ncomp 1 sub get }
+ ifelse
+ >> image
+ showpage
+ f closefile
+ end
+} bind def
+
+% If the program was invoked from the command line, run it now.
+[ shellarguments {
+ counttomark 2 eq {
+ cvi viewraw
+ } {
+ cleartomark
+ (Usage: gs -- viewraw filename.raw width\n) print
+ ( e.g.: gs -- viewraw my.raw 2550\n) print flush
+ } ifelse
+} {
+ pop
+} ifelse