用于节点的GraphicsMagick中的Unicode drawText“从右到左”语言问题

我正在使用
GraphicsMagick for node并试图在图像上为“乌尔都语/阿拉伯语言”绘制文字“文字”“السلامعليكم”,文本正在输出图像上绘制,但它被绘制为“从左到右”,而它必须是“从右到左”阿拉伯语/乌尔都语是“从右到左”的语言.

gm("/file.png")
             .fill('#FF0066')
             .drawText(100, -150, "السلام عليكم", 'Center')
             .font("/alvi_Nastaleeq.ttf")
             .fontSize('38px')
             .encoding('Unicode')

输出图像:

《用于节点的GraphicsMagick中的Unicode drawText“从右到左”语言问题》

如果我尝试使用反向urdu“مكيلعمالسلا”字符串,即使然后文本没有正确绘制.

《用于节点的GraphicsMagick中的Unicode drawText“从右到左”语言问题》

我做错了什么?我该如何解决?

谢谢,

最佳答案 我正在寻找相同的东西,我发现了

您需要启用text_shaping选项

你需要使用–enable-libfribidi配置FFmpeg

在这里阅读text_shaping
https://ffmpeg.org/ffmpeg-filters.html#Syntax
我没有测试它,但我会,
当我得到一个结果时,我会在这里发布代码
我希望我已经指出你了
这是我用来制作这样的视频的工作代码
《用于节点的GraphicsMagick中的Unicode drawText“从右到左”语言问题》

ffmpeg -y -loop 1 -framerate 25 -i bachground-img.jpg -vf "drawtext=text_shaping=1:fontfile=C\/:/Windows/Fonts/tradbdo.ttf:\
textfile=text-new.txt:fontcolor=white:fontsize=75:x=(w-tw)/2:y=h-25*t:" -t 45 -pix_fmt yuv420p output.mp4
点赞