K iTddlmZddlZddlmZddlmZdZGddZd Z d Z d Z y) ) annotationsN)IO)EpsImagePluginFcveZdZdZd ddZd ddZddZddZddZddZ dd Z e rd d l m Z  d dd Zy)PSDrawzi Sets up printing to the given file. If ``fp`` is omitted, ``sys.stdout.buffer`` is assumed. NcJ|stjj}||_yN)sysstdoutbufferfp)selfrs P/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/PSDraw.py__init__zPSDraw.__init__%s""Bc|jjd|jjt|jjt|jjdi|_y)z=Set up printing of a document. (Write PostScript DSC header.)sD%!PS-Adobe-3.0 save /showpage { } def %%EndComments %%BeginDocument s %%EndProlog N)rwrite EDROFF_PSVDI_PSisofont)rids rbegin_documentzPSDraw.begin_document*sS   !   i   f  &')+ rc|jjdt|jdr|jjyy)z-Ends printing. (Write PostScript DSC footer.)s%%%EndDocument restore showpage %%End flushN)rrhasattrr)rs r end_documentzPSDraw.end_document:s3  AB 477G $ GGMMO %rct|d}||jvr/|jjd||fzd|j|<|jjd||fzy)z~ Selects which font to use. :param font: A PostScript font name :param size: Size in points. UTF-8s#/PSDraw-%s ISOLatin1Encoding /%s E rs/F0 %d /PSDraw-%s F N)bytesrrr)rfontsize font_bytess rsetfontzPSDraw.setfont@sd4) T\\ ) GGMM7:z:RR ()DLL $  .$ 1CCDrcJ|jjdg||zy)z Draws a line between the two points. Coordinates are given in PostScript point coordinates (72 points per inch, (0, 0) is the lower left corner of the page). s%d %d %d %d Vl Nrr)rxy0xy1s rlinez PSDraw.lineQs"  )LcLCL89rc@|jjd|zy)z Draws a rectangle. :param box: A tuple of four integers, specifying left, bottom, width and height. s%d %d M 0 %d %d Vr Nr&)rboxs r rectanglezPSDraw.rectangleYs  -34rct|d}dj|jd}dj|jd}|jj d||fzzy)z Draws text at the given position. You must use :py:meth:`~PIL.PSDraw.PSDraw.setfont` before calling this method. rs\((s\))s%d %d M (%s) S N)r joinsplitrr)rxytext text_bytess rr3z PSDraw.textbs_ 4) [[!1!1$!78 [[!1!1$!78   )R:--?@Arr)Imagec|s|jdk(rd}nd}|jddz|z }|jddz|z }t|d|dz }t|d|dz }||kDr ||z|z }|}||kDr ||z|z }|}||z dz |dz}||z dz |dz} |jj d || fz||f|jk7rD||jdz } ||jdz } |jj d | | fzt j ||jd d|jj d y )z,Draw a PIL image, centered in the given box.1drHrsgsave %f %f translate s %f %f scale s grestore N)moder"floatrrr_save) rr+imdpixyxmaxymaxdxdysxsys rimagez PSDraw.imageos` ww#~ GGAJOc ! GGAJOc !SVc!f_%SVc!f_% t8D1 AA t8D1 AAQh!^c!f $Qh!^c!f $  1RH<= q6RWW RWWQZBRWWQZB GGMM*b"X5 6R"a0  o&rr )rzIO[bytes] | NonereturnNone)rz str | NonerLrM)rLrM)r!strr"intrLrM)r'tuple[int, int]r(rPrLrM)r+tuple[int, int, int, int]rLrM)r2rPr3rNrLrM)r+rQrAz Image.ImagerBz int | NonerLrM)__name__ __module__ __qualname____doc__rrrr$r)r,r3 TYPE_CHECKINGr=r5rKrrrrs`  ,  E":5BRV','2='DN' 'rrs/S { show } bind def /P { moveto show } bind def /M { moveto } bind def /X { 0 rmoveto } bind def /Y { 0 exch rmoveto } bind def /E { findfont dup maxlength dict begin { 1 index /FID ne { def } { pop pop } ifelse } forall /Encoding exch def dup /FontName exch def currentdict end definefont pop } bind def /F { findfont exch scalefont dup setfont [ exch /setfont cvx ] cvx bind def } bind def s/Vm { moveto } bind def /Va { newpath arcn stroke } bind def /Vl { moveto lineto stroke } bind def /Vc { newpath 0 360 arc closepath } bind def /Vr { exch dup 0 rlineto exch dup 0 exch rlineto exch neg 0 rlineto 0 exch neg rlineto setgray fill } bind def /Tm matrix def /Ve { Tm currentmatrix pop translate scale newpath 0 0 .5 0 360 arc closepath Tm setmatrix } bind def /Vf { currentgray exch setgray fill setgray } bind def s/landscape false def /errorBUF 200 string def /errorNL { currentpoint 10 sub exch pop 72 exch moveto } def errordict begin /handleerror { initmatrix /Courier findfont 10 scalefont setfont newpath 72 720 moveto $error begin /newerror false def (PostScript Error) show errorNL errorNL (Error: ) show /errorname load errorBUF cvs show errorNL errorNL (Command: ) show /command load dup type /stringtype ne { errorBUF cvs } if show errorNL errorNL (VMstatus: ) show vmstatus errorBUF cvs show ( bytes available, ) show errorBUF cvs show ( bytes used at level ) show errorBUF cvs show errorNL errorNL (Operand stargck: ) show errorNL /ostargck load { dup type /stringtype ne { errorBUF cvs } if 72 0 rmoveto show errorNL } forall errorNL (Execution stargck: ) show errorNL /estargck load { dup type /stringtype ne { errorBUF cvs } if 72 0 rmoveto show errorNL } forall end showpage } def end ) __future__rr typingrr=rrVrrrERROR_PSrWrrr[s:"#  o'o'~  : 2 r