§
    œ"²cq  ã                   ó¢   — 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       ú0/usr/lib/python3/dist-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Ñ-Ô-ˆŒ
ÝÔ& t¨TÑ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   € Ý�u˜dÑ#Ô#ð 	2Ý”I˜e T¨5Ñ1Ô1ˆEÝ”N 5Ñ)Ô)ˆŒ	ØˆŒ
ØˆŒˆˆ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  € àÐˆ�$ØˆÝ�c�3ÑÔð 	 Ø”iˆGØ”IˆEˆEÝ˜�sÑ#Ô#ð 	 Ø”kˆGØ”KˆEÝ�e�UÑ#Ô#ð 	Ø”;ˆDˆDÝ˜�UÑ#Ô#ð 	Ø”9ˆDàŒ>ð 	)Ý” Ñ#Ô#ˆBØ�LŠL˜œÑ(Ô(Ð(à�Š<ˆ<ØŒI�NŠN˜2 G°5ˆNÑ9Ô9Ð9Ð9Ð9à"�G�D”I˜rÑ"Ô" 2¨D¸'Ð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 ¨¨A¨wÐ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*   € ð 	ˆŒ�E˜2˜u cÐ4¨GÐ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*   € ð 	ˆŒ�G˜R ¨Ð6¨gÐ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&   € ð 	ˆŒ�I˜rÐ, 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&   € ð 	ˆŒ�F˜BÐ) Ð)Ð)Ð)Ð)Ð)Ð)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  E¨3Ð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&   € ð 	ˆŒ�I˜rÐ, 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Ø�LŠL˜œÑ(Ô(Ð(ØŒ	�Š�r˜4 d¤i°d´jˆÑ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Ð":Ñ;Ô;Ð;ÝÔ$Ñ&Ô&ð 	<ð 	<ÝÔ# HÕ7IÐ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Ø�LŠL˜œÑ(Ô(Ð(ØŒ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×#Ò# D¨t¬yÐ#Ñ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   