Skip to content

Commit

Permalink
simplify code, make test more generic
Browse files Browse the repository at this point in the history
  • Loading branch information
nulano committed Aug 25, 2022
1 parent fc3930c commit 18bd77b
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 14 deletions.
Binary file not shown.
Binary file added Tests/images/text_float_coord.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Tests/images/text_float_coord_1_alt.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 18 additions & 11 deletions Tests/test_imagefont.py
Expand Up @@ -958,22 +958,29 @@ def test_standard_embedded_color(self):
d = ImageDraw.Draw(im)
d.text((10, 10), txt, font=ttf, fill="#fa6", embedded_color=True)

assert_image_similar_tofile(im, "Tests/images/standard_embedded.png", 6.2)
assert_image_similar_tofile(im, "Tests/images/standard_embedded.png", 3.1)

def test_multiline_centered_embedded_color(self):
txt = "Hello\nWorld!"
@pytest.mark.parametrize("fontmode", ("1", "L", "RGBA"))
def test_float_coord(self, fontmode):
txt = "Hello World!"
ttf = ImageFont.truetype(FONT_PATH, 40, layout_engine=self.LAYOUT_ENGINE)
ttf.getbbox(txt)

im = Image.new("RGB", (160, 96), "white")
im = Image.new("RGB", (300, 64), "white")
d = ImageDraw.Draw(im)
d.multiline_text(
(10, 10), txt, font=ttf, fill="#fa6", align="center", embedded_color=True
)
if fontmode == "1":
d.fontmode = "1"

assert_image_similar_tofile(
im, "Tests/images/standard_embedded_multiline_centered.png", 6.2
)
embedded_color = fontmode == "RGBA"
d.text((9.5, 9.5), txt, font=ttf, fill="#fa6", embedded_color=embedded_color)
try:
assert_image_similar_tofile(im, "Tests/images/text_float_coord.png", 3.9)
except AssertionError:
if fontmode == "1" and self.LAYOUT_ENGINE == ImageFont.Layout.BASIC:
assert_image_similar_tofile(
im, "Tests/images/text_float_coord_1_alt.png", 1
)
else:
raise

def test_cbdt(self):
try:
Expand Down
5 changes: 2 additions & 3 deletions src/PIL/ImageDraw.py
Expand Up @@ -482,9 +482,8 @@ def draw_text(ink, stroke_width=0, stroke_offset=None):
# extract mask and set text alpha
color, mask = mask, mask.getband(3)
color.fillband(3, (ink >> 24) & 0xFF)
coord = tuple(int(c) for c in coord)
coord2 = coord[0] + mask.size[0], coord[1] + mask.size[1]
self.im.paste(color, coord + coord2, mask)
x, y = (int(c) for c in coord)
self.im.paste(color, (x, y, x + mask.size[0], y + mask.size[1]), mask)
else:
self.draw.draw_bitmap(coord, mask, ink)

Expand Down

0 comments on commit 18bd77b

Please sign in to comment.