)EjeCUddlmZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z m Z ddl mZejdZejdZdad ed <dad)d Z d*d+dZd,dZGdde j Zd-d.d%Ze jejeee jejee jejd&d'ge jejd(dS)/) annotationsN)IO)Image ImageFile)i32lez^%%([^:]*):[ \t]*(.*)[ \t]*$z^%[%!\w]([^:]*)[ \t]*$zstr | bool | None gs_binaryreturnboolc6ttjdr3t$ddl}dD]}|||andatan8 tjddgtj dan#t$rdaYnwxYwtduS)Nwinr)gswin32cgswin64cgsFrz --version)stdout) r sysplatform startswithgs_windows_binaryshutilwhich subprocess check_callDEVNULLOSError)rbinarys DC:\PYTHON\MyICR_Suite\python\Lib\site-packages\PIL/EpsImagePlugin.pyhas_ghostscriptr-s < " "5 ) ) " ( <..F||F++7,2)8).%)II "%t[&9*BTUUUU  " " "!  " E !!s$B BBFtilelist[ImageFile._Tile]sizetuple[int, int]fp IO[bytes]scaleint transparencyImage.core.ImagingCorectsd}t|tttsJ|dj}t|t sJ|\}}t|pd}|d|z} |d|z} d| z|d|dz z } d| z|d|dz z } tj \} }tj | d}t|dr,tj |jr|j}ntj \}}tj ||}t!|d 5}|dt$j|}|d|}|dkrS|t-|d }|sn-|t/|z}|||dkSdddn #1swxYwY|rd }nd }td d| dd| dd| dd| ddddd|d|d|d d|d dd|ddg} d}t2jdr-t9j}|xjt8jzc_t9j ||tCj|5}|"|j#$cddd tj%||rtj%|SS#t$rYSwxYw#1swxYwY tj%||rtj%|dSdS#t$rYdSwxYw# tj%||rtj%|ww#t$rYwwxYwxYw)z!Render an image using Ghostscriptz%Unable to locate Ghostscript on pathsrrgR@Nnamewbipngalphapnmrawz-qz-gdxz-rfz-dBATCHz -dNOPAUSEz-dSAFERz -sDEVICE=z -sOutputFile=z-c z translatez-fshowpager ) startupinfo)&rr isinstancer strargstupler&tempfilemkstemposclosehasattrpathexistsr,openseekioSEEK_ENDtellreadminlenwriterrrr STARTUPINFOdwFlagsSTARTF_USESHOWWINDOWrrloadimcopyunlink)rr!r#r%r'msgr8lengthbboxwidthheightres_xres_yout_fdoutfile infile_tempinfilein_fdr2fsize lengthfilesdevicecommandr5out_ims r GhostscriptrcDs   5cll i % %%% % 7>## $ $ $ $ $ $ $  Ig    ' +&&&& '    D  $ $ $ $ $ $ $ $ $  Ig    ' +&&&&& ' '    DD    Ig    ' +&&&& '    D sB%HHH"A8N-M N*M M  M MNMN*N NNO*O O OOOOprefixbytescx|dp%t|dkot|dkS)N%!PSP )rrHi32)rds r_acceptrks;   W % %  F q6S[[J6cLeZdZdZdZdZdddddZdd ZddZ dddZ ddZ dS) EpsImageFilez.EPS File Parser for the Python Imaging LibraryEPSzEncapsulated PostscriptLLABRGBCMYK)rr*r+rhr Nonec&jJj\}}j|d_dd}t d}t |}d}d}ddd+fd }d,fd } jd } | dkr|dkr|r |ntn]| dvr|dkrAnQ|dkr:|dtdkrd} t| |r |d}d}| d||<|d z }|r|dtdks|dddkr |d}t|d|d} | | st | } | rJ| d }| dr|ddjd<n_dj|<nS| ddkrnEd} t| n2|dddkr{|rd}|d|dd}d|ddD\}}}}|d krd_n+|dkr$ j|_n#t$$rYnwxYwn||f}n|dd d!krnr&r$t|d|d} | | nr|ddd"krdna|dd#d$krSt'|d#|}|dkrd%} t%| j|t(jd}sd&} t| |p!d'dz d(d z f_t/jd)d*jz||fg_dS)-NrrrTFr rtcpdjvrd}t|djvrd}t|dS)z The EPS specification requires that some headers exist. This should be checked when the header comments formally end, when image data starts, or when the file ends, whichever comes first. PS-Adobez'EPS header missing "%!PS-Adobe" comment BoundingBoxz*EPS header missing "%%BoundingBox" commentN)info SyntaxError)rQselfs rcheck_required_header_commentsz:EpsImageFile._open..check_required_header_commentssM **?!#&&&DI--B!#&&&.-rlr_r7r cj t|}n)#tj$r}d}t ||d}~wwxYw|sdS|dd\}}|j|<|dkr?|dkrdn6r r2r0 d|Dn#t$rYnwxYwdS) Nnot an EPS fileFrr*ryz(atend)TcFg|]}tt|S)r&float).0is r z.read_comment..s$'I'I'I!E!HH 'I'I'Irl)splitmatchreerrorr{grouprz Exception) r_merQkv bounding_boxreading_trailer_commentsr|trailer_reacheds r read_commentz(EpsImageFile._open..read_comments .KKNN8 . . .'!#&&A- . u771a==DAqDIaLM!! >>/3,,%/>V(J'Iqwwyy'I'I'I $4s$A?AB## B0/B0rrls %r s %%EndCommentszlatin-1rx zbad EPS header s %ImageData:c34K|]}t|VdSN)r&)rvalues r z%EpsImageFile._open..Ms955#(CJJ555555rlrh1s%%EOFs %%Trailers%%BeginBinary:z(BeginBinary bytecount cannot be negativez!cannot determine EPS bounding boxr*r+epsrrr rt)r_r7r r )r# _find_offsetrB_mode bytearray memoryviewrFordr{r7fieldrrrrzrrmode_map ValueErrorr&r<SEEK_CUR_sizer_Tiler!r)r|rRoffsetimagedata_sizebyte_arrbytes_mv bytes_readreading_header_commentsr}rbyterQr_rrimage_data_valuescolumnsrows bit_depthmode_id bytecountrrrs` @@@r_openzEpsImageFile._opensw"""**4733  V *. 15S>>h'' "&#(  ' ' ' ' ' '         4q 7<<??Ds{{??.966888#??# $$ {c#hh../)#...2<::<<<6;3&' '+Aw$a &N 5 A;#c((**hssm?O.O.O22444.3+*-y99#|A+ AA +GGAJJ<< 33.45abbEDIj11+-DIaLL1.%cll*+#2#.00 "!"J%-R ]$;$A$A$$J$J!55,=bqb,A5551y'>>!$DJJ!^^%)]7%; %")$"1")) 5%= 5*-y99 Q"1"--"&#2#"333J 788 q==DC$S//) Y 444Jcq j 5C#,, $ Ol1o - Ol1o -(  OE6DI#5v ?U V V  sI++ I87I8r#r$r"c`|d}|dkr7|dtj|}d}nYt |dkr5|d}t |}t |d}nd}t |||fS)Nrhrgrrirr)rFrBrCrDrErjr{)r|r#r_rRrrQs rrzEpsImageFile._find_offset~s GGAJJ << GGAr{ # # #WWYYFFF VVz ! !  AVVFAYYFF#Cc"" "v~rlrFr%r&r'r Image.core.PixelAccess | Nonec|jrY|jJt|j|j|j|||_|jj|_|jj|_g|_tj |Sr) rr#rcr!rNmoderrrrM)r|r%r's rrMzEpsImageFile.loadsl 9 7&&&!$)TY UUDGDJDJDI{%%%rlposcdSrr)r|rs r load_seekzEpsImageFile.load_seeks  rlNr)r#r$r r"rF)r%r&r'r r r)rr&r rt) __name__ __module__ __qualname____doc__formatformat_descriptionrrrrMrrrlrrnrns88 F25Uv66H} } } } ~049 & & & & &      rlrnrN Image.Imagefilename str | bytesrrtc h||jdkrd}n-|jdkrd}n|jdkrd}nd}t||r|d|d |d |jz|d |d |d |d|jz|d|z|d|d|d|jd|dzz|d|jz|d|jz|d|jd|jd|jdfz|d||ddzt |dr|tj||tj dd|jzg|d|dt |dr|d Sd S)!z*EPS Writer for the Python Imaging Library.rp)rrsimagerr)rr+sfalse 3 colorimagers)rrhsfalse 4 colorimagezimage mode is not supporteds%!PS-Adobe-3.0 EPSF-3.0 s%%Creator: PIL 0.1 EpsEncode s%%%%BoundingBox: 0 0 %d %d s %%Pages: 1 s%%EndComments s %%Page: 1 1 s%%ImageData: %d %d s%d %d 0 1 1 "%s" sgsave s10 dict begin s/buf %d string def rrs %d %d scale s%d %d 8 s[%d 0 0 -%d 0 %d] s+{ currentfile buf readhexstring pop } bind r* flushrrs %%%%EndBinary s grestore end N) rMrrrIr!r>rr_saver)rNr#rroperatorrQs rrrsGGIII w#~~# E  0 F  0+oo 3 -... 2333 027:;;; !!! #$$$ !""" '"'1222 &1222HHZHH    HH $ Xa[(@ ABBBHH  '(((HH\BG #$$$HH #rwqz271:rwqz&J JKKKHH <===HHXa[5 !!!r7   OBY_UFRW4DEEFGGGHH !"""HH r7  rlz.psz.epszapplication/postscript)r r r) rr r!r"r#r$r%r&r'r r r()rdrer r )r) rNrr#r$rrrr&r rt) __future__rrCr<rrrr:typingrrrr_binaryrrjcompilerrr __annotations__rrrcrkrnr register_openr register_saveregister_extensions register_mimerrlrrs,#""""""  !!!!!!  233 ,--# ####""""6 eeeeePm m m m m 9&m m m f.....hL'w???L'///,-v???L')ABBBBBrl