From 426ad8307dd6220a1158a7f895bdc371c5343356 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 8 Jan 2026 19:27:19 +1100 Subject: [PATCH] Fix joining rounded rectangle corners --- .../images/imagedraw_rounded_rectangle_radius.png | Bin 0 -> 456 bytes Tests/test_imagedraw.py | 12 ++++++++++++ src/PIL/ImageDraw.py | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 Tests/images/imagedraw_rounded_rectangle_radius.png diff --git a/Tests/images/imagedraw_rounded_rectangle_radius.png b/Tests/images/imagedraw_rounded_rectangle_radius.png new file mode 100644 index 0000000000000000000000000000000000000000..e2acf7be1b16f947afabda958c9ff8c7644fa15c GIT binary patch literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^DImA@g)0_Y2$bOh1E8w9k6vq4A$JpwZw&~tk*KS4c<7F>U zTDCSZ<@zbVSyI{C|9S71xEyA`sq}049PuBoa-wHk*>LNUSoFp6!&^OnX7$}TwCXS0 z{S{VIZTH$FUaf2X{eJ#Q?Lw)vb5k6|og=pHd*Zou$GqA!Rs93+;#MDCb@c1HRa1}d zG1j(R%Otz`zEzFIAt4>!)p2#F<~RS{ch&lZNZPc94J<9H3ObC5oE+W`5ln}K1VBQ^ z>dT*fpJ4l~c6Ip$%`+g`J&8}xyJWlX3lqEHfB4ChqVJEwW+)Ukp7&YjF#W>Y>hB&_ zUwLJVxt(h&QzvCTJRjM&XHvex%cD8j$Hn4)9-kGobmhix>!sc$ZY}cn{kEC!-vYZ; tZy5U*b5v;g9QfSEG%tk}7Oo5o2hHWSct?B*OYZ@RdAj None: ) +def test_rounded_rectangle_radius() -> None: + # Arrange + im = Image.new("RGB", (W, H)) + draw = ImageDraw.Draw(im, "RGB") + + # Act + draw.rounded_rectangle((25, 25, 75, 75), 24, fill="red", outline="green", width=5) + + # Assert + assert_image_equal_tofile(im, "Tests/images/imagedraw_rounded_rectangle_radius.png") + + @pytest.mark.parametrize( "xy, radius, type", [ diff --git a/src/PIL/ImageDraw.py b/src/PIL/ImageDraw.py index 8bcf2d8ee..eb108ac41 100644 --- a/src/PIL/ImageDraw.py +++ b/src/PIL/ImageDraw.py @@ -487,7 +487,7 @@ class ImageDraw: if full_x: self.draw.draw_rectangle((x0, y0 + r + 1, x1, y1 - r - 1), fill_ink, 1) - elif x1 - r - 1 > x0 + r + 1: + elif x1 - r - 1 >= x0 + r + 1: self.draw.draw_rectangle((x0 + r + 1, y0, x1 - r - 1, y1), fill_ink, 1) if not full_x and not full_y: left = [x0, y0, x0 + r, y1]