
    (ph                        S r SSKJr  SSKJr  SSKJrJrJrJ	r	J
r
  SSKJr   " S S5      r " S	 S
5      r " S S5      r " S S5      rg)z]
(Experimental) WCK-style drawing interface operations

.. seealso:: :py:mod:`PIL.ImageDraw`
    )annotations)BinaryIO   )Image
ImageColor	ImageDraw	ImageFont	ImagePath)StrOrBytesPathc                  &    \ rS rSrSrSSS jjrSrg)Pen!   z"Stores an outline color and width.c                F    [         R                  " U5      U l        X l        g N)r   getrgbcolorwidth)selfr   r   opacitys       A/var/www/html/venv/lib/python3.13/site-packages/PIL/ImageDraw2.py__init__Pen.__init__$   s    &&u-

    )r   r   N)r      )r   strr   intr   r   returnNone__name__
__module____qualname____firstlineno____doc__r   __static_attributes__ r   r   r   r   !   s    , r   r   c                  &    \ rS rSrSrSSS jjrSrg)Brush)   zStores a fill colorc                :    [         R                  " U5      U l        g r   )r   r   r   )r   r   r   s      r   r   Brush.__init__,   s    &&u-
r   )r   N)r   )r   r   r   r   r   r   r   r&   r   r   r(   r(   )   s    . .r   r(   c                  6    \ rS rSrSr S       SS jjrSrg)Font0   z Stores a TrueType font and colorc                p    [         R                  " U5      U l        [        R                  " X#5      U l        g r   )r   r   r   r	   truetypefont)r   r   filesizes       r   r   Font.__init__3   s(      &&u-
&&t2	r   )r   r1   N)   )r   r   r2   zStrOrBytesPath | BinaryIOr3   floatr   r   r   r&   r   r   r-   r-   0   s6    * JL33 93AF3	3 3r   r-   c                      \ rS rSrSr  S       SS jjrSS jrSS jrS rS r	S	 r
S
 rS rS rS rS rS rS rS rSrg)Draw;   z,
(Experimental) WCK-style drawing interface
Nc                    [        U[        5      (       a'  Uc  Sn[        U5      e[        R                  " XU5      n[
        R                  " U5      U l        Xl        S U l	        g )Nz>If image argument is mode string, size must be a list or tuple)

isinstancer   
ValueErrorr   newr   r8   drawimage	transform)r   r?   r3   r   msgs        r   r   Draw.__init__@   sQ     eS!!|V o%IIe51ENN5)	
r   c                    U R                   $ r   )r?   )r   s    r   flush
Draw.flushO   s    zzr   c                F   S =pVSn[        U[        5      (       a  UR                  nUR                  nO-[        U[        5      (       a  UR                  nUR                  n[        U[        5      (       a  UR                  nO![        U[        5      (       a  UR                  nU R
                  (       a1  [        R                  " U5      nUR                  U R
                  5        US:X  a  U R                  R                  X%US9  g [        U R                  U5      " X&US9  g )Nr   line)fillr   )rH   outline)r;   r   r   r   r(   r@   r
   Pathr>   rG   getattr)r   opxypenbrushrI   rH   r   s           r   renderDraw.renderR   s    c3iiGIIEs##kkGKKEeU##;;DU##99D>>#BLL(<IINN25N9DIIr"2'Br   c                &    Uu  p#SSUSSU4U l         g)zSets a transformation offset.r   r   N)r@   )r   offsetxoffsetyoffsets       r   settransformDraw.settransformj   s    #QAw7r   c                .    U R                   " SXU/UQ76   g)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`
arcNrP   r   rM   startendoptionss        r   rY   Draw.arco   s     	E2c4G4r   c                .    U R                   " SXU/UQ76   g)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`
chordNrZ   r[   s        r   ra   
Draw.chordx   s     	GR6g6r   c                ,    U R                   " SU/UQ76   g)zj
Draws an ellipse inside the given bounding box.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.ellipse`
ellipseNrZ   r   rM   r^   s      r   rd   Draw.ellipse   s     	Ir,G,r   c                ,    U R                   " SU/UQ76   g)zp
Draws a line between the coordinates in the ``xy`` list.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.line`
rG   NrZ   re   s      r   rG   	Draw.line   s     	FB))r   c                .    U R                   " SXU/UQ76   g)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`
piesliceNrZ   r[   s        r   rj   Draw.pieslice   s     	J399r   c                ,    U R                   " SU/UQ76   g)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`
polygonNrZ   re   s      r   rm   Draw.polygon   s     	Ir,G,r   c                ,    U R                   " SU/UQ76   g)zO
Draws a rectangle.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.rectangle`
	rectangleNrZ   re   s      r   rp   Draw.rectangle   s     	K.g.r   c                    U R                   (       a1  [        R                  " U5      nUR                  U R                   5        U R                  R	                  XUR
                  UR                  S9  g)z_
Draws the string at the given position.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.text`
)r1   rH   N)r@   r
   rJ   r>   textr1   r   r   rM   rs   r1   s       r   rs   	Draw.text   sG     >>#BLL(		rdiidjjAr   c                    U R                   (       a1  [        R                  " U5      nUR                  U R                   5        U R                  R	                  XUR
                  S9$ )z
Returns bounding box (in pixels) of given text.

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

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.textbbox`
r1   )r@   r
   rJ   r>   textbboxr1   rt   s       r   rx   Draw.textbbox   sG     >>#BLL(yy!!"!;;r   c                H    U R                   R                  XR                  S9$ )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`
rw   )r>   
textlengthr1   )r   rs   r1   s      r   r{   Draw.textlength   s      yy##Dyy#99r   )r>   r?   r@   )NN)r?   zImage.Image | strr3   z"tuple[int, int] | list[int] | Noner   z&float | tuple[float, ...] | str | Noner   r   )r   zImage.Imager   )r    r!   r"   r#   r$   r   rD   rP   rV   rY   ra   rd   rG   rj   rm   rp   rs   rx   r{   r%   r&   r   r   r8   r8   ;   s}     488<	  1 6	
 
C08
57-*:-/	B<:r   r8   N)r$   
__future__r   typingr    r   r   r   r	   r
   _typingr   r   r(   r-   r8   r&   r   r   <module>r      sE   (
 #  @ @ # . .3 3S: S:r   