/usr/share/cagefs-skeleton.old/usr/share/ghostscript/lib
%! viewjpeg.ps Copyright (C) 1994 Thomas Merz <tm@pdflib.com> % % 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., 1305 Grant Avenue - Suite 200, % Novato, CA 94945, U.S.A., +1(415)492-9861. % View JPEG files with Ghostscript % % This PostScript code relies on level 2 features. % % Only JPEG baseline, extended sequential, and progressive files % are supported. Note that Adobe PostScript level 2 does not include % progressive-JPEG support. Ghostscript with IJG JPEG v6 or later % will decode progressive JPEG, but only if you edit gsjmorec.h to % enable that feature. % % Author's address: % ------------------------------+ % {(pstack exec quit) = flush } | Thomas Merz, Munich % pstack exec quit | voice +49/89/29160728 % ------------------------------+ tm@muc.de http://www.muc.de/~tm/ % % Updated by L. Peter Deutsch 20-May-1997: % move the usage example to the beginning % Updates by Tom Lane 6-Sep-1995 % Usage example: % (jpeg-6/testimg.jpg) viewJPEG /languagelevel where {pop languagelevel 2 lt}{true} ifelse { (JPEG needs PostScript Level 2!\n) print flush stop } if /JPEGdict 20 dict def JPEGdict begin /NoParamMarkers [ % JPEG markers without additional parameters 16#D0 16#D1 16#D2 16#D3 16#D4 16#D5 16#D6 16#D7 16#D8 16#01 ] def /NotSupportedMarkers [ % JPEG markers not supported by PostScript level 2 16#C3 16#C5 16#C6 16#C7 16#C8 16#C9 16#CA 16#CB 16#CD 16#CE 16#CF ] def % Names of color spaces /ColorSpaceNames << /1 /DeviceGray /3 /DeviceRGB /4 /DeviceCMYK >> def % read one byte from file F % - ==> int --or-- stop context /NextByte { F read not { (Read error in ViewJPEG!\n) print flush stop } if } bind def /SkipSegment { % read two bytes and skip that much data NextByte 8 bitshift NextByte add 2 sub { NextByte pop } repeat } bind def % read width, height, and # of components from JPEG markers % and store in dict /readJPEGmarkers { % - ==> dict --or-- stop context 5 dict begin { % loop: read JPEG marker segments until we find SOFn marker or EOF NextByte 16#FF eq { % found marker /markertype NextByte def % Is it S0F0=baseline, SOF1=extended sequential, SOF2=progressive ? markertype dup 16#C0 ge exch 16#C2 le and { NextByte pop NextByte pop % segment length % Ghostscript and Adobe PS accept only data precision 8 NextByte 8 ne { (Error: not 8 bits per component!\n) print flush stop } if % Read crucial image parameters /height NextByte 8 bitshift NextByte add def /width NextByte 8 bitshift NextByte add def /colors NextByte def VJPGDEBUG { currentdict { exch == == } forall flush } if exit } if % detect several segment types which are not compatible with PS NotSupportedMarkers { markertype eq { (Marker ) print markertype == (not supported!\n) print flush stop } if } forall % Skip segment if marker has parameters associated with it true NoParamMarkers { markertype eq {pop false exit} if } forall { SkipSegment } if } if } loop currentdict dup /markertype undef end } bind def end % JPEGdict % read image parameters from JPEG file and display the image /viewJPEG { % <file|string> ==> - save JPEGdict begin /saved exch def /scratch 1 string def dup type /stringtype eq { (r) file } if /F exch def readJPEGmarkers begin F 0 setfileposition % reset file pointer % We use the whole clipping area for the image (at least in one dimension) gsave clippath pathbbox grestore /ury exch def /urx exch def /lly exch def /llx exch def llx lly translate width height scale % use whole width or height, whichever is appropriate urx llx sub width div ury lly sub height div 2 copy gt { exch } if pop % min dup scale ColorSpaceNames colors scratch cvs get setcolorspace % prepare image dictionary << /ImageType 1 /Width width /Height height /ImageMatrix [ width 0 0 height neg 0 height ] /BitsPerComponent 8 % If 4-component (CMYK), assume data is inverted per Adobe Photoshop colors 4 eq { /Decode [ colors { 1 0 } repeat ] } { /Decode [ colors { 0 1 } repeat ] } ifelse /DataSource F /DCTDecode filter >> image end % image parameter dictionary saved end restore } bind def % This lets you do stuff on the command line like: % gs -sDEVICE=pdfwrite -o stuff%03d.pdf viewjpeg.ps -c "(image.jpg) << /PageSize 2 index viewJPEGgetsize 2 array astore >> setpagedevice viewJPEG" % so the output size matches the original image. /viewJPEGgetsize { % <file|string> ==> width height save JPEGdict begin /saved exch def /scratch 1 string def dup type /stringtype eq { (r) file } if /F exch def readJPEGmarkers begin F 0 setfileposition % reset file pointer width height saved end restore } bind def
.
Edit
..
Edit
PDFA_def.ps
Edit
PDFX_def.ps
Edit
PM760p.upp
Edit
PM760pl.upp
Edit
PM820p.upp
Edit
PM820pl.upp
Edit
Stc670p.upp
Edit
Stc670pl.upp
Edit
Stc680p.upp
Edit
Stc680pl.upp
Edit
Stc740p.upp
Edit
Stc740pl.upp
Edit
Stc760p.upp
Edit
Stc760pl.upp
Edit
Stc777p.upp
Edit
Stc777pl.upp
Edit
Stp720p.upp
Edit
Stp720pl.upp
Edit
Stp870p.upp
Edit
Stp870pl.upp
Edit
acctest.ps
Edit
align.ps
Edit
bj8.rpd
Edit
bj8gc12f.upp
Edit
bj8hg12f.upp
Edit
bj8oh06n.upp
Edit
bj8pa06n.upp
Edit
bj8pp12f.upp
Edit
bj8ts06n.upp
Edit
bjc6000a1.upp
Edit
bjc6000b1.upp
Edit
bjc610a0.upp
Edit
bjc610a1.upp
Edit
bjc610a2.upp
Edit
bjc610a3.upp
Edit
bjc610a4.upp
Edit
bjc610a5.upp
Edit
bjc610a6.upp
Edit
bjc610a7.upp
Edit
bjc610a8.upp
Edit
bjc610b1.upp
Edit
bjc610b2.upp
Edit
bjc610b3.upp
Edit
bjc610b4.upp
Edit
bjc610b6.upp
Edit
bjc610b7.upp
Edit
bjc610b8.upp
Edit
caption.ps
Edit
cbjc600.ppd
Edit
cbjc800.ppd
Edit
cdj550.upp
Edit
cdj690.upp
Edit
cdj690ec.upp
Edit
cid2code.ps
Edit
dnj750c.upp
Edit
dnj750m.upp
Edit
docie.ps
Edit
font2pcl.ps
Edit
ghostpdf.ppd
Edit
gs_ce_e.ps
Edit
gs_css_e.ps
Edit
gs_il2_e.ps
Edit
gs_kanji.ps
Edit
gs_ksb_e.ps
Edit
gs_l.xbm
Edit
gs_l.xpm
Edit
gs_l_m.xbm
Edit
gs_lgo_e.ps
Edit
gs_lgx_e.ps
Edit
gs_m.xbm
Edit
gs_m.xpm
Edit
gs_m_m.xbm
Edit
gs_s.xbm
Edit
gs_s.xpm
Edit
gs_s_m.xbm
Edit
gs_t.xbm
Edit
gs_t.xpm
Edit
gs_t_m.xbm
Edit
gs_wl1_e.ps
Edit
gs_wl2_e.ps
Edit
gs_wl5_e.ps
Edit
gslp.ps
Edit
gsnup.ps
Edit
ht_ccsto.ps
Edit
image-qa.ps
Edit
jispaper.ps
Edit
landscap.ps
Edit
lines.ps
Edit
mkcidfm.ps
Edit
necp2x.upp
Edit
necp2x6.upp
Edit
pdf2dsc.ps
Edit
pdf_info.ps
Edit
pf2afm.ps
Edit
pfbtopfa.ps
Edit
ppath.ps
Edit
pphs.ps
Edit
prfont.ps
Edit
printafm.ps
Edit
ps2ai.ps
Edit
ps2epsi.ps
Edit
ras1.upp
Edit
ras24.upp
Edit
ras3.upp
Edit
ras32.upp
Edit
ras4.upp
Edit
ras8m.upp
Edit
rollconv.ps
Edit
s400a1.upp
Edit
s400b1.upp
Edit
sharp.upp
Edit
sipixa6.upp
Edit
st640ih.upp
Edit
st640ihg.upp
Edit
st640p.upp
Edit
st640pg.upp
Edit
st640pl.upp
Edit
st640plg.upp
Edit
stc.upp
Edit
stc1520h.upp
Edit
stc2.upp
Edit
stc200_h.upp
Edit
stc2_h.upp
Edit
stc2s_h.upp
Edit
stc300.upp
Edit
stc300bl.upp
Edit
stc300bm.upp
Edit
stc500p.upp
Edit
stc500ph.upp
Edit
stc600ih.upp
Edit
stc600p.upp
Edit
stc600pl.upp
Edit
stc640p.upp
Edit
stc740ih.upp
Edit
stc800ih.upp
Edit
stc800p.upp
Edit
stc800pl.upp
Edit
stc_h.upp
Edit
stc_l.upp
Edit
stcany.upp
Edit
stcany_h.upp
Edit
stcinfo.ps
Edit
stcolor.ps
Edit
stocht.ps
Edit
traceimg.ps
Edit
traceop.ps
Edit
uninfo.ps
Edit
viewcmyk.ps
Edit
viewgif.ps
Edit
viewjpeg.ps
Edit
viewmiff.ps
Edit
viewpbm.ps
Edit
viewpcx.ps
Edit
viewps2a.ps
Edit
winmaps.ps
Edit
zeroline.ps
Edit