是否可以在 C++ 中嵌入 TTF 或 OTF 字体文件?应用?

发布于 2024-08-25 13:34:13 字数 122 浏览 2 评论 0原文

是否可以在 C++ 应用程序中嵌入 TTF 或 OTF 字体文件,以便应用程序无需将其安装在目标计算机上即可使用它?欢迎任何想法。 (目标平台将是 Windows 和 Macintosh)。目的:字体是私有字体,不应该提供给用户。

Is it possible to embed a TTF or OTF font file in a C++ application so that application can use it without installing it on target machine? Any thoughts are welcome. (target platforms are going to be Windows and Macintosh). Purpose: Font is a private one and should not be available to the users.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冰雪之触 2024-09-01 13:34:13

OS X:将字体包含在应用的 Resources 目录中,然后将值 ATSApplicationFontsPath 添加到应用的 Info.plist包含相对于资源目录的路径。

Windows:MSDN 有一篇文章 针对 Windows 窗体,使用 System.Drawing.Text.PrivateFontCollection 类和一个用于 WPF 使用System.Windows.Media.FontFamily 类。假设您使用 C++/CLI 和 .NET GUI 框架;它可能不适用于MFC。

OS X: Include the font in the app’s Resources directory, then add the value ATSApplicationFontsPath to the app’s Info.plist containing the path relative to the Resources directory.

Windows: MSDN has an article for Windows Forms using the System.Drawing.Text.PrivateFontCollection class and one for WPF using the System.Windows.Media.FontFamily class. This is assuming you’re using C++/CLI and the .NET GUI frameworks; it probably won’t apply for MFC.

黑凤梨 2024-09-01 13:34:13

最近,我了解到TTF字体只是一个字节数组。只需进行十六进制转储并准备字节数组(注意字节序,大多数现代架构都是小字节序)。

以下线程有详细信息:

https://twitter.com/awmanoj/status/1071718063647580161

在 golang 中,还有一个字节数组的生成器。根据需要用另一种语言(如 Java/C++)实现相同的功能非常简单。

Recently, got to know that a TTF font is simply a byte array. Just take a hexdump and prepare the byte array (taking care of the endianness, most modern architectures are little endian).

Following thread has details:

https://twitter.com/awmanoj/status/1071718063647580161

In golang, there is also a generator of the byte array. Quite trivial to implement the same in another language like Java/C++ per the need.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文