
     hq                         d Z ddlZddlmZmZmZmZmZ ddlm	Z	  G d d          Z
 G d d	          Z G d
 d          Z G d d          ZdS )z]
(Experimental) WCK-style drawing interface operations

.. seealso:: :py:mod:`PIL.ImageDraw`
    N   )Image
ImageColor	ImageDraw	ImageFont	ImagePath)	deprecatec                       e Zd ZdZddZdS )Penz"Stores an outline color and width.r      c                 F    t          j        |          | _        || _        d S N)r   getrgbcolorwidth)selfr   r   opacitys       J/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/PIL/ImageDraw2.py__init__zPen.__init__$   s    &u--



    N)r   r   __name__
__module____qualname____doc__r    r   r   r   r   !   s.        ,,     r   r   c                       e Zd ZdZddZdS )BrushzStores a fill colorr   c                 8    t          j        |          | _        d S r   )r   r   r   )r   r   r   s      r   r   zBrush.__init__,   s    &u--


r   N)r   r   r   r   r   r   r   )   s.        . . . . . .r   r   c                       e Zd ZdZddZdS )Fontz Stores a TrueType font and color   c                 l    t          j        |          | _        t          j        ||          | _        d S r   )r   r   r   r   truetypefont)r   r   filesizes       r   r   zFont.__init__3   s,    &u--
&tT22			r   N)r"   r   r   r   r   r!   r!   0   s.        **3 3 3 3 3 3r   r!   c                   p    e Zd ZdZddZd ZddZd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd ZdS )Drawz4
    (Experimental) WCK-style drawing interface
    Nc                     t          |d          st          j        |||          }t          j        |          | _        || _        d | _        d S )Nim)hasattrr   newr   r)   drawimage	transform)r   r/   r'   r   s       r   r   zDraw.__init__>   sJ    ud## 	2IeT511EN5))	
r   c                     | j         S r   )r/   )r   s    r   flushz
Draw.flushE   s
    zr   c                    d x}}d}t          |t                    r|j        }|j        }n#t          |t                    r|j        }|j        }t          |t                    r|j        }nt          |t                    r|j        }| j        r.t          j        |          }|                    | j                   |dk    r| j        	                    |||           d S  t          | j        |          |||           d S )Nr   line)fillr   )r5   outline)
isinstancer   r   r   r   r0   r   Pathr.   r4   getattr)r   opxypenbrushr6   r5   r   s           r   renderzDraw.renderH   s   $c3 	 iGIEEs## 	 kGKEeU## 	;DDU## 	9D> 	)##BLL(((<<INN2G5N99999"GDIr""2D'BBBBBBr   c                 *    |\  }}dd|dd|f| _         dS )zSets a transformation offset.r   r   N)r0   )r   offsetxoffsetyoffsets       r   settransformzDraw.settransform`   s$    #'QAw7r   c                 (     | j         d|||g|R   dS )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r>   r   r;   startendoptionss        r   rE   zDraw.arce   s*     	E2uc4G444444r   c                 (     | j         d|||g|R   dS )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`
        chordNrF   rG   s        r   rL   z
Draw.chordn   s*     	GR6g666666r   c                 $     | j         d|g|R   dS )z
        Draws an ellipse inside the given bounding box.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.ellipse`
        ellipseNrF   r   r;   rJ   s      r   rN   zDraw.ellipsew   s&     	Ir,G,,,,,,r   c                 $     | j         d|g|R   dS )z
        Draws a line between the coordinates in the ``xy`` list.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.line`
        r4   NrF   rO   s      r   r4   z	Draw.line   s&     	FB)))))))r   c                 (     | j         d|||g|R   dS )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`
        piesliceNrF   rG   s        r   rR   zDraw.pieslice   s*     	JE39999999r   c                 $     | j         d|g|R   dS )a  
        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`
        polygonNrF   rO   s      r   rT   zDraw.polygon   s&     	Ir,G,,,,,,r   c                 $     | j         d|g|R   dS )zg
        Draws a rectangle.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.rectangle`
        	rectangleNrF   rO   s      r   rV   zDraw.rectangle   s&     	K.g......r   c                     | j         r.t          j        |          }|                     | j                    | j                            |||j        |j                   dS )zw
        Draws the string at the given position.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.text`
        )r%   r5   N)r0   r   r8   r.   textr%   r   r   r;   rX   r%   s       r   rX   z	Draw.text   sW     > 	)##BLL(((	r4didjAAAAAr   c                     t          ddd           t          j                    5  t          j        dt                     | j                            ||j                  cddd           S # 1 swxY w Y   dS )z
        .. deprecated:: 9.2.0

        Return the size of the given string, in pixels.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.textsize`
        textsize
   ztextbbox or textlengthignore)categoryr%   N)r	   warningscatch_warningsfilterwarningsDeprecationWarningr.   r[   r%   r   rX   r%   s      r   r[   zDraw.textsize   s     	*b":;;;$&& 	< 	<#H7IJJJJ9%%d%;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   <A..A25A2c                     | j         r.t          j        |          }|                     | j                    | j                            |||j                  S )z
        Returns bounding box (in pixels) of given text.

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

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.textbbox`
        r_   )r0   r   r8   r.   textbboxr%   rY   s       r   rf   zDraw.textbbox   sP     > 	)##BLL(((y!!"d!;;;r   c                 D    | j                             ||j                  S )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_   )r.   
textlengthr%   rd   s      r   rh   zDraw.textlength   s!     y##Dty#999r   )NNr   )r   r   r   r   r   r2   r>   rC   rE   rL   rN   r4   rR   rT   rV   rX   r[   rf   rh   r   r   r   r)   r)   9   s             C C C C08 8 8
5 5 57 7 7- - -* * *: : :- - -/ / /	B 	B 	B< < << < <: : : : :r   r)   )r   r`    r   r   r   r   r   
_deprecater	   r   r   r!   r)   r   r   r   <module>rk      s
  (   @ @ @ @ @ @ @ @ @ @ @ @ @ @ ! ! ! ! ! !       . . . . . . . .3 3 3 3 3 3 3 3X: X: X: X: X: X: X: X: X: X:r   