Bild aus dem angegebenen Text generierenPython

Python-Programme
Anonymous
 Bild aus dem angegebenen Text generieren

Post by Anonymous »

Ich habe eine Funktion, die eine Bilddarstellung des angegebenen Textes unter Verwendung von Kissen als Eingabetext , font , font_size und color . Funktion funktioniert gut genug, aber mit größeren Schriftgrößen benötige ich zunächst eine größere Leinwand. Andernfalls wird der Text abgeschnitten. Diese anfängliche Bildgröße verlangsamt den gesamten Prozess, und ich möchte wissen, ob es eine Möglichkeit gibt, das gleiche Ergebnis zu erzielen, ohne auf ein anfängliches leeres Bild zurückgreifen zu müssen, oder die anfängliche Bildgröße so klein wie möglich zu erzeugen, um Ressourcen nicht zu verschwenden.

Code: Select all

def text_to_image(
text: str,
font_filepath: str,
font_size: int,
color: Tuple[int, int, int, int],
) -> ImageType:
# ?: very big canvas size as to not to clip the text when rendered with bigger font sizes
canvas_size = (
10000,
10000,
)
img = Image.new("RGBA", canvas_size)

draw = ImageDraw.Draw(img)
draw_point = (0, 0)

font = ImageFont.truetype(font_filepath, size=font_size)
draw.multiline_text(draw_point, text, font=font, fill=color)

text_window = img.getbbox()
img = img.crop(text_window)

return img
< /code>
Beispielergebnis: < /p>
 < /p>


def text_to_image(
text: str,
font_filepath: str,
font_size: int,
color: Tuple[int, int, int, int],
) -> ImageType:
font = ImageFont.truetype(font_filepath, size=font_size)

img = Image.new("RGBA", font.getmask(text).size)

draw = ImageDraw.Draw(img)
draw_point = (0, 0)

draw.multiline_text(draw_point, text, font=font, fill=color)

text_window = img.getbbox()
img = img.crop(text_window)

return img

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post