Ë
    ¦üàg;  ã                  ó¤   — d Z ddlmZ ddlmZmZmZ ddlmZm	Z	m
Z
mZmZ ddlmZmZ  G d„ d«      Z G d	„ d
«      Z G d„ d«      Z G d„ d«      Zy)z]
(Experimental) WCK-style drawing interface operations

.. seealso:: :py:mod:`PIL.ImageDraw`
é    )Úannotations)ÚAnyÚAnyStrÚBinaryIOé   )ÚImageÚ
ImageColorÚ	ImageDrawÚ	ImageFontÚ	ImagePath)ÚCoordsÚStrOrBytesPathc                  ó   — e Zd ZdZddd„Zy)ÚPenz"Stores an outline color and width.c                óF   — t        j                  |«      | _        || _        y ©N)r	   ÚgetrgbÚcolorÚwidth)Úselfr   r   Úopacitys       úL/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/PIL/ImageDraw2.pyÚ__init__zPen.__init__$   s   € Ü×&Ñ& uÓ-ˆŒ
Øˆ�
ó    N)r   éÿ   )r   Ústrr   Úintr   r   ÚreturnÚNone©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   © r   r   r   r   !   s
   „ Ù,õr   r   c                  ó   — e Zd ZdZddd„Zy)ÚBrushzStores a fill colorc                ó8   — t        j                  |«      | _        y r   )r	   r   r   )r   r   r   s      r   r   zBrush.__init__,   s   € Ü×&Ñ& uÓ-ˆ�
r   N)r   )r   r   r   r   r   r   r    r%   r   r   r'   r'   )   s
   „ Ùõ.r   r'   c                  ó*   — e Zd ZdZ	 d	 	 	 	 	 	 	 dd„Zy)ÚFontz Stores a TrueType font and colorc                ón   — t        j                  |«      | _        t        j                  ||«      | _        y r   )r	   r   r   r   ÚtruetypeÚfont)r   r   ÚfileÚsizes       r   r   zFont.__init__3   s*   € ô  ×&Ñ& uÓ-ˆŒ
Ü×&Ñ& t¨TÓ2ˆ�	r   N)é   )r   r   r.   zStrOrBytesPath | BinaryIOr/   Úfloatr   r   r    r%   r   r   r*   r*   0   s1   „ Ù*ð JLð3Øð3Ø 9ð3ØAFð3à	ô3r   r*   c                  ó  — e Zd ZdZ	 	 d	 	 	 	 	 	 	 dd„Zdd„Z	 d	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	dd	„Z
dd
„Z	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zdd„Zy)ÚDrawz4
    (Experimental) WCK-style drawing interface
    Nc                óÀ   — t        |t        «      r&|€d}t        |«      ‚t        j                  |||«      }t        j                  |«      | _        || _        d | _	        y )Nz>If image argument is mode string, size must be a list or tuple)
Ú
isinstancer   Ú
ValueErrorr   Únewr
   r3   ÚdrawÚimageÚ	transform)r   r9   r/   r   Úmsgs        r   r   zDraw.__init__@   sR   € ô �eœSÔ!Øˆ|ØV�Ü  “oÐ%Ü—I‘I˜e T¨5Ó1ˆEÜ—N‘N 5Ó)ˆŒ	ØˆŒ
ØQUˆ�r   c                ó   — | j                   S r   )r9   )r   s    r   Úflushz
Draw.flushO   s   € Ø�z‰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
                  r2t        j                  |«      }	|	j                  | j
                  «       |	}|dv r|j                  d|«       n$|j                  d|«       |j                  d|«       |dk(  r|j                  d|«        t        | j                  |«      |fi |¤Ž y )Nr   )ÚarcÚlineÚfillÚoutliner@   r   )r5   r   r   r   r'   r:   r   ÚPathÚ
setdefaultÚgetattrr8   )
r   ÚopÚxyÚpenÚbrushÚkwargsrB   rA   r   Úpaths
             r   ÚrenderzDraw.renderR   s  € ð Ðˆ�$ØˆÜ�cœ3ÔØ—i‘iˆGØ—I‘I‰EÜ˜œsÔ#Ø—k‘kˆGØ—K‘KˆEÜ�eœUÔ#Ø—;‘;‰DÜ˜œUÔ#Ø—9‘9ˆDà�>Š>Ü—>‘> "Ó%ˆDØ�N‰N˜4Ÿ>™>Ô*ØˆBà�Ñ Ø×Ñ˜f gÕ.à×Ñ˜f dÔ+Ø×Ñ˜i¨Ô1Ø�Š<Ø×Ñ˜g uÔ-ØŒ�—	‘	˜2Ó˜rÑ, VÓ,r   c                ó(   — |\  }}dd|dd|f| _         y)zSets a transformation offset.r   r   N)r:   )r   ÚoffsetÚxoffsetÚyoffsets       r   ÚsettransformzDraw.settransformv   s    € à#Ñˆ�'Ø˜Q ¨¨A¨wÐ7ˆ�r   c                ó6   —  | j                   d||g|¢­||dœŽ y)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?   ©ÚstartÚendN©rL   ©r   rG   rH   rT   rU   Úoptionss         r   r?   zDraw.arc{   s"   € ð 	ˆ�‰�E˜2˜sÐC WÑC°E¸sÔCr   c                ó6   —  | j                   d||g|¢­||dœŽ y)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`
        ÚchordrS   NrV   rW   s         r   rZ   z
