gpt4 book ai didi

c# - 访问OTF字体

转载 作者:太空狗 更新时间:2023-10-29 18:29:43 25 4
gpt4 key购买 nike

我尝试使用系统上安装的OTF 字体,但我失败了:

FontFamily family = new FontFamily(name_for_my_font);

我试图在系统中列出我所有的字体,但实际上我还没有看到所需的字体:

foreach (FontFamily font in System.Drawing.FontFamily.Families)
{
Console.WriteLine(font);
}

但是我可以在Fonts 文件夹中看到我的字体。它有 OTF 扩展名。也许这就是问题所在?我只能看到 TTF 字体。但为什么?如何从我的程序访问 OTF 字体?

更新:抱歉,问题出在 OTF 访问上,而不是 TTF 上!我已经在我的答案中进行了更正

最佳答案

问题是 OpenType 字体有几种风格,一种基于 TrueType 轮廓,另一种基于 PostScript Type 1 轮廓。 Windows GDI+ 图形 API 不支持 PostScript 类型 1 轮廓。这有点讽刺,因为 OpenType 字体格式是由 Microsoft 由于无法从 Apple 获得某些字体技术许可而创建的。

因此,如果 Windows 应用程序基于 GDI+,那么就此而言,它将无法呈现具有 PostScript type 1 轮廓或 PostScript type 1 字体的 OpenType 字体。不幸的是,System.Drawing 是使用 GDI+ 实现的。您唯一的选择是坚持使用 TrueType 轮廓的字体。

(或者,如果您真的很绝望,您可以 P/Invoke 到“经典”GDI 并将字体呈现为位图。)

关于c# - 访问OTF字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com