【发布时间】:2017-04-23 09:21:45
【问题描述】:
晚安。
今天我正在尝试用 Python 学习 PIL/Pillow。
我使用了以下代码:
import PIL
import PIL.Image as Image
import PIL.ImageDraw as ImageDraw
import PIL.ImageFont as ImageFont
font = ImageFont.truetype("C:\Windows\Fonts\Verdanab.ttf", 80)
img = Image.open("C:/Users/imagem/fundo_preto.png")
draw = ImageDraw.Draw(img)
filename = "info.txt"
for line in open(filename):
print line
x = 0
y = 0
draw.text((x, y),line,(255,255,255),font=font)
img.save("a_test.png")
x += 10
y += 10
我不知道“draw.text()”函数是否有效,但我尝试在我拥有的黑色背景图像上写下以下内容。
Line 1
Line 2
Line 3
Line 4
Line 5
我得到的只是这些行在同一行上一个接一个。
这个功能是如何工作的,我如何在不同的地方而不是一个在另一个地方获得线条的位置。
【问题讨论】:
-
x和y的初始化应该移到循环之前,否则x += 10; y += 10起不到任何作用。我也会在循环后保存图像。字体路径可以作为原始字符串r"C:\Windows\Fonts\Verdana.ttf"给出,以防止字符串中反斜杠的特殊含义。 -
既然我们在谈论字体。我是否获得了模拟终端字体的字体?我正在尝试模拟命令提示符终端的屏幕,但我使用的字体不是那么好。
-
也许,您想使用等距字体。顺便说一句,Windows 字体目录的更便携方式:
os.path.join(os.environ['WINDIR'], 'Fonts').