我想使用命令行界面将阿拉伯文本绘制成位图(bmp 或 png)。

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

要求:

./render "لوحة المفاتيح" out.png

会给一个位图:

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

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

最佳答案



我可以。我使用 ImageMagick 的 convert:

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

这是结果:

一些注意事项:
  • 您需要使用定义所用字符的字体(在您的情况下为阿拉伯字体)
  • 始终使用包含文本的临时文件,而不是直接从命令行提供文本:这会导致奇怪的结果

  • UPDATE 我没有注意到问题的 RTL 部分;我想我使用 pango ( reference ) 得到了更好的结果:
    # On Ubuntu
    sudo apt-get install libpango1.0-dev
    echo -n لوحة المفاتيح > text.txt
    pango-view text.txt --no-display --output text.png
    

    结果:

    关于ruby - linux CLI : how to render Arabic text into bitmap,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23536375/

    10-14 06:40