客户端提供了详细说明非常特定的LED设备的位图字体的文件。该设备的大小是已知的,不会改变。此外,字符集很小(ASCII加一些图形字符)。
现在我们已经有了使用标准Linux字体(Arial)在这些设备上呈现的软件,其代码如下:
m_font = new QFont("Arial", m_fontHeight);
所以,显然,使用该代码并简单地用我们的字体名称代替Arial,让Qt自动拾取它会更容易。
所以我的问题实际上与如何在Linux中创建一个位图字体有关。对像FontForge这样的工具(实际上是OTF / TTF文件格式本身)的调查似乎表明你需要根据矢量图形来定义字体,而不是简单的位图。
我认为该路径充满了转换问题,特别是因为我们已经拥有了我们希望用于单个字符的位图。
有没有一种简单的方法让Qt(或底层Linux字体引擎)选择一个非常简单的位图类型字体文件而不是矢量图形文件?
答案 0 :(得分:2)
BDF Format应该符合您的需求。它能够存储原始位图,并且根据文档here与Qt兼容。
Qt使用FreeType 2字体引擎生成字体输出。
...
FreeType 2库可以支持以下字体格式:
- TrueType(TTF)
- PostScript Type1(PFA / PFB)
- 位图分发格式(BDF)
- CID-keyed Type1
- 压缩字体格式(CFF)
- OpenType字体
- 基于SFNT的位图字体
- 便携式编译格式(PCF)
- Microsoft Windows字体文件格式(Windows FNT)
- 便携式字体资源(PFR)
- 42型(有限支援)
答案 1 :(得分:0)
位图字体的未来是基于SFNT的位图字体(基本上是OpenType兼容容器中的位图字形)。它应该在现代* nix系统,GTK和QT下正常工作(您可能需要确保没有fontconfig规则将目标系统上的位图字体列入黑名单。)
现在整个"未来"对于位图字体来说是黯淡和有限的,我似乎无法幸存HiDPi和4K屏幕。虽然SFNT位图字体是你最好的目标,但并不是很多,我怀疑位图设备的市场足以支持健康的位图字体软件生态系统。