我在使用PIL绘制多语言文字时遇到问题。让我们说我想画文字 - “ひらがな - 平假名,히라가나”。但是PIL的ImageDraw.text()函数一次只能使用一种字体,因此我无法正确绘制该文本,因为它需要英文,日文和韩文字体。
到目前为止,我没有找到一个简单的解决方案,例如将多个字体传递给PIL,因此它可以为每个Unicode字符选择合适的字体(就像现代SDK或Web浏览器一样)。
我在想的是,我应该遍历每个角色,并确定自己为每个角色使用哪种字体。但我不禁想到必须有一种更简单的方法来做到这一点。
我是朝着正确的方向前进的吗?是不是有更简单的方法?
PS)如果有更好的解决方案,可以使用其他语言或其他成像库。
答案 0 :(得分:15)
您只需要选择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")