home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Buyer 1996 May
/
buyer-0596.iso
/
internet
/
amber
/
archive.z
/
VIEWER32.EXE
/
PSPROCSET
/
10
< prev
next >
Wrap
Text File
|
1995-12-07
|
6KB
|
291 lines
%%BeginFile: pdfimg1i.prc
%%Copyright: Copyright 1987-1993 Adobe Systems Incorporated. All Rights Reserved.
PDF /PDFImage get begin
Level2? not StartLoad {
/testsystemdict {
false exch where { systemdict eq { pop true } if } if
} bd
/NDColors 1 def
ColorImage? StartLoad {
/NDColors 0
statusdict begin
/processcolors where {
pop pop processcolors
}{
/deviceinfo where {
pop deviceinfo /Colors known {
pop deviceinfo /Colors get
} if
} if
} ifelse
end
def
NDColors 0 ne {
/colorimage testsystemdict
/setcolortransfer testsystemdict and
/currentcolortransfer testsystemdict and
/currentcmykcolor testsystemdict and not {
/NDColors 0 def
} if
} if
NDColors dup 1 ne exch dup 3 ne exch 4 ne and and {
/NDColors 0 def
}if
} EndLoad
/BaseSpace? { ColorSpace 1 get } bd
NDColors 0 ne StartLoad {
/rgbtogray {
0.11 mul exch 0.59 mul add exch 0.3 mul add round cvi
} bd
/ConvRGBtoGray {
dup length 3 idiv
0 1 3 -1 roll 1 sub {
1 index exch 2 copy 3 mul
2 copy get 3 1 roll
2 copy 1 add get 3 1 roll
2 add get
rgbtogray
put
} for
dup length 3 idiv 0 exch getinterval
} bd
/cmyktogray {
exch 0.11 mul add exch 0.59 mul add exch 0.3 mul add round cvi
dup 255 gt { pop 255 } if
255 exch sub
} bd
/ConvCMYKtoGray {
dup length 4 idiv
0 1 3 -1 roll 1 sub {
1 index exch 2 copy 4 mul
2 copy get 3 1 roll
2 copy 1 add get 3 1 roll
2 copy 2 add get 3 1 roll
3 add get cmyktogray put
} for
dup length 4 idiv 0 exch getinterval
} bd
/setupgrayclut {
/CIbit1x CIgclut length 1 sub pv
} bd
/1compute {
exch 2 BitsPerComponent exp 1 sub mul round cvi
dup CIbit1x gt { pop pop 0 } { get 255 div } ifelse
} bd
/DoGrayCLUT {
ColorSpace 3 get /CIgclut exch pv setupgrayclut
[ { CIgclut 1compute } /exec load dup currenttransfer exch ]
cvx settransfer
Width Height BitsPerComponent ImageMatrix ImageFilter image
} bd
} EndLoad
NDColors 1 eq StartLoad {
/Indexed [ 1
{
BaseSpace? /DeviceRGB eq {
ColorSpace dup 3 get ConvRGBtoGray 3 exch put
} {
BaseSpace? /DeviceCMYK eq {
ColorSpace dup 3 get ConvCMYKtoGray 3 exch put
} if
} ifelse
DoGrayCLUT
}
] InstallImage
} EndLoad
NDColors dup 3 eq exch 4 eq or StartLoad {
/NULLPROC {} bd
/concatutil {
/exec load
7 -1 roll /exec load
} bd
/spconcattransfer {
/Dclut exch pv
/Cclut exch pv
/Bclut exch pv
/Aclut exch pv
/ncompute exch load pv
currentcolortransfer
[ { Aclut ncompute } concatutil ] cvx
[ { Bclut ncompute } concatutil ] cvx
[ { Cclut ncompute } concatutil ] cvx
[ { Dclut ncompute } concatutil ] cvx
setcolortransfer
} bd
/pvsubclut {
1 add getinterval pv
} bd
} EndLoad
NDColors 3 eq StartLoad {
/cmyktorgb {
dup 5 -1 roll add 255 exch sub 4 1 roll
dup 4 -1 roll add 255 exch sub 3 1 roll
add 255 exch sub
3 { dup 0 lt { pop 0 } if cvi 3 1 roll } repeat
} bd
/ConvCMYKtoRGB {
dup length 4 idiv
0 1 3 -1 roll 1 sub {
dup 3 mul exch 4 mul
2 index exch 4 getinterval { } forall
cmyktorgb
5 -2 roll 2 copy 7 -1 roll put
2 copy 1 add 6 -1 roll put
2 copy 2 add 5 -1 roll put
pop
} bind for
dup length 4 idiv 3 mul 0 exch getinterval
} bd
/setuprgbcluts {
/CIbit3x CIrgbclut length 3 sub pv
/CIrclut CIrgbclut pv
/CIgclut CIrclut 1 CIbit3x pvsubclut
/CIbclut CIrclut 2 CIbit3x pvsubclut
} bd
/3compute {
exch 2 BitsPerComponent exp 3 mul 3 sub
mul
round
cvi
dup CIbit3x gt { pop pop 0 } { get 255 div } ifelse
} bd
/DoRGBCLUT {
ColorSpace 3 get /CIrgbclut exch pv setuprgbcluts
/3compute CIrclut CIgclut CIbclut dup spconcattransfer
Width Height BitsPerComponent ImageMatrix ImageFilter
[ exch /exec load /dup load dup ] cvx /NULLPROC load dup true 3
colorimage
} bd
/Indexed [ 1
{
BaseSpace? /DeviceCMYK eq {
ColorSpace dup 3 get ConvCMYKtoRGB 3 exch put
} if
BaseSpace? /DeviceGray eq { DoGrayCLUT }
{ DoRGBCLUT } ifelse
} bind
] InstallImage
} EndLoad
NDColors 4 eq StartLoad
{
/rgbtocmyk {
3 { 255 div 3 1 roll } repeat
setrgbcolor currentcmykcolor
4 { 1 exch sub 255 mul round cvi 4 1 roll } repeat
} bd
/ConvRGBtoCMYK {
dup length 3 idiv
dup 4 mul string 3 1 roll
0 1 3 -1 roll 1 sub {
dup 4 mul 3 index length 4 sub exch sub
3 1 roll 3 mul
1 index exch 3 getinterval {} forall
rgbtocmyk
7 -2 roll 2 copy 8 -1 roll put
2 copy 1 add 7 -1 roll put
2 copy 2 add 6 -1 roll put
2 copy 3 add 5 -1 roll put
pop exch
} bind for
pop
} bd
/setupcmykcluts {
/CIbit4x CIcmykclut length 4 sub pv
/CIcclut CIcmykclut pv
/CImclut CIcclut 1 CIbit4x pvsubclut
/CIyclut CIcclut 2 CIbit4x pvsubclut
/CIkclut CIcclut 3 CIbit4x pvsubclut
} bd
/4compute {
exch 2 BitsPerComponent exp 4 mul 4 sub mul round cvi
dup CIbit4x gt { pop pop 0 } { get 255 div } ifelse
} bd
/DoCMYKCLUT {
ColorSpace 3 get /CIcmykclut exch pv setupcmykcluts
/4compute CIcclut CImclut CIyclut CIkclut spconcattransfer
Width Height BitsPerComponent ImageMatrix ImageFilter
[ exch /exec load /dup load dup dup ] cvx
/NULLPROC load dup dup true 4 colorimage
} bd
/Indexed [ 1
{
BaseSpace? /DeviceRGB eq {
ColorSpace dup 3 get ConvRGBtoCMYK 3 exch put
} if
BaseSpace? /DeviceGray eq { DoGrayCLUT } { DoCMYKCLUT } ifelse
} bind
] InstallImage
} EndLoad
NDColors 0 eq StartLoad {
/CICSLookup 3 dict begin
/DeviceGray {
get
put exch
1 add exch 3 copy
} bd
/DeviceRGB {
3 mul
3 getinterval
putinterval exch
3 add exch 3 copy
} bd
/DeviceCMYK {
4 mul
4 getinterval
putinterval exch
4 add exch 3 copy
} bd
currentdict end pv
/CIBLookup 3 dict begin
8 { lookupandstore } bd
4 {
/shiftbyte 1 index pv
-4 bitshift
lookupandstore
shiftbyte 15 and
lookupandstore
} bd
2 {
/shiftbyte 1 index pv
-6 bitshift
lookupandstore
shiftbyte -4 bitshift
3 and
lookupandstore
shiftbyte -2 bitshift
3 and
lookupandstore
shiftbyte 3 and
lookupandstore
} bd
currentdict end pv
/colorexpand {
BufferExp 0 CLUT
3 copy
7 -1 roll
/BitLookup load
forall
pop pop pop pop pop
} bd
/Indexed [ 1
{
/CLUT ColorSpace 3 get pv
/BitLookup CIBLookup BitsPerComponent get pv
/lookupandstore BaseSpace? CICSLookup exch get pv
/BufferExp CIBuffer length 8 mul BitsPerComponent idiv
BaseSpace? ColorComps? mul string pv
Width Height 8 ImageMatrix
[
ImageFilter /exec load /colorexpand load /exec load 0
Width BaseSpace? ColorComps? mul /getinterval load /exec
load
] cvx
BaseSpace? ColorComps? ColorImage
} bind
] InstallImage
} EndLoad
currentdict readonly pop
} EndLoad
end
%%EOF