Files
intellecton/venv/lib/python3.12/site-packages/PIL/__pycache__/ImageDraw.cpython-312.pyc
T

350 lines
38 KiB
Plaintext
Raw Normal View History

Ë
ß¼j‰ãóNUddlmZddlZddlZddlmZddlmZddlm Z m
Z
m Z dZ e r$ddlm
Z
dd lmZdd
lmZmZdd lmZmZdd lmZmZe j.j0Zd
ed< Gdd«ZdddZdddZ d ddZ ddZ ddZ y)é)Ú annotationsN)ÚSequence)Úcasté)ÚImageÚ
ImageColorÚ ImageTextF)ÚCallable)Ú
ModuleType)ÚAnyÚAnyStr)Ú
ImageDraw2Ú ImageFont)ÚCoordsÚ_Inkz!Callable[[], Image.core._Outline]ÚOutlinecóºeZdZUdZded<dddZ ddZ ddZ d d dZ d! d"dZ d d#d „Z
d$ d%d
Z d$ d&d Z d$ d'd Z
d( d)d
Z d* d+dZ d$ d%dZdd,dZ d$ d&dZ d- d.dZ d$ d&dZ d-ddœ d/dZ d0 d1dZ d0ddœ d2dZ d3ddœ d4dZ d5ddœ d6dZ d5ddœ d6dZy)7Ú ImageDrawNúNImageFont.ImageFont | ImageFont.FreeTypeFont | ImageFont.TransposedFont | NoneÚfontcóN|j«d}| |j}||jk7r$|dk(r|jdk(rd}n
d}t|«|dk(r|j|_nd|_||_|j
|_t jj|j
|«|_||_|dvr!|jjd«|_
n |jjd «|_
|d
vrd |_ d
|_ yd |_ d
|_ y)a˜
Create a drawing instance.
:param im: The image to draw in.
:param mode: Optional mode to use for color values. For RGB
images, this argument can be RGB or RGBA (to blend the
drawing into the image). For all other modes, this argument
must be the same as the image mode. If omitted, the mode
defaults to the mode of the image.
rRGBAÚRGBrz
mode mismatchÚP)ÚFéÿÿÿÿ)Ú1rrrrÚLF)
Ú_ensure_mutableÚmodeÚ
ValueErrorÚpaletteÚ_imageÚimrÚcoreÚdrawÚdraw_inkÚinkÚfontmodeÚfill)Úselfr%r!ÚblendÚmsgs úP/home/antigravity/intellecton/venv/lib/python3.12/site-packages/PIL/ImageDraw.pyÚ__init__zImageDraw.__init__Bð ×ÑÔØˆØ ˆ<Ø—7‘7ˆDØ 2—77Š?ØvŠ~ "§'¡'¨UÒ"2Øà%Ü  “oÐ 3Š;ØŸ:™:ˆDˆDŒL؈Œ Ø—%‘%ˆŒÜ—J‘J—O‘O D§G¡G¨UÓŒ ؈Œ Ø  Ø—y‘y×)¨!Ó,ˆD—yy×)¨"Ó-ˆDŒHØ Ð ˆDŒMðˆ ð ˆDŒM؈ ócój|jsddlm}|j«|_|jS)a=
Get the current default font.
To set the default font for this ImageDraw instance::
from PIL import ImageDraw, ImageFont
draw.font = ImageFont.truetype("Tests/fonts/FreeMono.ttf")
To set the default font for all future ImageDraw instances::
from PIL import ImageDraw, ImageFont
ImageDraw.ImageDraw.font = ImageFont.truetype("Tests/fonts/FreeMono.ttf")
If the current default font is ``None``,
it is initialized with ``ImageFont.load_default()``.
:returns: An image font.r©r)rÚrÚ load_default)r,rs r/ÚgetfontzImageDraw.getfontjs*ð(yŠyå .˜ ×0ˆDŒIØy‰yÐr1cóV|ddlm}|j|«S|j«S)Nrr3)r4rr5r6)r,Ú font_sizers r/Ú_getfontzImageDraw._getfont…s,ð Ð Ý ))¨)Ó —<<“>Ð !r1có®d}d}|€.|€,|jr|j}||fS|j}||fS|t|t«r t j
||j «}|jr6t|t«r&|jj ||j«}|jj|«}|t|t«r t j
||j «}|jr6t|t«r&|jj ||j«}|jj|«}||fS©N) r+r)Ú
isinstanceÚstrrÚgetcolorr!r#Útupler$r'r()r,r)r+Ú
result_inkÚ result_fills r/Ú_getinkzImageDraw._getinks ðˆ
؈ Ø ˆ;˜4˜yŠyØ"Ÿh™h ð ˜"ŸX™X
ð˜ˆÜ˜c¤3Ô$×-¨c°4·9±9Ó=—<<¤J¨s´EÔ$:ØŸ,™,×°T·[±[ÓA!ŸY™Y×Ó4
ØÐܘd¤CÔ.¨t°T·Y±YÓ?—<<¤J¨t´UÔ$;ØŸ<™<×°t·{±{ÓC"Ÿi™i×Ó6 ؘ&r1cóp|j|«\}}| |jj|||||«yy)z Draw an arc.N)rBr'Údraw_arc)r,ÚxyÚstartÚendr+Úwidthr)s r/Úarcz
ImageDraw.arc¨s:ð—LL Ó&‰ ˆˆTØ ˆ?Ø I‰I× Ñ ˜r 5¨#¨s°EÕ  r1có¨|j«|j|«\}}||}|(|jj||j|«yy)zDraw a bitmap.N)ÚloadrBr'Ú draw_bitmapr%)r,rEÚbitmapr+r)s r/rMzImageDraw.bitmapµsMð  Œ
Ø—LL Ó&‰ ˆˆTØ ˆ;؈ ˆ I‰I× ! " f§i¡i°Õ  r1cóÎ|j||«\}}||jj||||d«|-||k7r'|dk7r!|jj||||d|«yyyy)z
Draw a chord.Nrr)rBr'Ú
draw_chord© r,rErFrGr+ÚoutlinerHr)Úfill_inks r/ÚchordzImageDraw.chordÀsn🠠W¨dÓ3‰
ˆˆXØ Ð Ø I‰I× Ñ   U¨C°¸1Ô ˆ?˜s hš°5¸A²:Ø I‰I× Ñ   U¨C°°a¸Õ 4>˜ˆ?r1cóÆ|j||«\}}||jj||d«|+||k7r%|dk7r|jj||d|«yyyy)zDraw an ellipse.Nrr)rBr'Ú draw_ellipse©r,rEr+rQrHr)rRs r/ÚellipsezImageDraw.ellipseÐsf🠠W¨dÓ3‰
ˆˆXØ Ð Ø I‰I× " 2 Ô ˆ?˜s °5¸A²:Ø I‰I× " 2 s¨A¨uÕ 4>˜ˆ?r1cóh|d|z
|d|z
|d|z|d|zf}|j||||«y)z4Draw a circle given center coordinates and a radius.rrN)rW)r,rEÚradiusr+rQrHÚ
ellipse_xys r/ÚcirclezImageDraw.circleÞsDð˜‘e˜f‘n b¨¡e¨f¡n°b¸±e¸f±nÀbÈÁeÈfÁnÐ
Ø Z  Õ6r1c
óî|j|«d}|R|jj||«|dk(r.‰dkDr't|dtt
f«rt
ttt|«}nGtdt|«d«Dcgc](}t
ttt |||dz««Œ*}}tdt|«dz
«D]}||}||dz
|f|||dzffD
cgc]C\} }
tjtj|
d| dz
| d|
dz
««dzŒE} } }
| d| dk(rŒw dˆfd } | d| dkDxr| dd z
| dkDxs| d| dkxr| dd z| dkD}
|ddz z
dz|ddz z
dzf|ddz zdz
|ddz zdz
fg}|
r| dd
z| dd
z}
} n| dd
z
| dd
z
}
} |j|| d
z
|
d
z
|«d kDsŒ7|
r | || dd
z«|| || dd
z«g}n| || dd
z
«|| || dd
z
«g}|j||d ¬
«ŒŽyyyycc}wcc}
} w)z6Draw a line, or a connected sequence of line segments.rcurveééréhc óü|\}}|dz}dz dz
}td||tjtj|««zf||tjtj|««zffD««S)NéZr_rc3ó†K|]9\}}||dkDrtj|«ntj|«zŒ;y­w)rN)ÚmathÚfloorÚceil)Ú.0Úp_ds r/ú <genexpr>z9ImageDraw.line.<locals>.coord_at_angle.<locals>.<genexpr>s9èø€ò%á &  3ð°C¸!²G¤§¡¨C¤ÄÇÁÈ3ÃÕ%ùs?A)r?rdÚcosÚradiansÚsin)ÚcoordÚangleÚdistancerHs €r/Úcoord_at_anglez&ImageDraw.line.<locals>.coord_at_angle s€ø€ð %™˜˜1Ø  ˜Ø#(¨1¡9¨q¡=˜Ü%ð"# H¬t¯x©x¼¿ ¹ ÀUÓ8KÓ/LÑ$LÐ MØ!" H¬t¯x©x¼¿ ¹ ÀUÓ8KÓ/LÑ$LÐ Mð+ô%ó ðr1é´rbéé)rH)rnúSequence[float]roÚfloatÚreturnztuple[float, ...])rBr'Ú
draw_linesr<Úlistr?rrrxÚrangeÚlenrdÚdegreesÚatan2ÚpiesliceÚline)r,rEr+rHÚjointr)ÚpointsÚpointrFrGÚanglesrsÚflippedÚcoordsÚ
gap_coordss ` r/rzImageDraw.lineês&ø€ðl‰l˜4Ó  ÑØ ‰?Ø I‰I× Ñ   S¨%Ô ˜Ó E¨A£Iä˜b ™e¤d¬E !¤(¬8´E©?Ñ";¸@"' q¬#¨b«'°1Ó!5öàôœX¤e™_¬e°B°q¸1¸q¹5°MÓ.BÕô˜q¤# f£+°¡/Ó7=" 1™I
$ ¡E™]¨EÐ" F¨1¨q©5¡MÐ+÷ñ'˜E 3ôŸ ¤T§Z¡Z°°A±¸¸q¹Ñ0AÀ5ÈÁ8ÈcÐRSÉfÑCTÓ%UÓóðð˜a‘y F¨1¡IÒ ð Ø Ø7<ð à ð˜q™  F¨1¡IÑM°&¸±)¸c±/ÀFÈ1ÁIÑ2MòQà  ™) f¨Q¡iÑO°F¸1±IÀ±OÀfÈQÁiÑ4Oðð˜q™ E¨A¡IÑÑ1°5¸±8¸eÀa¹iÑ3GÈ!Ñ3KИq™ E¨A¡IÑÑ1°5¸±8¸eÀa¹iÑ3GÈ!Ñ3KÐØ&,¨Q¡i°"¡n°f¸Q±iÀ"±n˜s™à&,¨Q¡i°"¡n°f¸Q±iÀ"±n˜s˜Ø—MM &¨%°"©*°c¸B±hÀÔ˜q”yá"á .¨u°f¸Q±iÀ"±nÓ EØ %Ù .¨u°f¸Q±iÀ"±nÓ Eð*™Jñ!/¨u°f¸Q±iÀ"±nÓ EØ %Ù .¨u°f¸Q±iÀ"±nÓ Eð*˜
Ÿ ™  *¨d¸!˜ Ö<ño7%.Ðð ùòùó s
Â-I,Ã9AI1cóØ|j«|j||«\}}||jj||d«|$||k7r|jj||d«yyy)z(Experimental) Draw a shape.Nrr)ÚcloserBr'Ú draw_outline)r,Úshaper+rQr)rRs r/rzImageDraw.shape7seð  Œ
ØŸ  W¨dÓ3‰
ˆˆXØ Ð Ø I‰I× " 5¨(°AÔ ˆ?˜s Ø I‰I× " 5¨#¨qÕ  /ˆ?r1cóÎ|j||«\}}||jj||||d«|-||k7r'|dk7r!|jj||||d|«yyyy)zDraw a pieslice.Nrr)rBr'Ú
draw_pieslicerPs r/r€zImageDraw.piesliceEsn🠠W¨dÓ3‰
ˆˆXØ Ð Ø I‰I× # B¨¨s°H¸aÔ ˆ?˜s hš°5¸A²:Ø I‰I× # B¨¨s°C¸¸ 4>˜ˆ?r1cój|j|«\}}||jj||«yy)z#Draw one or more individual pixels.N)rBr'Ú draw_points)r,rEr+r)s r/r…zImageDraw.pointUs2à—LL Ó&‰ ˆˆ ˆ I‰I× ! "   r1có|j||«\}}||jj||d«|Ó||k7rÍ|dk7rÇ|dk(r|jj||d|«y|jt j
d|jj «}|jd«d}t|«} | jj||d«|jj||d|dzdz
|j«yyyyy)zDraw a polygon.Nrrrr_)rBr'Ú draw_polygonr%rÚnewÚsizeÚDraw)
r,rEr+rQrHr)rRÚmaskÚmask_inkr's
r/ÚpolygonzImageDraw.polygon[🠠W¨dÓ3‰
ˆˆXØ Ð Ø I‰I× " 2 Ô ˆ?˜s °5¸A²:ؘŠzØ ×& r¨3°°5ÕЗy‘y  d§g¡g§l¡lÓ3ØŸ<™<¨?¨1Ñ-ܘD“zØ ×& r¨8°QÔ ×& r¨3°°5¸1±9¸q±=À$Ç'Á'Õ4>˜ˆ?r1cóFt|||«}|j||||«y)zDraw a regular polygon.N)Ú!_compute_regular_polygon_verticesr™)r,Úbounding_circleÚn_sidesÚrotationr+rQrHrEs r/Úregular_polygonzImageDraw.regular_polygonss$ôÀÈÓ
Ø ˜w¨Õ.r1cóÆ|j||«\}}||jj||d«|+||k7r%|dk7r|jj||d|«yyyy)zDraw a rectangle.Nrr)rBr'Údraw_rectanglerVs r/Ú rectanglezImageDraw.rectangle€sf🠠W¨dÓ3‰
ˆˆXØ Ð Ø I‰I× $ R¨°1Ô ˆ?˜s hš°5¸A²:Ø I‰I× $ ¨a°Õ 4>˜ˆ?r1)Úcornersc
óàt|dttf«r(tttt
|«\\ŠŠ\ŠŠnttt
|«\ŠŠŠŠkr
d}t
|«kr
d}t
|«dŠ|dzŠt«Št«Št«Št«Šd\ŠŠt«r<‰z
dz
k\Šrz
Šz
dz
k\Šrz
Šrrj|||«Sdk(s t«sj|||«Stdz«}j||«\ŠŠd
ˆˆˆˆˆˆˆˆˆˆˆˆf d „ } ‰| d
«r.‰jj|zdz|z
dz
fd«n>‰|z
dz
|zdzk\r-‰jj|zdz|z
dz
fd«s¢‰s ‰|zg}
dr|
dxx|dzz
cc<d r|
d xx|dzzcc<jj|
d«|z
g} dr| dxx|dzz
cc<dr| d xx|dzzcc<jj| d«h‰k7ra‰dk7rZ| d «s¦‰zdz
g} dr| dxx|dzz
cc<dr| dxx|dzzcc<jj| d«z
dzg}
d r|
dxx|dzz
cc<dr|
dxx|dzzcc<jj|
d«s§‰zdz
g}
dr|
dxx|dzz
cc<d r|
d xx|dzzcc<jj|
d«z
dzg} dr| dxx|dzz
cc<dr| d xx|dzzcc<jj| d«yyyyy)zDraw a rounded rectangle.rz&x1 must be greater than or equal to x0z&y1 must be greater than or equal to y0N)TTTTr_)FFrc óÀ r
z
zfddf z
zfddff}nv‰r
z
zfddf z
zfddff}nUtˆfdt
z
zfddf z
zfddf z
z
fddf z
zfddff«D««}|D]A}|r‰ jj|dfzŽŒ$‰ jj|
fzŽŒCy)Nrtr`rrbéc3ó2K|]\}}|r|Œy­wr;©)rgr„Úpartr£s €r/rjzDImageDraw.rounded_rectangle.<locals>.draw_corners.<locals>.<genexpr>Ós&øèø€ò ᘘ4ð˜q’zôñ ùsƒr)r?Ú enumerater'rrD)r€Úpartsr©ÚdrRÚfull_xÚfull_yr)r,rHÚx0Úx1Úy0Úy1s €€€€€€€€€€€€r/Ú draw_cornersz1ImageDraw.rounded_rectangle.<locals>.draw_cornersÃsfø€áð˜"˜b 1™f b¨1¡fÐ-¨s°CИ"˜q™& " q¡&¨"Ð-¨q°#Ðñð˜"˜b 1™f b¨1¡fÐ-¨r°3И1f˜b " b¨1¡fÐ-¨s°BÐô ó ä#,à  " b¨1¡f¨b°1©fÐ5°s¸  1™f b¨"¨b°1©fÐ5°s¸  1™f b¨1¡f¨b°"Ð5°q¸  " q¡&¨"¨q©&°"Ð5°r¸ó$ô ó ðò
?ÙØ+D—I‘I×+¨d°hÀ°]Ñ.BÒ&D—II×°°e° Ñ)<Ò
?r1TrvF)r€ÚboolryÚNone)r<r{r?rrrxr"ÚroundÚallrWÚanyr¢ÚintrBr')r,rErYr+rQrHr.Úrr³ÚleftÚrightÚtopÚbottomr¬rRr­r)s` `` @@@@@@@@@r/Úrounded_rectanglezImageDraw.rounded_rectangleŽsWÿû€ô ‘eœd¤E˜]Ô +Ü!%¤h¬x¼©Ñ&?ÀÓ!DÑ ‰HˆRhr™2ä!¤(¬5¡/°2Ó6‰NˆBB˜Ø
Š7Ø:ˆCܘS“/Ð
Š7Ø:ˆCܘS“/Ð ˆ?Ø.ˆGà Q‰Jˆä
2YˆÜ
2YˆÜ
2YˆÜ
2‹YˆØ%‰ˆÜ ˆwŒ<ؘ"˜r™' A™+Ñ%ˆà˜Gؘ"˜r™' A™+Ñ%ˆà˜GÙ™&à—|‘| B¨¨g°uÓ Š6œ˜ð—>> " d¨G°UÓ Q‘‹KˆØŸ  W¨dÓ3‰
ˆˆ ?ðD Ñ Ù ˜Ô áØ— ‘ ×(¨"¨b°1©f°q©j¸"¸bÀ1¹fÀq¹jÐ)IÈ8ÐUVÕa‘˜!‘˜r A™v¨™zÒ ×(¨"¨q©&°1©*°b¸"¸q¹&À1¹*ÀbÐ)IÈ8ÐUVÔ¡&ؘB  Q¡¨Ð+ؘ1’:ؘ“G˜q 1™uÑ$“Gؘ1’:ؘ“G˜q 1™uÑ$“GØ— ‘ רx¸Ô˜a™  R¨Ð,ؘ1’:ؘ!“H  A¡Ñ%“Hؘ1’:ؘ!“H  A¡Ñ%“HØ— ‘ ×°¸!Ô ‰?˜s h›°5¸A³:Ù ˜Ô áØ˜2˜r 2¨¡:°¡>Ð2ؘ1’:ؘ“F˜a !™e‘O“Fؘ1’:ؘ“F˜a !™e‘O“FØ— ‘ רc°1Ô˜b 5™j¨1™n¨b°"Ð5ؘ1˜1“I  Ñ&“Iؘ1˜1“I  Ñ&“IØ— ‘ ×°°aÔØ˜B  U¡
¨Q¡°Ð3ؘ1’:ؘ“G˜q 1™uÑ$“Gؘ1’:ؘ“G˜q 1™uÑ$“GØ— ‘ רs°AÔ˜e™ a™¨¨R°Ð4ؘ1’:ؘ!“H  A¡Ñ%“Hؘ1’:ؘ!“H  A¡Ñ%“HØ— ‘ ×°°QÕð#4>˜ˆ?r1c óN‡ ‡
t|tj«r|Šnm|€ ‰jj d««}tj||j
|‰ ‰
«Š
rj
«| rj| | «dˆfd }||«}|yd}jr ‰j|j«n|}j|||«D]=Šddˆˆˆ
ˆ ˆˆˆ
ˆˆf d
}|"||j«||k7sŒ-||«Œ6||«Œ?y)z
Draw text.Nr8có@j|«\}}||J|S|Sr;)rB)r+r)rRr,s €r/ÚgetinkzImageDraw.text.<locals>.getink?s0ø€Ø ŸL™L¨Ó.‰MˆC؈{ØÐ؈Jr1c ó• —j}|dk(r rd}tj«}tj«}t j
j«dt j
j«df} j jj|g
¢­
|dj||dœ¤Ž\}}||dz
}||dz
}|dk(r||jd«}}tjd|«d} |j!d| «j"B‰j"j%|||||j&dz||j&dzf|«yyj(j+||f||«y#t$rw j jj|
|j|g
¢­d|i¤Ž}n4#t$r(j jj«}YnwxYwYŒ1wxYw) NrrT)Ú directionÚfeaturesÚlanguageÚ stroke_widthÚ
stroke_filledÚanchorr)rFrrFrvr„)r*rprqrdÚmodfrÚgetmask2ÚtextrÉÚAttributeErrorÚgetmaskÚ TypeErrorÚgetbandÚstructÚpackÚfillbandr%Úpaster•r'rL)r)r!rprqrFr—ÚoffsetÚcolorÚ ink_alphaÚargsrÄÚembedded_colorrÅÚ
image_textÚkwargsrÆrr,s €€€€€€€€€r/Ú draw_textz!ImageDraw.text.<locals>.draw_textTsø€Ø—}}Ø 1ÒØ!˜Ÿ“KܘŸ“KÜŸ 4§6¡6Ó*¨1Ñ-¬t¯y©y¸¿¹Ó/@ÀÑ/CÐDð!BØ#; :§?¡?×#;Ñ#;ØŸ ™ Øð
$ðñ
$ð#,Ø!)Ø!)Ø%1Ø&*Ø#Ÿ{™{ØØ
$ð
$LD˜˜ N˜ ‘NAð$˜6#'¨¯ © °Q«˜4EÜ &§ ¡ ¨C°Ó 5°aÑ 8—N‘N 1 iÔ—w‘wПŸ
Ø! A q¨!¨d¯i©i¸©lÑ*:¸Ç Á È!Á Ñ<LÐ#MÈtõð
—II×)¨1¨a¨&°$¸Õ<øô;BðBØ6˜× ŸI™IØ Ø ŸK™KØð ð ð#(ð ð øôBØ×6°t·y±yÓðBýðBús7ÂAF Æ H Æ=GÇH Ç.HÇ?H ÈHÈH ÈH )r+ú _Ink | Nonery)r)r)rxry) r<r ÚTextr9Úgetr!Ú embed_colorÚstrokerÇÚ stroke_fillÚ_split)r,rEr+rÚspacingÚalignrÄr)Ú
stroke_inkrÜrs` ``` ``` @@r/zImageDraw.texts&ÿø€ô0 dœIŸN™NÔ ‰Jàˆ|Ø—}} V§Z¡Z° Ó%<Ó=ÜØd˜DŸI™I w° ¸8ÀXóˆØ×Ø×!  Ô ñT‹lˆØ ˆ;Ø àˆ
Ø × ×ð
ð ×% b¨&°%ÓB ˆ5
5
=ðnИ* j×&=Ñ&=Ô˜˜c•Nñ˜#•ñEB r1©r8có@|j||||||||| |
| | |
|¬«S©Nrç))r,rEr+rr8s r/Úmultiline_textzImageDraw.multiline_textsDð.y‰yØ Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø Øðó
ð
r1có¶||j|«}tj|||j|||¬«}|r|j «|j «S)z@Get the length of a given string, in pixels with 1/64 precision.))r9r r!Ú
get_length) r,rr8s r/Ú
textlengthzImageDraw.textlength¾s[ð" ˆ—== Ó+ˆDÜ—^‘^Ø Ø Ø I‰IØØØô

ˆ
ñ Ø × ×&r1c  óâ||j| «}tj|||j|||| «}
| r|
j «|
r|
j |
«|
j
|||«S)z2Get the bounding box of a given string, in pixels.)r9r r!Úget_bbox)r,rErr8s r/ÚtextbboxzImageDraw.textbboxÝsoð, ˆ—=‘= Ó+ˆDÜ—^‘^Ø Ÿ ™  7¨I°xÀó
ˆ
ñ Ø × Ø × Ñ ˜ ×" 2 v¨uÓ5r1c ó<|j||||||||| |
| | ¬« S))
r,rErr8s
r/Úmultiline_textbboxzImageDraw.multiline_textbboxþs>ð*}‰}Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø Øðó

ð
r1r;)r%ú Image.Imager!ú
str | Nonery)ryúGImageFont.ImageFont | ImageFont.FreeTypeFont | ImageFont.TransposedFont)r8ú float | Nonery)r)r+ryztuple[int | None, int | None])Nr) rErrFrxrGrxr+rHry)rEz
Sequence[int]rMr+ry)NNr)rErrFrxrGrxr+rQrHry)
rErr+rQrHry) rErwrYrxr+rQrHry)NrN)
rErr+rHrry)NN)rzImage.core._Outliner+rQry)rErr+ry)rNNr)ú!Sequence[Sequence[float] | float]rrxr+rQrHry)rErrYrxr+rQrHz$tuple[bool, bool, bool, bool] | Nonery) NNNr^NNNrNF) rEútuple[float, float]rÌzAnyStr | ImageText.Text[AnyStr]r+rrrxr=úlist[str] | NonerÆrxr´r r ry)rEr
r+rrrxr=rxr´r8ry)NNNNF)r
rrr´r8ryrx) NNr^NNNrF)rEr
rrrxr=rxr´r8ryz!tuple[float, float, float, float])Ú__name__Ú
__module__Ú __qualname__rÚ__annotations__r0r6r9rBrIrMrSrWr[rrr€r…r™r¿r1r/rr=sEð
ð Ø
ô&ðPà Póð6"à Pó59ðð'Ø&1ð'à &ó'ð<ð
 ð ð ð 
ð  ð

ó KOð ð 6Ø)4ð 6Ø<Gð 
ó ð@à ð@ðð@ðð @ð
ð @ð ð
@ðð@ð
ó@ð&ð  ð ð ð 
ð 
ó
6ð$ð
 ð
ð
ð

ð
 ð

ó
Ø ð K ðKðKð K
ð K
ó
K=ð`  ð ð 
ó 2ð&ðCà ðCððCðð Cð
ð Cð ð
CððCð
óCô ð Kà ðKððKðð Kð
ð Kð
ó
Kð8Ø Øð  ð ð 
ð  ð
ð 
ó ð  ð ð ð 
ð 
ó
8ð"Ø Øð
J9=ñJ ðJðJð J
ð J ð
JJ
óJ8ð`
ØØØ $Ø%)ØØ#'Ø$ð'zà ðzðzðð zð 
ð
zððzððzððzððzðzð ð!zð"ð#zð$!ð%zð&ð'zð(ð)zð*ð+zð,
ó-zð@
ØØØ $Ø%)ØØ#'Ø$ð'&
ð*#'ñ+&
à ð&
ðð&
ðð &
ð 
ð
&
ðð&
ðð&
ðð&
ðð&
ð&
ð ð!&
ð"ð#&
ð$!ð%&
ð&ð'&
ð* ð+&
ð,
ó-&
ð`
Ø $Ø%)Ø#'ñð
ð ððð ð
ó'ðP
ØØØ $Ø%)ØØ$ð#6ð&#'ñ' ðð

ð ðððððð!6ð"ð#6ð& ð'6ð(
+ó)6ðT
ØØØ $Ø%)ØØ$ð#"
ð&#'ñ'"
à ð"
ðð"
ð

ð "
ðð"
ðð"
ðð"
ðð"
ð"