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

View File

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

View File

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

View File

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