From d5e3f6b51673564c16a8973a72a2b68e8ba96f0c Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 15 Aug 2024 14:46:23 +1000 Subject: [PATCH] If left and right sides meet, do not draw rectangle to fill gap --- ...d_rectangle_joined_x_different_corners.png | Bin 0 -> 411 bytes Tests/test_imagedraw.py | 21 ++++++++++++++++++ src/PIL/ImageDraw.py | 2 +- 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 Tests/images/imagedraw_rounded_rectangle_joined_x_different_corners.png diff --git a/Tests/images/imagedraw_rounded_rectangle_joined_x_different_corners.png b/Tests/images/imagedraw_rounded_rectangle_joined_x_different_corners.png new file mode 100644 index 0000000000000000000000000000000000000000..b225afc2dc1449375e748d59e2336eedd9ddceaf GIT binary patch literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^DIm None: + # Arrange + im = Image.new("RGB", (W, H)) + draw = ImageDraw.Draw(im, "RGBA") + + # Act + draw.rounded_rectangle( + (20, 10, 80, 90), + 30, + fill="red", + outline="green", + width=5, + corners=(True, False, False, False), + ) + + # Assert + assert_image_equal_tofile( + im, "Tests/images/imagedraw_rounded_rectangle_joined_x_different_corners.png" + ) + + @pytest.mark.parametrize( "xy, radius, type", [ diff --git a/src/PIL/ImageDraw.py b/src/PIL/ImageDraw.py index 6f56d0236..5609bf971 100644 --- a/src/PIL/ImageDraw.py +++ b/src/PIL/ImageDraw.py @@ -505,7 +505,7 @@ class ImageDraw: if full_x: self.draw.draw_rectangle((x0, y0 + r + 1, x1, y1 - r - 1), fill_ink, 1) - else: + 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]