diff --git a/Tests/images/imagedraw_stroke_multiline.png b/Tests/images/imagedraw_stroke_multiline.png index fc5e07c86..49bfacfff 100644 Binary files a/Tests/images/imagedraw_stroke_multiline.png and b/Tests/images/imagedraw_stroke_multiline.png differ diff --git a/Tests/images/multiline_text.png b/Tests/images/multiline_text.png index e39c6586c..f9f18e950 100644 Binary files a/Tests/images/multiline_text.png and b/Tests/images/multiline_text.png differ diff --git a/Tests/images/multiline_text_center.png b/Tests/images/multiline_text_center.png index 837c6382a..52cebcd8b 100644 Binary files a/Tests/images/multiline_text_center.png and b/Tests/images/multiline_text_center.png differ diff --git a/Tests/images/multiline_text_justify.png b/Tests/images/multiline_text_justify.png index 32eed34cd..97e46f021 100644 Binary files a/Tests/images/multiline_text_justify.png and b/Tests/images/multiline_text_justify.png differ diff --git a/Tests/images/multiline_text_justify_anchor.png b/Tests/images/multiline_text_justify_anchor.png index 6d3fb421d..d51a7cc9a 100644 Binary files a/Tests/images/multiline_text_justify_anchor.png and b/Tests/images/multiline_text_justify_anchor.png differ diff --git a/Tests/images/multiline_text_right.png b/Tests/images/multiline_text_right.png index 58b3bdddd..364ceedc7 100644 Binary files a/Tests/images/multiline_text_right.png and b/Tests/images/multiline_text_right.png differ diff --git a/Tests/images/multiline_text_spacing.png b/Tests/images/multiline_text_spacing.png index 3b367c7dd..4b046216f 100644 Binary files a/Tests/images/multiline_text_spacing.png and b/Tests/images/multiline_text_spacing.png differ diff --git a/Tests/images/test_anchor_multiline_lm_center.png b/Tests/images/test_anchor_multiline_lm_center.png index 6fff287e4..17c8ba708 100644 Binary files a/Tests/images/test_anchor_multiline_lm_center.png and b/Tests/images/test_anchor_multiline_lm_center.png differ diff --git a/Tests/images/test_anchor_multiline_lm_left.png b/Tests/images/test_anchor_multiline_lm_left.png index b76a81b81..ec0f2905f 100644 Binary files a/Tests/images/test_anchor_multiline_lm_left.png and b/Tests/images/test_anchor_multiline_lm_left.png differ diff --git a/Tests/images/test_anchor_multiline_lm_right.png b/Tests/images/test_anchor_multiline_lm_right.png index c12a8d63e..51c22e9e5 100644 Binary files a/Tests/images/test_anchor_multiline_lm_right.png and b/Tests/images/test_anchor_multiline_lm_right.png differ diff --git a/Tests/images/test_anchor_multiline_ma_center.png b/Tests/images/test_anchor_multiline_ma_center.png index 4f35d781f..6944d5e2a 100644 Binary files a/Tests/images/test_anchor_multiline_ma_center.png and b/Tests/images/test_anchor_multiline_ma_center.png differ diff --git a/Tests/images/test_anchor_multiline_md_center.png b/Tests/images/test_anchor_multiline_md_center.png index 8290d045c..c5d37d9c2 100644 Binary files a/Tests/images/test_anchor_multiline_md_center.png and b/Tests/images/test_anchor_multiline_md_center.png differ diff --git a/Tests/images/test_anchor_multiline_mm_center.png b/Tests/images/test_anchor_multiline_mm_center.png index 773cf2a4a..3f697e81c 100644 Binary files a/Tests/images/test_anchor_multiline_mm_center.png and b/Tests/images/test_anchor_multiline_mm_center.png differ diff --git a/Tests/images/test_anchor_multiline_mm_left.png b/Tests/images/test_anchor_multiline_mm_left.png index 87d56636a..9a680b244 100644 Binary files a/Tests/images/test_anchor_multiline_mm_left.png and b/Tests/images/test_anchor_multiline_mm_left.png differ diff --git a/Tests/images/test_anchor_multiline_mm_right.png b/Tests/images/test_anchor_multiline_mm_right.png index 7e98b8eac..8e42aa3b1 100644 Binary files a/Tests/images/test_anchor_multiline_mm_right.png and b/Tests/images/test_anchor_multiline_mm_right.png differ diff --git a/Tests/images/test_anchor_multiline_rm_center.png b/Tests/images/test_anchor_multiline_rm_center.png index 98073144b..54e465b34 100644 Binary files a/Tests/images/test_anchor_multiline_rm_center.png and b/Tests/images/test_anchor_multiline_rm_center.png differ diff --git a/Tests/images/test_anchor_multiline_rm_left.png b/Tests/images/test_anchor_multiline_rm_left.png index 838fd7858..29972d3aa 100644 Binary files a/Tests/images/test_anchor_multiline_rm_left.png and b/Tests/images/test_anchor_multiline_rm_left.png differ diff --git a/Tests/images/test_anchor_multiline_rm_right.png b/Tests/images/test_anchor_multiline_rm_right.png index 290f58417..91ab08446 100644 Binary files a/Tests/images/test_anchor_multiline_rm_right.png and b/Tests/images/test_anchor_multiline_rm_right.png differ diff --git a/Tests/images/test_combine_multiline_lm_center.png b/Tests/images/test_combine_multiline_lm_center.png index 6a1513024..4c8ae06d9 100644 Binary files a/Tests/images/test_combine_multiline_lm_center.png and b/Tests/images/test_combine_multiline_lm_center.png differ diff --git a/Tests/images/test_combine_multiline_lm_left.png b/Tests/images/test_combine_multiline_lm_left.png index 8eb254fdf..62430c955 100644 Binary files a/Tests/images/test_combine_multiline_lm_left.png and b/Tests/images/test_combine_multiline_lm_left.png differ diff --git a/Tests/images/test_combine_multiline_lm_right.png b/Tests/images/test_combine_multiline_lm_right.png index cb640a740..8216ffb59 100644 Binary files a/Tests/images/test_combine_multiline_lm_right.png and b/Tests/images/test_combine_multiline_lm_right.png differ diff --git a/Tests/images/test_combine_multiline_mm_center.png b/Tests/images/test_combine_multiline_mm_center.png index d1146b8b8..25c0168ab 100644 Binary files a/Tests/images/test_combine_multiline_mm_center.png and b/Tests/images/test_combine_multiline_mm_center.png differ diff --git a/Tests/images/test_combine_multiline_mm_left.png b/Tests/images/test_combine_multiline_mm_left.png index f539a8e62..d32fe6731 100644 Binary files a/Tests/images/test_combine_multiline_mm_left.png and b/Tests/images/test_combine_multiline_mm_left.png differ diff --git a/Tests/images/test_combine_multiline_mm_right.png b/Tests/images/test_combine_multiline_mm_right.png index 02634163e..108b53d0f 100644 Binary files a/Tests/images/test_combine_multiline_mm_right.png and b/Tests/images/test_combine_multiline_mm_right.png differ diff --git a/Tests/images/test_combine_multiline_rm_center.png b/Tests/images/test_combine_multiline_rm_center.png index 4cce8f6a0..3b4c6ff1f 100644 Binary files a/Tests/images/test_combine_multiline_rm_center.png and b/Tests/images/test_combine_multiline_rm_center.png differ diff --git a/Tests/images/test_combine_multiline_rm_left.png b/Tests/images/test_combine_multiline_rm_left.png index 93d8162b3..15edd95e0 100644 Binary files a/Tests/images/test_combine_multiline_rm_left.png and b/Tests/images/test_combine_multiline_rm_left.png differ diff --git a/Tests/images/test_combine_multiline_rm_right.png b/Tests/images/test_combine_multiline_rm_right.png index 6c4634560..e60b4ab09 100644 Binary files a/Tests/images/test_combine_multiline_rm_right.png and b/Tests/images/test_combine_multiline_rm_right.png differ diff --git a/Tests/images/test_combine_multiline_ttb.png b/Tests/images/test_combine_multiline_ttb.png index d9c4aa2a1..4019b5d8c 100644 Binary files a/Tests/images/test_combine_multiline_ttb.png and b/Tests/images/test_combine_multiline_ttb.png differ diff --git a/Tests/test_imagedraw.py b/Tests/test_imagedraw.py index 3bcb7b901..fadbe396e 100644 --- a/Tests/test_imagedraw.py +++ b/Tests/test_imagedraw.py @@ -1376,8 +1376,8 @@ def test_textbbox_stroke() -> None: # Act / Assert assert draw.textbbox((2, 2), "A", font, stroke_width=2) == (0, 4, 16, 20) assert draw.textbbox((2, 2), "A", font, stroke_width=4) == (-2, 2, 18, 22) - assert draw.textbbox((2, 2), "ABC\nAaaa", font, stroke_width=2) == (0, 4, 52, 44) - assert draw.textbbox((2, 2), "ABC\nAaaa", font, stroke_width=4) == (-2, 2, 54, 50) + assert draw.textbbox((2, 2), "ABC\nAaaa", font, stroke_width=2) == (0, 4, 52, 48) + assert draw.textbbox((2, 2), "ABC\nAaaa", font, stroke_width=4) == (-2, 2, 54, 54) @skip_unless_feature("freetype2") diff --git a/Tests/test_imagefont.py b/Tests/test_imagefont.py index 409474707..28fcfe1d7 100644 --- a/Tests/test_imagefont.py +++ b/Tests/test_imagefont.py @@ -223,7 +223,7 @@ def test_float_size(layout_engine: ImageFont.Layout) -> None: def test_render_multiline(font: ImageFont.FreeTypeFont) -> None: im = Image.new(mode="RGB", size=(300, 100)) draw = ImageDraw.Draw(im) - line_spacing = font.getbbox("A")[3] + 4 + line_spacing = font.getbbox("Aj")[3] + 4 lines = TEST_TEXT.split("\n") y: float = 0 for line in lines: diff --git a/Tests/test_imagetext.py b/Tests/test_imagetext.py index 507d82409..5c2050cff 100644 --- a/Tests/test_imagetext.py +++ b/Tests/test_imagetext.py @@ -154,8 +154,8 @@ def test_wrap_height() -> None: text = ImageText.Text("Text does not fit within height") wrapped = text.wrap(width, 25 if features.check_module("freetype2") else 40) assert wrapped is not None - assert wrapped.text == " within height" - assert text.text == "Text does\nnot fit" + assert wrapped.text == " not fit within height" + assert text.text == "Text does" text = ImageText.Text("Text does not fit\nwithin height") wrapped = text.wrap(width, 20) @@ -166,8 +166,8 @@ def test_wrap_height() -> None: text = ImageText.Text("Text does not fit\n\nwithin height") wrapped = text.wrap(width, 25 if features.check_module("freetype2") else 40) assert wrapped is not None - assert wrapped.text == "\nwithin height" - assert text.text == "Text does\nnot fit" + assert wrapped.text == " not fit\n\nwithin height" + assert text.text == "Text does" def test_wrap_scaling_unsupported() -> None: diff --git a/src/PIL/ImageText.py b/src/PIL/ImageText.py index 008d20d38..bd7f3e3e2 100644 --- a/src/PIL/ImageText.py +++ b/src/PIL/ImageText.py @@ -353,7 +353,7 @@ class Text(Generic[AnyStr]): fontmode = self._get_fontmode() line_spacing = ( self.font.getbbox( - "A", + "Aj", fontmode, None, self.features,