我正在创建一个小型的Python程序,用于在一个128x48像素的小图片上绘制文本。对于宽度不超过120的文本,程序可以正常工作,但我无法想出如何将更长的文本拆分成另一行。该怎么做呢?
我尝试使用textwrap3,但是与Pillow协作时无法使其工作。
该程序会创建一个黑色背景和黄色居中文本的128x48像素图像文件,稍后将在输出高达480i的设备上查看,因此简单地让文本变得小得多以适应额外的文本宽度并没有帮助。目前使用的字体是Arial 18。
以下是用于创建图像的当前代码:
上面的代码输出的图片如下所示:
我尝试使用textwrap3,但是与Pillow协作时无法使其工作。
该程序会创建一个黑色背景和黄色居中文本的128x48像素图像文件,稍后将在输出高达480i的设备上查看,因此简单地让文本变得小得多以适应额外的文本宽度并没有帮助。目前使用的字体是Arial 18。
以下是用于创建图像的当前代码:
from PIL import Image, ImageDraw, ImageFont
AppName = "TextGoesHere"
Font = ImageFont.truetype('./assets/Arial.ttf', 18)
img = Image.new('RGB', (128, 48), color='black')
d = ImageDraw.Draw(img)
# Get width and height of text
w, h = d.textsize(AppName, font=Font)
# Draw text
d.text(((128-w)/2, (48-h)/2), AppName, font=Font, fill=(255, 255, 0))
img.save('icon.png')
上面的代码输出的图片如下所示: