+
    JV-j:  ã                  ó¦   € R t ^ RIHt ^ RIHtHtHt ^RIHtH	t	H
t
HtHt ^RIHtHt  ! R R4      t ! R R4      t ! R	 R
4      t ! R R4      tR# )z]
(Experimental) WCK-style drawing interface operations

.. seealso:: :py:mod:`PIL.ImageDraw`
)Úannotations)ÚAnyÚAnyStrÚBinaryIO)ÚImageÚ
ImageColorÚ	ImageDrawÚ	ImageFontÚ	ImagePath)ÚCoordsÚStrOrBytesPathc                  ó*   € ] tR t^"tRtRR R lltRtR# )ÚPenz"Stores an outline color and width.c               ó(   € V ^8„  d   QhRRRRRRRR/# )é   ÚcolorÚstrÚwidthÚintÚopacityÚreturnÚNone© )Úformats   "Ú_/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/PIL/ImageDraw2.pyÚ__annotate__ÚPen.__annotate__%   s(   € ÷ ñ ˜cð ¨#ð ¸Cð È$ñ ó    c                	óH   € \         P                  ! V4      V n        W n        R # ©N)r   Úgetrgbr   r   )Úselfr   r   r   s   &&&&r   Ú__init__ÚPen.__init__%   s   € Ü×&Ò& uÓ-ˆŒ
ØŽ
r   )r   r   N)é   éÿ   ©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r"   Ú__static_attributes__r   r   r   r   r   "   s   † Ù,÷ó r   r   c                  ó*   € ] tR t^*tRtRR R lltRtR# )ÚBrushzStores a fill colorc               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   r   r   r   r   r   )r   s   "r   r   ÚBrush.__annotate__-   s!   € ÷ .ñ .˜cð .¨Cð .¸$ñ .r   c                	ó<   € \         P                  ! V4      V n        R # r   )r   r    r   )r!   r   r   s   &&&r   r"   ÚBrush.__init__-   s   € Ü×&Ò& uÓ-ˆŽ
r   )r   N)r%   r&   r   r   r   r.   r.   *   s   † Ù÷.ó .r   r.   c                  ó*   € ] tR t^1tRtRR R lltRtR# )ÚFontz Stores a TrueType font and colorc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r   r   ÚfilezStrOrBytesPath | BinaryIOÚsizeÚfloatr   r   r   )r   s   "r   r   ÚFont.__annotate__4   s,   € ÷ 3ñ 3Øð3Ø 9ð3ØAFð3à	ñ3r   c                	ór   € \         P                  ! V4      V n        \        P                  ! W#4      V n        R # r   )r   r    r   r	   ÚtruetypeÚfont)r!   r   r6   r7   s   &&&&r   r"   ÚFont.__init__4   s(   € ô  ×&Ò& uÓ-ˆŒ
Ü×&Ò& tÓ2ˆŽ	r   )r   r<   N)é   r&   r   r   r   r4   r4   1   s   † Ù*÷3ó 3r   r4   c                  óÊ   € ] tR t^<tRtR R R lltR R ltR!R R lltR	 R
 ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltRtR# )"ÚDrawz,
(Experimental) WCK-style drawing interface
Nc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ÚimagezImage.Image | strr7   z"tuple[int, int] | list[int] | Noner   z&float | tuple[float, ...] | str | Noner   r   r   )r   s   "r   r   ÚDraw.__annotate__A   s8   € ÷ Vñ Và ðVð 1ðVð 6ð	Vð
 
ñVr   c                	óÒ   € \        V\        4      '       d)   Vf   Rp\        V4      h\        P                  ! WV4      p\
        P                  ! V4      V n        Wn        R V n	        R # )Nz>If image argument is mode string, size must be a list or tuple)
Ú
isinstancer   Ú
ValueErrorr   Únewr   r@   ÚdrawrB   Ú	transform)r!   rB   r7   r   Úmsgs   &&&& r   r"   ÚDraw.__init__A   sQ   € ô �eœS×!Ò!ØŠ|ØV�Ü  “oÐ%Ü—I’I˜e¨5Ó1ˆEÜ—N’N 5Ó)ˆŒ	ØŒ
ØQUˆŽr   c               ó   € V ^8„  d   QhRR/# )r   r   zImage.Imager   )r   s   "r   r   rC   P   s   € ÷ ñ �{ñ r   c                	ó   € V P                   # r   )rB   )r!   s   &r   ÚflushÚ
Draw.flushP   s   € Ø�z‰zÐr   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# )r   Úopr   Úxyr   ÚpenúPen | Brush | NoneÚbrushzBrush | Pen | NoneÚkwargsr   r   r   r   )r   s   "r   r   rC   S   sF   € ÷ "-ñ "-àð"-ð ð"-ð  ð	"-ð
 "ð"-ð ð"-ð 
ñ"-r   c                	óÆ  € R ;rg^p\        V\        4      '       d   VP                  pVP                  pM.\        V\        4      '       d   VP                  pVP                  p\        V\        4      '       d   VP                  pM"\        V\        4      '       d   VP                  pV P
                  '       d4   \        P                  ! V4      p	V	P                  V P
                  4       T	pVR9   d   VP                  RV4       M$VP                  RV4       VP                  RV4       VR8X  d   VP                  RV4       \        V P                  V4      ! V3/ VB  R # )NÚlineÚfillÚoutliner   )ÚarcrX   )rE   r   r   r   r.   rI   r
   ÚPathÚ
setdefaultÚgetattrrH   )
r!   rQ   rR   rS   rU   rV   rZ   rY   r   Úpaths
   &&&&&,    r   ÚrenderÚDraw.renderS   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               ó    € V ^8„  d   QhRRRR/# )r   Úoffsetútuple[float, float]r   r   r   )r   s   "r   r   rC   w   s   € ÷ 8ñ 8Ð#6ð 8¸4ñ 8r   c                ó(   € Vw  r#^^ V^ ^V3V n         R# )zSets a transformation offset.N)rI   )r!   rc   ÚxoffsetÚyoffsets   &&  r   ÚsettransformÚDraw.settransformw   s   € à!ÑˆØ˜Q ¨¨A¨wÐ7ˆŽr   c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# ©r   rR   r   rS   rT   Ústartr8   ÚendÚoptionsr   r   r   r   )r   s   "r   r   rC   |   sN   € ÷ Dñ DàðDð  ðDð ð	Dð
 ðDð ðDð 
ñDr   c                ó8   € V P                   ! RW.VO5RVRV/  R# )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[   rl   rm   N©r`   ©r!   rR   rS   rl   rm   rn   s   &&&&&*r   r[   ÚDraw.arc|   s!   € ð 	�Š�E˜2ÐC WÒC°EÐC¸sÔCr   c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# rk   r   )r   s   "r   r   rC   Œ   sN   € ÷ Fñ FàðFð  ðFð ð	Fð
 ðFð ðFð 
ñFr   c                ó8   € V P                   ! RW.VO5RVRV/  R# )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`
Úchordrl   rm   Nrp   rq   s   &&&&&*r   ru   Ú
Draw.chordŒ   s!   € ð 	�Š�G˜RÐE wÒE°eÐEÀÔEr   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©	r   rR   r   rS   rT   rn   r   r   r   r   )r   s   "r   r   rC   œ   s)   € ÷ 2ñ 2˜&ð 2Ð'9ð 2ÀSð 2ÈTñ 2r   c                ó0   € V P                   ! RW.VO5!   R# )zj
Draws an ellipse inside the given bounding box.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.ellipse`
ÚellipseNrp   ©r!   rR   rS   rn   s   &&&*r   rz   ÚDraw.ellipseœ   s   € ð 	�Š�I˜rÐ1¨Ö1r   c               ó(   € V ^8„  d   QhRRRRRRRR/# rx   r   )r   s   "r   r   rC   ¤   s)   € ÷ /ñ /�vð /Ð$6ð /À#ð /È$ñ /r   c                ó0   € V P                   ! RW.VO5!   R# )zp
Draws a line between the coordinates in the ``xy`` list.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.line`
rX   Nrp   r{   s   &&&*r   rX   Ú	Draw.line¤   s   € ð 	�Š�F˜BÐ. gÖ.r   c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# rk   r   )r   s   "r   r   rC   ¬   sN   € ÷ Iñ IàðIð  ðIð ð	Ið
 ðIð ðIð 
ñIr   c                ó8   € V P                   ! RW.VO5RVRV/  R# )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`
Úpieslicerl   rm   Nrp   rq   s   &&&&&*r   r‚   ÚDraw.pieslice¬   s!   € ð 	�Š�J ÐH¨'ÒH¸ÐHÀCÔHr   c               ó(   € V ^8„  d   QhRRRRRRRR/# rx   r   )r   s   "r   r   rC   ¼   s)   € ÷ 2ñ 2˜&ð 2Ð'9ð 2ÀSð 2ÈTñ 2r   c                ó0   € V P                   ! RW.VO5!   R# )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`
ÚpolygonNrp   r{   s   &&&*r   r†   ÚDraw.polygon¼   s   € ð 	�Š�I˜rÐ1¨Ö1r   c               ó(   € V ^8„  d   QhRRRRRRRR/# rx   r   )r   s   "r   r   rC   É   s)   € ÷ 4ñ 4˜Fð 4Ð);ð 4Àsð 4Ètñ 4r   c                ó0   € V P                   ! RW.VO5!   R# )zO
Draws a rectangle.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.rectangle`
Ú	rectangleNrp   r{   s   &&&*r   rŠ   ÚDraw.rectangleÉ   s   € ð 	�Š�K Ð3¨7Ö3r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rR   rd   Útextr   r<   r4   r   r   r   )r   s   "r   r   rC   Ñ   s/   € ÷ 
Bñ 
BÐ*ð 
B°&ð 
BÀð 
BÈñ 
Br   c                óô   € V P                   '       d4   \        P                  ! V4      pVP                  V P                   4       TpV P                  P	                  WVP
                  VP                  R7       R# )z_
Draws the string at the given position.

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.text`
)r<   rY   N)rI   r
   r\   rH   r�   r<   r   ©r!   rR   r�   r<   r_   s   &&&& r   r�   Ú	Draw.textÑ   sN   € ð �>�>ˆ>Ü—>’> "Ó%ˆDØ�N‰N˜4Ÿ>™>Ô*ØˆBØ�	‰	�‰�r d§i¡i°d·j±jˆÖAr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rR   rd   r�   r   r<   r4   r   z!tuple[float, float, float, float]r   )r   s   "r   r   rC   Ý   s,   € ÷ <ñ <Ø%ð<Ø-3ð<Ø;?ð<à	*ñ<r   c                óÚ   € V P                   '       d4   \        P                  ! V4      pVP                  V P                   4       TpV P                  P	                  WVP
                  R7      # )z¡
Returns bounding box (in pixels) of given text.

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

.. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.textbbox`
©r<   )rI   r
   r\   rH   Útextbboxr<   r�   s   &&&& r   r”   ÚDraw.textbboxÝ   sN   € ð �>�>ˆ>Ü—>’> "Ó%ˆDØ�N‰N˜4Ÿ>™>Ô*ØˆBØ�y‰y×!Ñ! "°·±Ð!Ó;Ð;r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r�   r   r<   r4   r   r8   r   )r   s   "r   r   rC   í   s!   € ÷ :ñ :˜vð :¨Tð :°eñ :r   c                óN   € V P                   P                  WP                  R7      # )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“   )rH   Ú
textlengthr<   )r!   r�   r<   s   &&&r   r˜   ÚDraw.textlengthí   s    € ð �y‰y×#Ñ# D¯y©yÐ#Ó9Ð9r   )rH   rB   rI   )NNr   )r'   r(   r)   r*   r+   r"   rN   r`   rh   r[   ru   rz   rX   r‚   r†   rŠ   r�   r”   r˜   r,   r   r   r   r@   r@   <   sX   † ñ÷Võ÷"-õH8õ
Dõ Fõ 2õ/õIõ 2õ4õ
Bõ<÷ :ñ :r   r@   N)r+   Ú
__future__r   Útypingr   r   r   Ú r   r   r   r	   r
   Ú_typingr   r   r   r.   r4   r@   r   r   r   Ú<module>rž      sH   ðñ(õ #ç (Ñ (ç @Õ @ß +÷ñ ÷.ñ .÷3ñ 3÷x:ó x:r   