+
    UBi;                        R t ^ RIHt ^ RIHtHtHt ^RIHtH	t	H
t
HtHt ^RIHtHt  ! R R4      t ! R R4      t ! R	 R
4      t ! R R4      tR# )z]
(Experimental) WCK-style drawing interface operations

.. seealso:: :py:mod:`PIL.ImageDraw`
)annotations)AnyAnyStrBinaryIO)Image
ImageColor	ImageDraw	ImageFont	ImagePath)CoordsStrOrBytesPathc                  *    ] tR t^!tRtRR R lltRtR# )Penz"Stores an outline color and width.c               (    V ^8  d   QhRRRRRRRR/# )   colorstrwidthintopacityreturnNone )formats   "3/usr/lib/python3.14/site-packages/PIL/ImageDraw2.py__annotate__Pen.__annotate__$   s(      c # C $     c                	H    \         P                  ! V4      V n        W n        R # N)r   getrgbr   r   )selfr   r   r   s   &&&&r   __init__Pen.__init__$   s    &&u-

r   )r   r   N)      __name__
__module____qualname____firstlineno____doc__r"   __static_attributes__r   r   r   r   r   !   s    , r   r   c                  *    ] tR t^)tRtRR R lltRtR# )BrushzStores a fill colorc               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r   r   r   r   )r   s   "r   r   Brush.__annotate__,   s!     . .c .C .$ .r   c                	<    \         P                  ! V4      V n        R # r   )r   r    r   )r!   r   r   s   &&&r   r"   Brush.__init__,   s    &&u-
r   )r   N)r%   r&   r   r   r   r.   r.   )   s    . .r   r.   c                  *    ] tR t^0tRtRR R lltRtR# )Fontz Stores a TrueType font and colorc               (    V ^8  d   QhRRRRRRRR/# )	r   r   r   filezStrOrBytesPath | BinaryIOsizefloatr   r   r   )r   s   "r   r   Font.__annotate__3   s,     3 33 93AF3	3r   c                	r    \         P                  ! V4      V n        \        P                  ! W#4      V n        R # r   )r   r    r   r	   truetypefont)r!   r   r6   r7   s   &&&&r   r"   Font.__init__3   s(      &&u-
&&t2	r   )r   r<   N)   r&   r   r   r   r4   r4   0   s    *3 3r   r4   c                      ] tR t^;tRtR R R lltR R ltR!R R lltR	 R
 ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltRtR# )"Drawz,
(Experimental) WCK-style drawing interface
Nc               (    V ^8  d   QhRRRRRRRR/# )	r   imagezImage.Image | strr7   z"tuple[int, int] | list[int] | Noner   z&float | tuple[float, ...] | str | Noner   r   r   )r   s   "r   r   Draw.__annotate__@   s8     V V V 1V 6	V
 
Vr   c                	    \        V\        4      '       d)   Vf   Rp\        V4      h\        P                  ! WV4      p\
        P                  ! V4      V n        Wn        R V n	        R # )Nz>If image argument is mode string, size must be a list or tuple)

isinstancer   
ValueErrorr   newr   r@   drawrB   	transform)r!   rB   r7   r   msgs   &&&& r   r"   Draw.__init__@   sQ     eS!!|V o%IIe51ENN5)	
QUr   c                   V ^8  d   QhRR/# )r   r   zImage.Imager   )r   s   "r   r   rC   O   s      { r   c                	    V P                   # r   )rB   )r!   s   &r   flush
Draw.flushO   s    zzr   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r   opr   xyr   penPen | Brush | NonebrushzBrush | Pen | Nonekwargsr   r   r   r   )r   s   "r   r   rC   R   sF     "- "-"- "-  	"-
 ""- "- 
"-r   c                	   R ;rg^p\        V\        4      '       d   VP                  pVP                  pM.\        V\        4      '       d   VP                  pVP                  p\        V\        4      '       d   VP                  pM"\        V\        4      '       d   VP                  pV P
                  '       d4   \        P                  ! V4      p	V	P                  V P
                  4       T	pVR9   d   VP                  RV4       M$VP                  RV4       VP                  RV4       VR8X  d   VP                  RV4       \        V P                  V4      ! V3/ VB  R # )Nlinefilloutliner   )arcrX   )rE   r   r   r   r.   rI   r
   Path
setdefaultgetattrrH   )
r!   rQ   rR   rS   rU   rV   rZ   rY   r   paths
   &&&&&,    r   renderDraw.renderR   s    c3iiGIIEs##kkGKKEeU##;;DU##99D>>>>>"%DNN4>>*B fg.fd+i1<gu-		2r,V,r   c                    V ^8  d   QhRRRR/# )r   offsettuple[float, float]r   r   r   )r   s   "r   r   rC   v   s     8 8#6 84 8r   c                (    Vw  r#^^ V^ ^V3V n         R# )zSets a transformation offset.N)rI   )r!   rc   xoffsetyoffsets   &&  r   settransformDraw.settransformv   s    #QAw7r   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# r   rR   r   rS   rT   startr8   endoptionsr   r   r   r   )r   s   "r   r   rC   {   sN     D DD  D 	D
 D D 
