为Qt

时间:2017-05-16 06:06:48

标签: linux qt fonts bitmap

客户端提供了详细说明非常特定的LED设备的位图字体的文件。该设备的大小是已知的,不会改变。此外,字符集很小(ASCII加一些图形字符)。

现在我们已经有了使用标准Linux字体(Arial)在这些设备上呈现的软件,其代码如下:

m_font = new QFont("Arial", m_fontHeight);

所以,显然,使用该代码并简单地用我们的字体名称代替Arial,让Qt自动拾取它会更容易。

所以我的问题实际上与如何在Linux中创建一个位图字体有关。对像FontForge这样的工具(实际上是OTF / TTF文件格式本身)的调查似乎表明你需要根据矢量图形来定义字体,而不是简单的位图。

我认为该路径充满了转换问题,特别是因为我们已经拥有了我们希望用于单个字符的位图。

有没有一种简单的方法让Qt(或底层Linux字体引擎)选择一个非常简单的位图类型字体文件而不是矢量图形文件?

2 个答案:

答案 0 :(得分:2)

BDF Format应该符合您的需求。它能够存储原始位图,并且根据文档here与Qt兼容。

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位图字体是你最好的目标,但并不是很多,我怀疑位图设备的市场足以支持健康的位图字体软件生态系统。