绘制PIL使用多语言文本(Drawing multilingual text using PIL)

2019-06-26 04:32发布

我无法使用绘图PIL多语言文本。 比方说,我想画的文字 - “ひらがな - 平假名,히라가나”。 但PIL的ImageDraw.text()函数将在同一时间只有一个字体,所以我不能正确地绘制这样的文字,因为它需要英文,日文和韩文字体都在一起。

到目前为止,我没有运气找到像通过多种字体PIL,以便它可以为每个Unicode字符相应的字体(像现代SDK或web浏览器做的)一个简单的解决方案。

我在想什么是我应该遍历每个字符,并确定使用我自己的每个字符的字体。 但我不禁想,必须有这样做的更简单的方法。

我在正确的方向前进? 是不是有一个更简单的方法?

PS),这是确定要使用其它语言或其它图像库中,如果有一个更好的解决方案。

Answer 1:

你只需要选择一个Unicode字体。 例:

import Image
import ImageFont, ImageDraw
image=Image.new("RGB",[320,320])
draw = ImageDraw.Draw(image)
a=u"ひらがな - Hiragana, 히라가나"
font=ImageFont.truetype("/Library/Fonts/Arial Unicode.ttf",14)
draw.text((50, 50), a, font=font)
image.save("a.png")



文章来源: Drawing multilingual text using PIL