Dr   c                8    V P                   ! RW.VO5RVRV/  R# )z
Draws an arc (a portion of a circle outline) between the start and end
angles, inside the given bounding box.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.arc`
r[   rl   rm   Nr`   r!   rR   rS   rl   rm   rn   s   &&&&&*r   r[   Draw.arc{   s!     	E2CWCECsCr   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# rk   r   )r   s   "r   r   rC      sN     F FF  F 	F
 F F 
Fr   c                8    V P                   ! RW.VO5RVRV/  R# )z
Same as :py:meth:`~PIL.ImageDraw2.Draw.arc`, but connects the end points
with a straight line.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.chord`
chordrl   rm   Nrp   rq   s   &&&&&*r   ru   
Draw.chord   s!     	GREwEeEEr   c               (    V ^8  d   QhRRRRRRRR/# 	r   rR   r   rS   rT   rn   r   r   r   r   )r   s   "r   r   rC      s)     2 2& 2'9 2S 2T 2r   c                0    V P                   ! RW.VO5!   R# )zj
Draws an ellipse inside the given bounding box.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.ellipse`
ellipseNrp   r!   rR   rS   rn   s   &&&*r   rz   Draw.ellipse   s     	Ir11r   c               (    V ^8  d   QhRRRRRRRR/# rx   r   )r   s   "r   r   rC      s)     / /v /$6 /# /$ /r   c                0    V P                   ! RW.VO5!   R# )zp
Draws a line between the coordinates in the ``xy`` list.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.line`
rX   Nrp   r{   s   &&&*r   rX   	Draw.line   s     	FB.g.r   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# rk   r   )r   s   "r   r   rC      sN     I II  I 	I
 I I 
Ir   c                8    V P                   ! RW.VO5RVRV/  R# )z
Same as arc, but also draws straight lines between the end points and the
center of the bounding box.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.pieslice`
pieslicerl   rm   Nrp   rq   s   &&&&&*r   r   Draw.pieslice   s!     	JH'HHCHr   c               (    V ^8  d   QhRRRRRRRR/# rx   r   )r   s   "r   r   rC      s)     2 2& 2'9 2S 2T 2r   c                0    V P                   ! RW.VO5!   R# )z
Draws a polygon.

The polygon outline consists of straight lines between the given
coordinates, plus a straight line between the last and the first
coordinate.


.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.polygon`
polygonNrp   r{   s   &&&*r   r   Draw.polygon   s     	Ir11r   c               (    V ^8  d   QhRRRRRRRR/# rx   r   )r   s   "r   r   rC      s)     4 4F 4); 4s 4t 4r   c                0    V P                   ! RW.VO5!   R# )zO
Draws a rectangle.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.rectangle`
	rectangleNrp   r{   s   &&&*r   r   Draw.rectangle   s     	K373r   c               (    V ^8  d   QhRRRRRRRR/# )	r   rR   rd   textr   r<   r4   r   r   r   )r   s   "r   r   rC      s/     
B 
B* 
B& 
B 
B 
Br   c                    V P                   '       d4   \        P                  ! V4      pVP                  V P                   4       TpV P                  P	                  WVP
                  VP                  R7       R# )z_
Draws the string at the given position.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.text`
)r<   rY   N)rI   r
   r\   rH   r   r<   r   r!   rR   r   r<   r_   s   &&&& r   r   	Draw.text   sN     >>>>>"%DNN4>>*B		rdiidjjAr   c               (    V ^8  d   QhRRRRRRRR/# )	r   rR   rd   r   r   r<   r4   r   z!tuple[float, float, float, float]r   )r   s   "r   r   rC      s,     < <%<-3<;?<	*<r   c                    V P                   '       d4   \        P                  ! V4      pVP                  V P                   4       TpV P                  P	                  WVP
                  R7      # )z
Returns bounding box (in pixels) of given text.

:return: ``(left, top, right, bottom)`` bounding box

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.textbbox`
r<   )rI   r
   r\   rH   textbboxr<   r   s   &&&& r   r   Draw.textbbox   sN     >>>>>"%DNN4>>*Byy!!"!;;r   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r<   r4   r   r8   r   )r   s   "r   r   rC      s!     : :v :T :e :r   c                N    V P                   P                  WP                  R7      # )z
Returns length (in pixels) of given text.
This is the amount by which following text should be offset.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.textlength`
r   )rH   
textlengthr<   )r!   r   r<   s   &&&r   r   Draw.textlength   s      yy##Dyy#99r   )rH   rB   rI   )NNr   )r'   r(   r)   r*   r+   r"   rN   r`   rh   r[   ru   rz   rX   r   r   r   r   r   r   r,   r   r   r   r@   r@   ;   sX    V"-H8
D F 2/I 24
B< : :r   r@   N)r+   
__future__r   typingr   r   r    r   r   r   r	   r
   _typingr   r   r   r.   r4   r@   r   r   r   <module>r      sH   (
 # ( ( @ @ + . .3 3x: x:r   