我花了很多时间用Python制作了我的第一个web应用程序,我很高兴
使用[pil](file:///C:/questions/taged/pil“show questions taged’pil’”进行
生成图像。在读了很多书之后,我成功地实现了正确的文本
对齐、包装、生成具有许多扩展名的文件等。
但是,由PIL生成的所有文本在顶部被截断。这是一个样本。
!【PIL生成的图像示例,其中文本在
顶部
它应该在各种字体中显示“jygpq”(字体名称在屏幕上)
左)。
我在这里发现了一些帖子:[字体剪辑与
pil,但是
我想避免使用另一个模块(aggdraw);因为我已经明白了
PIL已经有很多东西了,我想坚持下去。
我试过很多不同大小的字体,但文字还是被切断了。我甚至
尝试使用PIL字体,但仍然不起作用。[还将OTF转换为
BDF和PIL]。
这是在Ubuntu上。我下一步该怎么做?
我希望在这一点上是错误的,但唯一正确的修复依赖于修补
如何\u imagingft.c呈现文本。PIL依赖于FreeType来完成这个任务,但是
皮尔似乎在错误地计算位置。另外,高度在getsize
被高估了(尽管这不会引起问题)。现在,我已经
在以下位置放置修补程序以处理这些问题:http://pastebin.com/jP2iLkDN(在那里)
似乎是修补渲染代码的更好方法)。下面是我在没有补丁和
下面是生成顶部数字的代码:
# -*- encoding: utf8 -*-
import sys
import Image, ImageDraw, ImageFont
im = Image.new("RGBA", (1000, 1000), 'white')
draw = ImageDraw.Draw(im)
start_y = 7
text = u'\u00d1\u00d3yŻ\u00d4Ćgp\u010c\u0137'
for i in xrange(28, 46, 2):
font = ImageFont.truetype('Junicode-Bold.ttf', i)
width, height = font.getsize(text)
draw.rectangle((0, start_y, width, height + start_y), outline='blue')
draw.text((0, start_y), text, font=font, fill='black')
start_y += height + 7
im.crop((0, 0, width + 1, start_y + 2)).save(sys.argv[1])
下面的数字是根据链接列表中的代码生成的
关于截取部分课文的话题。