diff --git a/Tests/images/imagedraw_stroke_multiline.png b/Tests/images/imagedraw_stroke_multiline.png index fc5e07c8679..49bfacfffbc 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 e39c6586ca5..f9f18e9500b 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 837c6382a97..52cebcd8b29 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 32eed34cd21..97e46f021db 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 6d3fb421d18..d51a7cc9a4e 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 58b3bdddd87..364ceedc737 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 3b367c7ddee..4b046216fa4 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 6fff287e47c..17c8ba7089d 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 b76a81b8127..ec0f2905fda 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 c12a8d63e9b..51c22e9e576 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 4f35d781f62..6944d5e2ac0 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 8290d045cfa..c5d37d9c23b 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 773cf2a4a06..3f697e81c05 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 87d56636a13..9a680b244d2 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 7e98b8eac8d..8e42aa3b15e 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 98073144bc2..54e465b34d0 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 838fd7858a4..29972d3aad5 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 290f5841794..91ab08446a8 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 6a15130248a..4c8ae06d9ff 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 8eb254fdf26..62430c95547 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 cb640a7409f..8216ffb5966 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 d1146b8b856..25c0168ab31 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 f539a8e62e6..d32fe6731b6 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 02634163e1c..108b53d0f07 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 4cce8f6a00e..3b4c6ff1fac 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 93d8162b3bf..15edd95e0a7 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 6c4634560ed..e60b4ab0958 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 d9c4aa2a1ae..4019b5d8c0e 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 3bcb7b90178..fadbe396e53 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 d0b458d6b77..94b02128ecd 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 507d8240918..5c2050cffa3 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 008d20d38e1..bd7f3e3e26d 100644 --- a/src/PIL/ImageText.py +++ b/src/PIL/ImageText.py @@ -353,7 +353,7 @@ def _split( fontmode = self._get_fontmode() line_spacing = ( self.font.getbbox( - "A", + "Aj", fontmode, None, self.features,