我正在使用GraphicsMagick for node并试图在图像上绘制文字“乌尔都语/阿拉伯语”这个文字“السلامعليكم”,文字正在输出图像上绘制,但它被绘制为“从左到右”而它必须阿拉伯语/乌尔都语是“从右到左”的语言。
gm("/file.png")
.fill('#FF0066')
.drawText(100, -150, "السلام عليكم", 'Center')
.font("/alvi_Nastaleeq.ttf")
.fontSize('38px')
.encoding('Unicode')
输出图片:
如果我尝试使用反向urdu“مكيلعمالسلا”字符串,即使文本没有正确绘制。
我做错了什么?我该如何解决?
谢谢,
答案 0 :(得分:2)
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
答案 1 :(得分:0)
我面临着完全相同的问题,经过几天的搜索,我找到了一个很好的 npm 库来解决这个问题,这个库的好处是它可以同时使用英语和阿拉伯语。
图书馆是:@mapbox/mapbox-gl-rtl-text。
https://www.npmjs.com/package/@mapbox/mapbox-gl-rtl-text
const rtlText = require('@mapbox/mapbox-gl-rtl-text');
var arabicString = "السلام عليكم";
var shapedArabicText = rtlText.applyArabicShaping(arabicString);
var readyForDisplay = rtlText.processBidirectionalText(shapedArabicText, []);