将 Bidi 文本打印到图像
我有一些使用 PIL 的 Python 代码,它将把 UTF-8 字符打印到图像上。
我注意到,对于加入像阿拉伯语这样的双向脚本,相同的代码无法正确连接字符(仅选择初始形式,不使用中间和最终形式)
任何人都可以推荐一种方法或技术来解决这个特定问题吗?
I have some code in Python using PIL, that will print UTF-8 characters to an image.
I've noticed that for joining Bidi scripts like Arabic, the same code fails to connect characters correctly (the initial forms are only chosen, medial and final forms aren't utilized)
Can anyone recommend a method or technique for solving this particular issue?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您想继续使用 PIL,请将
pyarabicshaping
与pybidi
或者您可能需要考虑切换到pangocairo
使用HarfBuzz
用于文本整形。If you want to keep using PIL, use
pyarabicshaping
withpybidi
or you might want to consider switching topangocairo
which usesHarfBuzz
for text shaping.我所做的如下:Python +Wand(Python Lib) +arabic_reshaper(Python Lib) +bidi.algorithme(Python Lib)。这同样适用于PIL/Pillow,您需要使用
arabic_reshaper
和bidi.algorithm
并将生成的文本传递给draw。 text((10, 25), arttext, font=font)
:What I did is the following: Python +Wand(Python Lib) +arabic_reshaper(Python Lib) +bidi.algorithme(Python Lib). The same applies to PIL/Pillow, you need to use the
arabic_reshaper
andbidi.algorithm
and pass the generated text todraw.text((10, 25), artext, font=font)
: