this is the polygon rendered by Pillow; you can clearly see the fill color (blue) outside of the expected boundary lines (white):

from PIL import Image, ImageDraw
i = Image.new("RGB", (1050, 1068))
draw = ImageDraw.Draw(i)
test_polygon = [(30.0, 629.4507134752477), (50.0, 629.8565139892041), (70.0, 627.2543706746618),
(90.0, 626.0154710958213), (110.0, 626.011874242351), (130.0, 625.3440687206069),
(150.0, 625.664018531622), (170.0, 625.4978763181073), (190.0, 626.8082520616501),
(210.0, 628.4793899572998), (230.0, 625.5727005531411), (250.0, 626.6852232204809),
(270.0, 629.2271456013137), (290.0, 629.674604313272), (310.0, 629.6868878544574),
(330.0, 629.6868878544574), (350.0, 629.5207747265167), (370.0, 626.9244799578914),
(390.0, 625.4966243597871), (410.0, 627.1466394082299), (430.0, 626.8563010422029),
(450.0, 625.9732816358337), (470.0, 626.0223664538509), (490.0, 625.9939078255982),
(510.0, 626.3296698337327), (530.0, 628.102891777509), (550.0, 627.7136916475783),
(570.0, 627.7000106564611), (590.0, 628.2368838860209), (610.0, 628.9263631533747),
(630.0, 629.4478207168099), (650.0, 629.529289231639), (670.0, 629.5638852462581),
(690.0, 629.6030138047543), (710.0, 626.5579731233461), (730.0, 625.0519611728187),
(750.0, 625.0578344827394), (770.0, 625.3224042542365), (790.0, 626.3760735193364),
(810.0, 628.1560246482019), (830.0, 628.6247994798618), (850.0, 628.2015120730098),
(870.0, 627.6041293694293), (890.0, 626.6221235932012), (910.0, 625.696843383893),
(930.0, 626.1766968392732), (950.0, 626.2595546558532), (970.0, 625.7111921762546),
(990.0, 625.4764505087265), (1010.0, 626.4968501568546), (1030.0, 629.9504926228511),
(1030.0, 630.0495073771489), (1010.0, 633.5031498431454), (990.0, 634.5235494912735),
(970.0, 634.2888078237454), (950.0, 633.7404453441468), (930.0, 633.8233031607268),
(910.0, 634.303156616107), (890.0, 633.3778764067988), (870.0, 632.3958706305707),
(850.0, 631.7984879269902), (830.0, 631.3752005201382), (810.0, 631.8439753517981),
(790.0, 633.6239264806636), (770.0, 634.6775957457635), (750.0, 634.9421655172606),
(730.0, 634.9480388271813), (710.0, 633.4420268766539), (690.0, 630.3969861952457),
(670.0, 630.4361147537419), (650.0, 630.470710768361), (630.0, 630.5521792831901),
(610.0, 631.0736368466253), (590.0, 631.7631161139791), (570.0, 632.2999893435389),
(550.0, 632.2863083524217), (530.0, 631.897108222491), (510.0, 633.6703301662673),
(490.0, 634.0060921744018), (470.0, 633.9776335461491), (450.0, 634.0267183641663),
(430.0, 633.1436989577971), (410.0, 632.8533605917701), (390.0, 634.5033756402129),
(370.0, 633.0755200421086), (350.0, 630.4792252734833), (330.0, 630.3131121455426),
(310.0, 630.3131121455426), (290.0, 630.325395686728), (270.0, 630.7728543986863),
(250.0, 633.3147767795191), (230.0, 634.4272994468589), (210.0, 631.5206100427002),
(190.0, 633.1917479383499), (170.0, 634.5021236818927), (150.0, 634.335981468378),
(130.0, 634.6559312793931), (110.0, 633.988125757649), (90.0, 633.9845289041787),
(70.0, 632.7456293253382), (50.0, 630.1434860107959), (30.0, 630.5492865247523)]
draw.polygon(test_polygon, fill=(0, 0, 255, 255), outline=(255, 255, 255, 0))
i.save('test.png')
What did you do?
rendered polygons
What did you expect to happen?
accurate rednering of polygons
What actually happened?
'dirty' polygon rendering, with drawing outside of expected boundaries
this is the polygon rendered by Pillow; you can clearly see the fill color (blue) outside of the expected boundary lines (white):

this is a polygon, using precisely the same data, rendered by pysdl2:

What versions of Pillow and Python are you using?
Pillow 9.1.1
Python 3.10.2 (on Windows)
Code to reproduce: