[英]Render string in X11 bitmap font
如何以古老的 X11 位图字体呈现字符串? 我的意思是像
-*-lucida-medium-r-normal-*-34-*-*-*-*-*-*-*
我可以用xfontsel
找到它。 我只需要一个命令行工具等,以该字体显示给定的字符串。 类似的 TrueType 字体将无法工作,因为它必须是像素完美的(我正在尝试获取每个字母的图像以使用该字体对图像进行 OCR)。
我不确定是否有命令行工具。 但是您始终可以使用 Xlib 和 C 来实现自己的目标。
有人似乎已经编写了一个简单的 X11 C 程序,它使用 Xlib 显示字符串。 更改几行并编译:
gcc -lX11 -o xrenderstring xrenderstring.c
.. 应该为你做。
我已经在这个要点中复制了整个程序(以防它从原始源中消失),修改为采用两个参数:1. 字体名称,2. 要呈现的字符串。
所以你会这样称呼它(当然是在编译之后):
./xrenderstring "-*-lucida-medium-r-normal-*-34-*-*-*-*-*-*-*" "Quick brown fox"
只渲染该字体的字符:
xfd -fn '-*-lucida-medium-r-normal-*-34-*-*-*-*-*-*-*'
xfontsel -pattern '-*-lucida-medium-r-normal-*-34-*-*-*-*-*-*-*'
要呈现特定字符串:
xfontsel -pattern '-*-lucida-medium-r-normal-*-34-*-*-*-*-*-*-*' -sample 'The quick brown fox jumps the shark'
找到了一种骇人听闻的方式。 将以下内容添加到 ~/.Xdefaults:
xedit*editWindow*font: -*-lucida-medium-r-normal-*-36-*-*-*-*-*-*-*
然后运行
$ xrdb -merge ~/.Xdefaults
$ xedit
然后我输入字符串,截屏,并在 gimp 中进行比较。
(事实证明 X11 字体毕竟不是正确的字体。我的来源使用 Lucida Sans 36 pt (ttf),但没有抗锯齿和可能奇怪的提示。)
您可以使用 ImageMagick。
增加的好处:
对于短文本
echo "The quick brown fox jumps over the lazy dog." \
| convert \
-font '-*-fixed-*-*-*-*-18-*-*-*-*-*-iso8859-*' \
TEXT:- -trim fox.png
渲染到屏幕:
echo "The quick brown fox jumps over the lazy dog." \
| convert \
-font '-*-fixed-*-*-*-*-18-*-*-*-*-*-iso8859-*' \
TEXT:- -trim MIFF:- | display MIFF:-
删除-trim
可以看到 ImageMagick 使用画布进行绘制。
convert -size 2000x20 xc:black \
-font '-*-fixed-*-*-*-*-18-*-*-*-*-*-iso8859-*' \
-fill white \
-draw "text 0,15 'The quick brown fox jumps over the lazy dog.'" \
-trim +dither -depth 1 fox.png
下面生成的图像重 592 字节:
您可以在上面一行中只放置一个字符,但单独应用于多个字符会导致生成的图像不再具有相同的大小或相同的公共基线。
for CHAR in H e l o ' ' W r d
do
convert -size 9x13 xc:black \
-font '-*-fixed-*-*-*-*-18-*-*-*-*-*-iso8859-*' \
-fill white -stroke none \
-draw "text 0,10 '${CHAR}'" \
+dither -depth 2 fixed_char_${CHAR}.png
done
下面的命令生成一个 PNG,显示单独的框架图像保持它们的共同对齐:
montage -mode concatenate -tile x1 fixed_char_H.png fixed_char_e.png \
fixed_char_l.png fixed_char_l.png fixed_char_o.png fixed_char_\ .png \
fixed_char_W.png fixed_char_o.png fixed_char_r.png fixed_char_l.png \
fixed_char_d.png helloworld.png
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.