Draw.chord‹   s"   € ð 	ˆ�‰�G˜R ÐE wÑE°eÀÔEr   c                ó.   —  | j                   d||g|¢­Ž  y)z‚
        Draws an ellipse inside the given bounding box.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.ellipse`
        ÚellipseNrV   ©r   rG   rH   rX   s       r   r\   zDraw.ellipse›   s   € ð 	ˆ�‰�I˜r 3Ð1¨Ô1r   c                ó.   —  | j                   d||g|¢­Ž  y)zˆ
        Draws a line between the coordinates in the ``xy`` list.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.line`
        r@   NrV   r]   s       r   r@   z	Draw.line£   s   € ð 	ˆ�‰�F˜B Ð. gÔ.r   c                ó6   —  | j                   d||g|¢­||dœŽ y)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`
        ÚpieslicerS   NrV   rW   s         r   r`   zDraw.pieslice«   s"   € ð 	ˆ�‰�J  CÐH¨'ÑH¸ÀCÔHr   c                ó.   —  | j                   d||g|¢­Ž  y)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`
        ÚpolygonNrV   r]   s       r   rb   zDraw.polygon»   s   € ð 	ˆ�‰�I˜r 3Ð1¨Ô1r   c                ó.   —  | j                   d||g|¢­Ž  y)zg
        Draws a rectangle.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.rectangle`
        Ú	rectangleNrV   r]   s       r   rd   zDraw.rectangleÈ   s   € ð 	ˆ�‰�K  SÐ3¨7Ô3r   c                óæ   — | j                   r2t        j                  |«      }|j                  | j                   «       |}| j                  j	                  |||j
                  |j                  ¬«       y)zw
        Draws the string at the given position.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.text`
        )r-   rA   N)r:   r   rC   r8   Útextr-   r   ©r   rG   rf   r-   rK   s        r   rf   z	Draw.textÐ   sN   € ð �>Š>Ü—>‘> "Ó%ˆDØ�N‰N˜4Ÿ>™>Ô*ØˆBØ�	‰	�‰�r˜4 d§i¡i°d·j±jˆÕAr   c                óÎ   — | j                   r2t        j                  |«      }|j                  | 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-   )r:   r   rC   r8   Útextbboxr-   rg   s        r   rj   zDraw.textbboxÜ   sN   € ð �>Š>Ü—>‘> "Ó%ˆDØ�N‰N˜4Ÿ>™>Ô*ØˆBØ�y‰y×!Ñ! " d°·±Ð!Ó;Ð;r   c                óP   — | j                   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`
        ri   )r8   Ú
textlengthr-   )r   rf   r-   s      r   rl   zDraw.textlengthì   s"   € ð �y‰y×#Ñ# D¨t¯y©yÐ#Ó9Ð9r   )NN)r9   zImage.Image | strr/   z"tuple[int, int] | list[int] | Noner   z&float | tuple[float, ...] | str | Noner   r   )r   zImage.Imager   )rF   r   rG   r   rH   úPen | Brush | NonerI   zBrush | Pen | NonerJ   r   r   r   )rN   útuple[float, float]r   r   )rG   r   rH   rm   rT   r1   rU   r1   rX   r   r   r   )rG   r   rH   rm   rX   r   r   r   )rG   rn   rf   r   r-   r*   r   r   )rG   rn   rf   r   r-   r*   r   z!tuple[float, float, float, float])rf   r   r-   r*   r   r1   )r!   r"   r#   r$   r   r=   rL   rQ   r?   rZ   r\   r@   r`   rb   rd   rf   rj   rl   r%   r   r   r3   r3   ;   s¤  „ ñð 48Ø8<ð	Và ðVð 1ðVð 6ð	Vð
 
óVóð %)ð"-àð"-ð ð"-ð  ð	"-ð
 "ð"-ð ð"-ð 
ó"-óH8ð
DàðDð  ðDð ð	Dð
 ðDð ðDð 
óDð FàðFð  ðFð ð	Fð
 ðFð ðFð 
óFó 2ó/ðIàðIð  ðIð ð	Ið
 ðIð ðIð 
óIó 2ó4ó
Bð<Ø%ð<Ø-3ð<Ø;?ð<à	*ó<ô :r   r3   N)r$   Ú
__future__r   Útypingr   r   r   Ú r   r	   r
   r   r   Ú_typingr   r   r   r'   r*   r3   r%   r   r   ú<module>rs      sH   ðñ(õ
 #ç (Ñ (ç @Õ @ß +÷ñ ÷.ñ .÷3ñ 3÷x:ò x:r   