K i@UddlmZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z m Z ddl mZej dZej dZdad ed <dadd Z d dd Zdd ZGdde jZdddZe j6ej8eee j:ej8ee j<ej8ddge j>ej8dy)) annotationsN)IO)Image ImageFile)i32lez^%%([^:]*):[ \t]*(.*)[ \t]*$z^%[%!\w]([^:]*)[ \t]*$zstr | bool | None gs_binaryc\ttjjdr6t"ddl}dD]}|j ||andatatduS tjddgtjdatduStduS#t$r daYtduSwxYw)Nwinr)gswin32cgswin64cgsFrz --version)stdout) r sysplatform startswithgs_windows_binaryshutilwhich subprocess check_callDEVNULLOSError)rbinarys X/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/EpsImagePlugin.pyhas_ghostscriptr-s << " "5 ) (<.F||F+7,2). ).%)I E !!  "%%t[&9*BTBTU  E !!9E !! "! E !! "s)B B+*B+cFts d}t|tttsJ|dj }t|t sJ|\}}t|xsd}|d|z} |d|z} d| z|d|dz z } d| z|d|dz z } tj\} }tj| d}t|dr6tjj|jr |j}ntj\}}tj||}t!|d 5}|j#dt$j&|j)}|j#d|}|dkDrC|j+t-|d }|sn%|t/|z}|j1||dkDrCddd|rd }nd }td d| dd| dd| dd| ddddd|d|d|d d|d dd|ddg} d}t2j4j7dr7t9j:}|xj<t8j>zc_t9j@||tCj |5}|jE|jFjIcddd tjJ||rtjJ|SS#1swY1xYw#t$rYSwxYw#1swYnxYw tjJ||rtjJ|yy#t$rYywxYw# tjJ||rtjJ|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 strargstupleinttempfilemkstemposclosehasattrpathexistsr openseekioSEEK_ENDtellreadminlenwriterrrr STARTUPINFOdwFlagsSTARTF_USESHOWWINDOWrrloadimcopyunlink)tilesizefpscale transparencymsgr,lengthbboxwidthheightres_xres_yout_fdoutfile infile_tempinfilein_fdr&fsize lengthfilesdevicecommandr)out_ims r Ghostscriptr]Ds  5cl i %% % 7<># $ $  IIg  +&s  v    $ $ $  IIg  +&      IIg  +&   sz?B K:BM!*L M! ,L:L LLLM!$,M MM!N #,NN  NN NN cd|jdxst|dk\xrt|dk(S)N%!PSP )rr=i32)prefixs r_acceptrds4   W %  F q6S[J6cTeZdZdZdZdZdddddZdd Zdd Z d dd Z dd Z y ) EpsImageFilez.EPS File Parser for the Python Imaging LibraryEPSzEncapsulated PostscriptLLABRGBCMYK)rrrr`cjj\}}jj|d_dd}t d}t |}d}d}ddd%fd }d&fd } jj d} | d k(r|dk(rS|r|n| d vr|dk(r?;|dk\r+|dtd k(r d } t| |r |d}d}| d||<|dz }y|r|dtd k7s|dd dk(r |d}t|d|d} | | sDtj| } | rE| jd}|jdr|ddjd<ndj|<n| dd k(rnd} t| |dddk(rZ|rd}6|d|j!dd}d|ddD\}}}}|dk(rd_n|dk(r j"|_nny||f}np|dddk(rnkrrt|d|d} | | nK|dddk(rdn@|dddk(r8t'|d|}jj|t(j*d}s d } t| |xsd!dz d"dz f_t/j0d#d$j2z||fg_y#t$$rYgwxYw)'NrkrTFcrdjvr d}t|djvr d}t|y)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)rKselfs rcheck_required_header_commentsz:EpsImageFile._open..check_required_header_commentssB *?!#&&DII-B!#&&.rec tj|}|sy|j dd\}}| j |<|dk(r@|dk(rdyr r4r2 |jDcgc]}tt|c}yy#tj$r}d}t ||d}~wwxYwcc}w#t$rYywxYw)Nnot an EPS fileFrrrqz(atend)T) splitmatchreerrorrsgrouprrr.float Exception) rYmerKkvi bounding_boxreading_trailer_commentsrttrailer_reacheds r read_commentz(EpsImageFile._open..read_comments .KKN 771a=DAqDIIaLM! >/3,&/>V@Awwy'I!E!H 'I )88 .'!#&A- ."(J$s;BB3%B.B3B+B&&B+.B33 B?>B?rres %rw s %%EndCommentszlatin-1rp zbad EPS header s %ImageData:c32K|]}t|ywN)r.).0values r z%EpsImageFile._open..Ls5#(CJ5sr`1s%%EOFs %%Trailers%%BeginBinary:z!cannot determine EPS bounding boxrrepsrrreturnNone)rYr+rbool) _find_offsetrHr7_mode bytearray memoryviewr;ordrsr+fieldryr|rrrrrxmode_map ValueErrorr.r1SEEK_CUR_sizer_TilerGrF)rtrLoffsetimagedata_sizebyte_arrbytes_mv bytes_readreading_header_commentsrurbyterKrYrrimage_data_valuescolumnsrows bit_depthmode_id bytecountrrrs` @@@r_openzEpsImageFile._opensl,,TWW5  V *. 15S>h' "&#(  '  477<<?Ds{?.68?$ {c#h./)#..2:<6;3&' '+Aw$a & A;#c(*hsm?O.O24.3+*-y9#A AAGGAJ<< 345abEDIIj1+-DIIaL1.%cl*#2.0 "!"J%-R $;$A$A$$J!5,=bq,A51y'>!$DJ!^%)]]7%; ")$"1) %=*-y9Q"1-"&#2"33J 78  Y 4J]d5C#, $ Ol1o - Ol1o -(  OOE6DII#5v ?U V  C&s%K KKc(|jd}|dk(r6|jdtj|j }d}||fSt |dk(r,|jd}t |}t |d}||fSd}t |)Nr`r_rrarrw)r;r7r8r9r:rbrs)rtrHrYrLrrKs rrzEpsImageFile._find_offsetzs GGAJ < GGAr{{ #WWYFFv~Vz !  AVFAYF v~$Cc" "rec6|jrot|j|j|j|||_|jj |_|jj|_g|_tjj|Sr) rFr]rGrHrCmoderrrrB)rtrIrJs rrBzEpsImageFile.loadse 99!$))TYY UDGDJDJDI{{%%recyr)rtposs r load_seekzEpsImageFile.load_seeks reNr)rH IO[bytes]rtuple[int, int]rF)rIr.rJrrzImage.core.PixelAccess | None)rr.rr) __name__ __module__ __qualname____doc__formatformat_descriptionrrrrBrrrerrgrgsQ8 F25Uv6Hy v049 & &,0 & & & rergc |j|jdk(rd}n1|jdk(rd}n|jdk(rd}n d}t||r|jd|jd |jd |jz|jd |jd |jd |jd|jz|jd|z|jd|jd|jd|jd|dzz|jd|jz|jd|jz|jd|jd|jd|jdfz|jd|j|ddzt |dr|j tj||tjdd|jzg|jd|jdt |dr|j y y )!z*EPS Writer for the Python Imaging Library.ri)rrsimagerk)rrsfalse 3 colorimagerl)rr`sfalse 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) rBrrr>rGr3rr_saver)rCrHfilenameroperatorrKs rrrsGGI ww#~# E 0 F 0+o  -. 23 0277:; ! #$ !" '"''12 &12HHZHH  HH $ Xa[(@ ABHH  '(HH\BGG #$HH #rwwqz2771:rwwqz&J JKHH <=HHXa[5 !r7   OOBY__UFRWW4DEFGHH !"HH r7  rez.psz.epszapplication/postscript)rrr) rFzlist[ImageFile._Tile]rGrrHrrIr.rJrrzImage.core.ImagingCore)rcbytesrr)r) rCz Image.ImagerHrrz str | bytesrr.rr) __future__rr8r1rzrrr/typingrrrr_binaryrrbcompilerxrr __annotations__rrr]rdrgr register_openr register_saveregister_extensions register_mimerrerrs5,#  !  23 ,-# #"6 e e e e  e  e  ePh 9&&h \.hL''w?L''/,--v?L'')ABre