mal*_*man 5 python hebrew python-imaging-library python-3.x
我正在使用 Pillow / PIL 用 nikud 绘制希伯来字母。我注意到 nikudim(nikud 的复数形式)没有正确对齐,有时会与其他字母重叠。
\n\n有什么建议的修复方法吗?我尝试了几种字体,它们似乎都有自己的问题。
\n\n这是我正在使用的代码。
\n\nfrom bidi.algorithm import get_display\nfrom PIL import Image, ImageDraw, ImageFont\n\nfonts = [\n (\'Tammey FranckCLM\', \'/PATH/TO/FONT/TaameyFrankCLM-Medium.ttf\'),\n (\'Times New Roman\', \'/PATH/TO/FONT/Times New Roman.ttf\'),\n (\'Arial\', \'/PATH/TO/FONT/Arial.ttf\')\n]\n\nim = Image.new(mode=\'RGBA\', size = (1000, 1000), color = (0, 0, 0, 255))\ndraw = ImageDraw.Draw(im)\n\nheight = 100\nfor f in fonts:\n fnt = ImageFont.truetype(f[1], 40)\n text = \'\xd7\xa2\xd6\xb8\xd7\x9c\xd6\xb5\xd7\x99\xd7\xa0\xd7\x95\xd6\xbc\'\n text_bidi = get_display(text, base_dir=\'R\')\n draw.text((100, height), f[0], font=fnt, fill=(255, 255, 255))\n draw.text((500, height), text_bidi, font=fnt, fill=(255, 255, 255))\n height += 70\nim.show()\nim.close()\nRun Code Online (Sandbox Code Playgroud)\n\n请注意,由于文本方向的原因,文本在 SO 上以正确的方向呈现,但在终端中则不然。在终端中,如下所示。我正在使用 BiDi 算法来反转单词。
\n\n\n\n这是输出的示例。您可以看到每种字体的 nikud(即字母下面和旁边的点)并不相同。字体在文本编辑器中可以正确呈现,但在 PIL 中则不然。
\n\n任何建议,将不胜感激。谢谢!
\n\n\n\n作为参考,它应该如下所示。
\n\n\n