【发布时间】:2013-07-25 11:04:33
【问题描述】:
我一周前开始学习 python,想编写一个小程序,将电子邮件转换为图像 (.png),以便可以在论坛上共享,而不会冒着收到大量垃圾邮件的风险。
python 标准库似乎不包含可以执行此操作的模块,但我发现有一个 PIL 模块(PIL.ImageDraw)。
我的问题是我似乎无法让它工作。
所以基本上我的问题是:
- 如何在图像上绘制文本。
- 如何创建空白(白色)图像
- 有没有办法在不实际创建文件的情况下执行此操作,以便在保存之前在 GUI 中显示它?
当前代码:
import Image
import ImageDraw
import ImageFont
def getSize(txt, font):
testImg = Image.new('RGB', (1, 1))
testDraw = ImageDraw.Draw(testImg)
return testDraw.textsize(txt, font)
if __name__ == '__main__':
fontname = "Arial.ttf"
fontsize = 11
text = "example@gmail.com"
colorText = "black"
colorOutline = "red"
colorBackground = "white"
font = ImageFont.truetype(fontname, fontsize)
width, height = getSize(text, font)
img = Image.new('RGB', (width+4, height+4), colorBackground)
d = ImageDraw.Draw(img)
d.text((2, height/2), text, fill=colorText, font=font)
d.rectangle((0, 0, width+3, height+3), outline=colorOutline)
img.save("D:/image.png")
【问题讨论】:
-
你能告诉我们你已经尝试过什么以及哪里出了问题吗?
-
我还没有任何东西。问题是我找不到 ImageDraw 模块的真实文档,所以我不知道如何使用它
-
@user1743130 似乎来自 pythonware.com 的 PIL 文档已被删除。您可以使用 python-imaging 模块附带的文档。
-
PIL枕叉的最新文档可以在here找到。枕头支持 Python 3,不像 PIL 本身。
标签: python python-imaging-library text-rendering