You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows与Amazon Linux下Wand阿拉伯语字体渲染异常求助

Amazon Linux下使用Wand生成阿拉伯语文本图片时变音符号错位问题

问题描述

在Amazon Linux系统上使用Python的Wand库生成包含阿拉伯语文本的图片时,变音符号错误地出现在单词中间。已确认Windows与Amazon Linux环境下的Wand及Python版本均为最新且完全一致:

  • Windows环境:阿拉伯语文本(含变音符号)显示正常
  • Amazon Linux环境:变音符号位置错乱,偏离正确位置

代码示例

from wand.image import Image as wImage
from wand.display import display as wdiplay
from wand.drawing import Drawing
from wand.color import Color

#artext = get_display(reshaped_text)
artext = "{" + "وَاصْبِرْ لِحُكْمِ رَبِّكَ" + "}"

fonts = ['DroidNaskh-Bold.ttf',
         'UthmanTNB_v2-0.ttf',
         'aa.ttf'     

         ]
draw = Drawing()
img =  wImage(width=1200,height=(len(fonts)+2)*60,background=Color('#ffffff')) 
#draw.fill_color(Color('#000000'))
draw.text_alignment = 'right';
draw.text_antialias = True
draw.text_encoding = 'utf-8'
#draw.text_interline_spacing = 1
#draw.text_interword_spacing = 15.0
draw.text_kerning = 0.0
for i in range(len(fonts)):
    font =  fonts[i]
    draw.font = font
    draw.font_size = 40
    draw.text(int(img.width / 2), int(40+(i*60)),artext)
    print(draw.get_font_metrics(img,artext))
    draw(img)
draw.text(int(img.width / 2), int(40+((i+1)*60)),u'ناصر test')
draw(img)
img.save(filename='arabictest.png')
wdiplay(img)

已尝试的解决方案

  • 使用bidi库和阿拉伯语文本重塑工具处理文本,但会破坏整句结构,无法解决变音符号错位问题

使用字体为KFGQPC Uthman Taha Naskh,恳请提供有效解决方案。

内容的提问来源于stack exchange,提问作者X III

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 22:50:05