mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-01-12 18:26:17 +03:00
Merge pull request #6517 from radarhere/multiline_centered_embedded_color
Round box position to integer when pasting embedded color
This commit is contained in:
commit
eb59cb61d5
BIN
Tests/images/text_float_coord.png
Normal file
BIN
Tests/images/text_float_coord.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.8 KiB |
BIN
Tests/images/text_float_coord_1_alt.png
Normal file
BIN
Tests/images/text_float_coord_1_alt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 807 B |
|
@ -935,7 +935,30 @@ def test_standard_embedded_color(layout_engine):
|
||||||
d = ImageDraw.Draw(im)
|
d = ImageDraw.Draw(im)
|
||||||
d.text((10, 10), txt, font=ttf, fill="#fa6", embedded_color=True)
|
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)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("fontmode", ("1", "L", "RGBA"))
|
||||||
|
def test_float_coord(layout_engine, fontmode):
|
||||||
|
txt = "Hello World!"
|
||||||
|
ttf = ImageFont.truetype(FONT_PATH, 40, layout_engine=layout_engine)
|
||||||
|
|
||||||
|
im = Image.new("RGB", (300, 64), "white")
|
||||||
|
d = ImageDraw.Draw(im)
|
||||||
|
if fontmode == "1":
|
||||||
|
d.fontmode = "1"
|
||||||
|
|
||||||
|
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 layout_engine == ImageFont.Layout.BASIC:
|
||||||
|
assert_image_similar_tofile(
|
||||||
|
im, "Tests/images/text_float_coord_1_alt.png", 1
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
raise
|
||||||
|
|
||||||
|
|
||||||
def test_cbdt(layout_engine):
|
def test_cbdt(layout_engine):
|
||||||
|
|
|
@ -482,8 +482,8 @@ class ImageDraw:
|
||||||
# extract mask and set text alpha
|
# extract mask and set text alpha
|
||||||
color, mask = mask, mask.getband(3)
|
color, mask = mask, mask.getband(3)
|
||||||
color.fillband(3, (ink >> 24) & 0xFF)
|
color.fillband(3, (ink >> 24) & 0xFF)
|
||||||
coord2 = coord[0] + mask.size[0], coord[1] + mask.size[1]
|
x, y = (int(c) for c in coord)
|
||||||
self.im.paste(color, coord + coord2, mask)
|
self.im.paste(color, (x, y, x + mask.size[0], y + mask.size[1]), mask)
|
||||||
else:
|
else:
|
||||||
self.draw.draw_bitmap(coord, mask, ink)
|
self.draw.draw_bitmap(coord, mask, ink)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user