问:如何从图像创建字体?

时间:2015-11-04 04:21:54

标签: qt fonts

我需要在我的Qt应用程序中为数字使用一些自定义字体,但公司要求我使用图像作为字体,不允许使用字体文件(例如:ttf)。

像这样的字体图片:enter image description here

所以我想知道是否可以将字体图像转换为QFont? 像Qt字体生成器。 还是其他任何解决方案?

2 个答案:

答案 0 :(得分:1)

没有开箱即用的东西支持您正在寻找的东西。您需要通过以编程方式从映像构建自己的TrueTypeFont数据,将其保留在内存中并使用addApplicationFontFromData(const QByteArray& fontData)将其加载到应用程序中来绕过此公司规则。

不幸的是,我找不到一个能够做到这一点的单一库,而且TTF格式看起来非常复杂。我建议调查这个开源项目来创建字体。也许你可以用这个作为起点? http://fontforge.github.io/en-US/

您可能想知道公司告诉您不能使用自定义字体的原因。 (我只记得读到QT难以将字体存储为"资源"。如果它不是由于版权问题,那么你可以建议不要使用图像,而是将整个文件存储在源代码采用文本格式,如base-64。然后在启动时将其转换回二进制文件,然后将其作为QByteArray中的新字体加载。

答案 1 :(得分:0)

我猜是关于版权问题?有很多ttf字体可供完全免费的商业用途。例如。看看Droid Sans Mono:https://www.google.com/fonts/specimen/Droid+Sans+Mono

否则,最好知道不允许使用ttf的原因。

可以从矢量图形创建字体。

如果你有每个字母的合理高分辨率图像(如果还没有矢量图形),你可以尝试将它们转换为矢量图形(SVG)。

之后您可以使用工具将SVG转换为字体。这很可能是一个可以与QFont一起使用的ttf字体。