小白一名 求教关于使用 PIL 库在图片上写中文无法居中的问题

2014-09-18 11:03:46 +08:00
 penguinmore
小白一名 近日有个需求是在一张图片上写一段中文文字 比如:人生苦短我用Python
网上找了一下 用PIL库实现了 但是现在有个问题就是无法让文字水平居中 代码如下 求高手指教
im = Image.open("bottom.png")

font = ImageFont.truetype("fang.TTF", 240)

draw = ImageDraw.Draw(im)

imwidth, imheight = im.size

ont_width, font_height = draw.textsize(content, font)

print imwidth
print font_width

draw.text(((imwidth - font_width) / 2, 300), unicode(content, 'UTF-8'), font=font, fill="#ffffff")

print 出来的font_width数值不对 大于了原图的大小 但其实文字内容应该是没有超出图片的宽度的
3664 次点击
所在节点    Python
4 条回复
KatHex
2015-04-11 12:14:24 +08:00
因为textsize有点bug
使用ImageFont.trueType().getsize()但有offset,
减去ImageFont.trueType().getoffset()
可解决
penguinmore
2015-04-13 09:49:29 +08:00
@KatHex 多谢 之前已经解决了
demonlife
2016-05-23 15:53:04 +08:00
我现在也遇到类似的情况了,中文字体无法居中显示,求指导方法!!在线急等啊!!!
demonlife
2016-05-23 16:32:12 +08:00
@penguinmore, 你的这个问题是如何解决的啊,能否贴出解决方案,非常感谢!!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/134177

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX