linux CLI:如何将阿拉伯文本呈现为位图

c2h*_*2h2 2 ruby linux rmagick imagemagick arabic

我想用命令行界面将阿拉伯文本绘制到位图(bmp或png)中.

我尝试过imagemagick和RMagick,但是我遇到了RTL语言问题.我所有的渲染都是从左到右.谷歌没有帮助.

要求:

./render "???? ????????" out.png
Run Code Online (Sandbox Code Playgroud)

会给出一个位图:

لوحةالمفاتيح

谁能给我一些成功的结果?

mde*_*tis 8

谁能给我一些成功的结果?

我可以.我使用convertImageMagick:

echo ???? ???????? > text.txt && \
convert -size 300x200 \
        -background white \
        -fill black \
        -font /usr/share/fonts/truetype/droid/DroidNaskh-Regular.ttf \
        -pointsize 24 \
        -gravity Center \
        label:@text.txt \
        text.png
Run Code Online (Sandbox Code Playgroud)

这是结果:

文本到图像结果

一些说明:

  1. 您需要使用定义使用字符的字体(在您的情况下是阿拉伯字体)
  2. 始终使用内部文本的临时文件,而不是直接从命令行提供文本:这将导致奇怪的结果

更新我没有注意到问题的RTL部分; 我认为使用pango(参考)我得到了更好的结果:

# On Ubuntu
sudo apt-get install libpango1.0-dev
echo -n ???? ???????? > text.txt
pango-view text.txt --no-display --output text.png
Run Code Online (Sandbox Code Playgroud)

结果:

使用pango将文本转换为图像结果