Renamed ImageText class to Text

This commit is contained in:
Andrew Murray 2025-10-15 19:38:25 +11:00
parent fcdeb6404e
commit 4889863139
4 changed files with 30 additions and 30 deletions

View File

@ -26,24 +26,24 @@ def font(layout_engine: ImageFont.Layout) -> ImageFont.FreeTypeFont:
def test_get_length(font: ImageFont.FreeTypeFont) -> None:
assert ImageText.ImageText("A", font).get_length() == 12
assert ImageText.ImageText("AB", font).get_length() == 24
assert ImageText.ImageText("M", font).get_length() == 12
assert ImageText.ImageText("y", font).get_length() == 12
assert ImageText.ImageText("a", font).get_length() == 12
assert ImageText.Text("A", font).get_length() == 12
assert ImageText.Text("AB", font).get_length() == 24
assert ImageText.Text("M", font).get_length() == 12
assert ImageText.Text("y", font).get_length() == 12
assert ImageText.Text("a", font).get_length() == 12
def test_get_bbox(font: ImageFont.FreeTypeFont) -> None:
assert ImageText.ImageText("A", font).get_bbox() == (0, 4, 12, 16)
assert ImageText.ImageText("AB", font).get_bbox() == (0, 4, 24, 16)
assert ImageText.ImageText("M", font).get_bbox() == (0, 4, 12, 16)
assert ImageText.ImageText("y", font).get_bbox() == (0, 7, 12, 20)
assert ImageText.ImageText("a", font).get_bbox() == (0, 7, 12, 16)
assert ImageText.Text("A", font).get_bbox() == (0, 4, 12, 16)
assert ImageText.Text("AB", font).get_bbox() == (0, 4, 24, 16)
assert ImageText.Text("M", font).get_bbox() == (0, 4, 12, 16)
assert ImageText.Text("y", font).get_bbox() == (0, 7, 12, 20)
assert ImageText.Text("a", font).get_bbox() == (0, 7, 12, 16)
def test_standard_embedded_color(layout_engine: ImageFont.Layout) -> None:
font = ImageFont.truetype(FONT_PATH, 40, layout_engine=layout_engine)
text = ImageText.ImageText("Hello World!", font)
text = ImageText.Text("Hello World!", font)
text.embed_color()
im = Image.new("RGB", (300, 64), "white")
@ -60,7 +60,7 @@ def test_stroke() -> None:
im = Image.new("RGB", (120, 130))
draw = ImageDraw.Draw(im)
font = ImageFont.truetype(FONT_PATH, 120)
text = ImageText.ImageText("A", font)
text = ImageText.Text("A", font)
text.stroke(2, stroke_fill)
# Act

View File

@ -16,7 +16,7 @@ Example
from PIL import Image, ImageDraw, ImageFont, ImageText
font = ImageFont.truetype("Tests/fonts/FreeMono.ttf", 24)
text = ImageText.ImageText("Hello world", font)
text = ImageText.Text("Hello world", font)
text.embed_color()
text.stroke(2, "#0f0")
@ -30,5 +30,5 @@ Example
Methods
-------
.. autoclass:: PIL.ImageText.ImageText
.. autoclass:: PIL.ImageText.Text
:members:

View File

@ -540,7 +540,7 @@ class ImageDraw:
def text(
self,
xy: tuple[float, float],
text: AnyStr | ImageText.ImageText,
text: AnyStr | ImageText.Text,
fill: _Ink | None = None,
font: (
ImageFont.ImageFont
@ -561,12 +561,12 @@ class ImageDraw:
**kwargs: Any,
) -> None:
"""Draw text."""
if isinstance(text, ImageText.ImageText):
if isinstance(text, ImageText.Text):
imagetext = text
else:
if font is None:
font = self._getfont(kwargs.get("font_size"))
imagetext = ImageText.ImageText(
imagetext = ImageText.Text(
text, font, self.mode, spacing, direction, features, language
)
if embedded_color:
@ -721,7 +721,7 @@ class ImageDraw:
"""Get the length of a given string, in pixels with 1/64 precision."""
if font is None:
font = self._getfont(font_size)
imagetext = ImageText.ImageText(
imagetext = ImageText.Text(
text,
font,
self.mode,
@ -757,7 +757,7 @@ class ImageDraw:
"""Get the bounding box of a given string, in pixels."""
if font is None:
font = self._getfont(font_size)
imagetext = ImageText.ImageText(
imagetext = ImageText.Text(
text, font, self.mode, spacing, direction, features, language
)
if embedded_color:

View File

@ -4,7 +4,7 @@ from . import ImageFont
from ._typing import _Ink
class ImageText:
class Text:
def __init__(
self,
text: str | bytes,
@ -104,26 +104,26 @@ class ImageText:
For example, instead of::
hello = ImageText.ImageText("Hello", font).get_length()
world = ImageText.ImageText("World", font).get_length()
helloworld = ImageText.ImageText("HelloWorld", font).get_length()
hello = ImageText.Text("Hello", font).get_length()
world = ImageText.Text("World", font).get_length()
helloworld = ImageText.Text("HelloWorld", font).get_length()
assert hello + world == helloworld
use::
hello = (
ImageText.ImageText("HelloW", font).get_length() -
ImageText.ImageText("W", font).get_length()
ImageText.Text("HelloW", font).get_length() -
ImageText.Text("W", font).get_length()
) # adjusted for kerning
world = ImageText.ImageText("World", font).get_length()
helloworld = ImageText.ImageText("HelloWorld", font).get_length()
world = ImageText.Text("World", font).get_length()
helloworld = ImageText.Text("HelloWorld", font).get_length()
assert hello + world == helloworld
or disable kerning with (requires libraqm)::
hello = ImageText.ImageText("Hello", font, features=["-kern"]).get_length()
world = ImageText.ImageText("World", font, features=["-kern"]).get_length()
helloworld = ImageText.ImageText(
hello = ImageText.Text("Hello", font, features=["-kern"]).get_length()
world = ImageText.Text("World", font, features=["-kern"]).get_length()
helloworld = ImageText.Text(
"HelloWorld", font, features=["-kern"]
).get_length()
assert hello + world == helloworld