我想用ImageMagick渲染小的单个字符图像。
我这样称呼它:
echo -n "\u1407" | convert -background black -fill white \
-font /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
-pointsize 12 label:@- gif:1407.gif
当我在我的终端上回显时,有这个字体(DejaVu-Sans-Mono)设置,我看到这个三角形:ᐇ
但是在GIF中只是一个问号。没有特殊标记,只是一个问号。它适用于其他一些角色,例如⟨⟩
和27e8
27e9
,但下一对不再有效。
如何启用字体提供的所有字符,我需要做什么?我设置了错误的字体吗?
我的发行版是LMDE。
答案 0 :(得分:2)
使用bash& unicode,我总是需要退一步,然后再做一步。
echo -n ᐇ | hexdump
这给了我正确的hex-triplet
0000000 e1 90 87
那么我在bash中的unicode转义序列就是..
echo -ne "\xE1\x90\x87"
(省略作为换行的0x0A)
echo -ne "\xE1\x90\x87" | convert -background black -fill white \
-font /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf \
-pointsize 12 label:@- gif:1407.gif
然而,这会产生以下图像,因为角色不是 DejaVu Sans Mono 集合的一部分,但它是 DejaVu Sans 的一部分
echo -ne "\xE1\x90\x87" | convert -background black -fill white \
-font /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf \
-pointsize 12 label:@- gif:1407.gif
可能有一个完全正确的理由说明为什么不包含此字形。礼貌的事情是联系DejaVu团队,并询问这是一个错误,还是包含在其他地方。 IRC& Mailing lists是一个好的开始。