首页 > 解决方案 > 字符(音节)在枕头中未按正确顺序呈现

问题描述

我正在尝试在图像上打印缅甸字符(准确地说是 Myanmar3.ttf)以进行数据生成-OCR。与其他语言不同,在缅甸语中,单词/字符是使用音节构成的,并且音节中有顺序。因此,缅甸语的 unicode 使用复杂的文本排序。当我在图像上打印字符时,音节不会组合在一起形成一个单词。以下是对缅甸语的一些参考: http ://www.unicode.org/cldr/charts/30/collat​​ion/my.html

这是代码:

from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw

img = Image.open("BG.png")
draw = ImageDraw.Draw(img)
unicode_font = ImageFont.truetype("Myanmar3.ttf", 13)
draw.text((0, 0), u"ကြည့်ရှုခွင့်ရသူ", (0, 0, 0), font = unicode_font)
img.save("sample1.png")

它应该出现的方式: 正确

它不应该出现的方式: False

标签: pythontextpython-imaging-library

解决方案


如果未安装libraqm库, Pillow 不支持复杂的脚本渲染。在 Debian 上,您可以尝试安装libraqm0

# apt install libraqm0

它为我改进了渲染。


推荐阅读