Fixed joined corners for rounded_rectangle() non-integer dimensions

This commit is contained in:
Andrew Murray 2024-03-15 23:58:07 +11:00
parent ec3cf2cb68
commit d2453250f1
2 changed files with 6 additions and 0 deletions

View File

@ -868,8 +868,10 @@ def test_rounded_rectangle_zero_radius(bbox: Coords) -> None:
[ [
((20, 10, 80, 90), "x"), ((20, 10, 80, 90), "x"),
((20, 10, 81, 90), "x_odd"), ((20, 10, 81, 90), "x_odd"),
((20, 10, 81.1, 90), "x_odd"),
((10, 20, 90, 80), "y"), ((10, 20, 90, 80), "y"),
((10, 20, 90, 81), "y_odd"), ((10, 20, 90, 81), "y_odd"),
((10, 20, 90, 81.1), "y_odd"),
((20, 20, 80, 80), "both"), ((20, 20, 80, 80), "both"),
], ],
) )

View File

@ -336,6 +336,10 @@ class ImageDraw:
d = radius * 2 d = radius * 2
x0 = round(x0)
y0 = round(y0)
x1 = round(x1)
y1 = round(y1)
full_x, full_y = False, False full_x, full_y = False, False
if all(corners): if all(corners):
full_x = d >= x1 - x0 - 1 full_x = d >= x1 - x0 - 1