Ë
    D·j‡  ã                  ó˜   — d Z ddlmZ ddlm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y)z]
(Experimental) WCK-style drawing interface operations

.. seealso:: :py:mod:`PIL.ImageDraw`
é    )Úannotations)ÚBinaryIOé   )ÚImageÚ
ImageColorÚ	ImageDrawÚ	ImageFontÚ	ImagePath)Ú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       ú\/var/www/html/ai-video-generator/backend/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„Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Z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   r0   ÚdrawÚimageÚ	transform)r   r6   r,   r   Úmsgs        r   r   zDraw.__init__@   sR   € ô �eœSÔ!Øˆ|ØV�Ü  “oÐ%Ü—I‘I˜e T¨5Ó1ˆEÜ—N‘N 5Ó)ˆŒ	ØˆŒ
Øˆ�r   c                ó   — | j                   S r   )r6   )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
                  r0t        j                  |«      }|j                  | j
                  «       |dk(  r| j                  j                  |||¬«       y  t        | j                  |«      |||¬«       y )Nr   Úline)Úfillr   )r=   Úoutline)r2   r   r   r   r$   r7   r
   ÚPathr5   r<   Úgetattr)r   ÚopÚxyÚpenÚbrushr>   r=   r   s           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à�>Š>Ü—‘ Ó#ˆBØ�L‰L˜Ÿ™Ô(à�Š<Ø�I‰I�N‰N˜2 G°5ˆNÕ9à"ŒG�D—I‘I˜rÓ" 2¨D¸'ÖBr   c                ó(   — |\  }}dd|dd|f| _         y)zSets a transformation offset.r   r   N)r7   )r   ÚoffsetÚxoffsetÚyoffsets       r   ÚsettransformzDraw.settransformj   s    € à#Ñˆ�'Ø˜Q ¨¨A¨wÐ7ˆ�r   c                ó0   —  | j                   d|||g|¢­Ž  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`
        ÚarcN©rE   ©r   rB   ÚstartÚendÚoptionss        r   rL   zDraw.arco   s   € ð 	ˆ�‰�E˜2˜u cÐ4¨GÔ4r   c                ó0   —  | j                   d|||g|¢­Ž  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`
        ÚchordNrM   rN   s        r   rS   z
Draw.chordx   s   € ð 	ˆ�‰�G˜R ¨Ð6¨gÔ6r   c                ó,   —  | j                   d|g|¢­Ž  y)z‚
        Draws an ellipse inside the given bounding box.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.ellipse`
        ÚellipseNrM   ©r   rB   rQ   s      r   rU   zDraw.ellipse�   s   € ð 	ˆ�‰�I˜rÐ, GÔ,r   c                ó,   —  | j                   d|g|¢­Ž  y)zˆ
        Draws a line between the coordinates in the ``xy`` list.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.line`
        r<   NrM   rV   s      r   r<   z	Draw.line‰   s   € ð 	ˆ�‰�F˜BÐ) Ô)r   c                ó0   —  | j                   d|||g|¢­Ž  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`
        ÚpiesliceNrM   rN   s        r   rY   zDraw.pieslice‘   s   € ð 	ˆ�‰�J  E¨3Ð9°Ô9r   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`
        ÚpolygonNrM   rV   s      r   r[   zDraw.polygonš   s   € ð 	ˆ�‰�I˜rÐ, GÔ,r   c                ó,   —  | j                   d|g|¢­Ž  y)zg
        Draws a rectangle.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.rectangle`
        Ú	rectangleNrM   rV   s      r   r]   zDraw.rectangle§   s   € ð 	ˆ�‰�K Ð. gÔ.r   c                óâ   — | j                   r0t        j                  |«      }|j                  | j                   «       | j                  j	                  |||j
                  |j                  ¬«       y)zw
        Draws the string at the given position.

        .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.text`
        )r*   r=   N)r7   r
   r?   r5   Útextr*   r   ©r   rB   r_   r*   s       r   r_   z	Draw.text¯   sI   € ð �>Š>Ü—‘ Ó#ˆBØ�L‰L˜Ÿ™Ô(Ø�	‰	�‰�r˜4 d§i¡i°d·j±jˆÕAr   c                óÊ   — | j                   r0t        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*   )r7   r
   r?   r5   Útextbboxr*   r`   s       r   rc   zDraw.textbboxº   sI   € ð �>Š>Ü—‘ Ó#ˆBØ�L‰L˜Ÿ™Ô(Ø�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`
        rb   )r5   Ú
textlengthr*   )r   r_   r*   s      r   re   zDraw.textlengthÇ   s"   € ð �y‰y×#Ñ# D¨t¯y©yÐ#Ó9Ð9r   )NN)r6   zImage.Image | strr,   z"tuple[int, int] | list[int] | Noner   z&float | tuple[float, ...] | str | Noner   r   )r   zImage.Imager   )r   r   r    r!   r   r:   rE   rJ   rL   rS   rU   r<   rY   r[   r]   r_   rc   re   r"   r   r   r0   r0   ;   s}   „ ñð 48Ø8<ð	à ðð 1ðð 6ð	ð
 
óóóCò08ò
5ò7ò-ò*ò:ò-ò/ò	Bò<ó:r   r0   N)r!   Ú
__future__r   Útypingr   Ú r   r   r   r	   r
   Ú_typingr   r   r$   r'   r0   r"   r   r   ú<module>rj      sE   ðñ(õ
 #å ç @Õ @Ý #÷ñ ÷.ñ .÷3ñ 3÷S:ò S:r   