繁体   English   中英

为Qt创建位图字体

[英]Creating a bitmap font for Qt

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

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

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

因此,显然,采用该代码并简单地用我们的字体名称代替Arial会更容易,让Qt自动选择它。

因此,我的问题确实与如何在Linux中创建一个位图字体有关,该字体将被该字体拾取。 对诸如FontForge(实际上是OTF / TTF文件格式)之类的工具的调查似乎表明,您需要根据矢量图形而不是简单的位图来定义字体。

我看到该路径充满转换问题,尤其是因为我们已经有了希望用于单个字符的位图。

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

BDF格式应适合您的需求。 它能够存储原始位图,并且根据此处的文档与Qt兼容。

Qt文档

Qt使用FreeType 2字体引擎来生成字体输出。

...

FreeType 2库可以支持以下字体格式:

  • TrueType(TTF)
  • PostScript Type1(PFA / PFB)
  • 位图分发格式(BDF)
  • CID键的Type1
  • 紧凑字体格式(CFF)
  • OpenType字体
  • 基于SFNT的位图字体
  • 便携式编译格式(PCF)
  • Microsoft Windows字体文件格式(Windows FNT)
  • 便携式字体资源(PFR)
  • 42型(有限支持)

位图字体的未来是基于SFNT的位图字体(基本上是与OpenType兼容的容器中的位图字形)。 它应该在现代* nix系统,GTK和QT下按原样工作(您可能需要确保目标系统上没有fontconfig规则将位图字体列入黑名单)。

现在,位图字体的整个“未来”都是黯淡而有限的,我认为它们在HiDPi和4K屏幕上还无法幸存。 尽管SFNT位图字体是您的最佳目标,但它的目标并不多,我怀疑位图设备的市场是否足以支持健康的位图字体软件生态系统。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM