gpt4 book ai didi

freetype - 如何使用 freetype 获取字形 unicode?

转载 作者:行者123 更新时间:2023-12-01 21:46:04 28 4
gpt4 key购买 nike

我正在尝试使用 freetype 枚举字体文件中的字形(名称和 unicode)。

为了获取名称,我使用了 FT_Get_Glyph_Name。但是我怎样才能得到字形 unicode 值呢?

我是字形和字体的新手。

最佳答案

Unicode 代码点在技术上并未与 TrueType/OpenType 字体中的字形存储在一起。必须迭代字体中的字体 cmap 表以获取映射,这也可能是非 Unicode 映射,并且可能存在指向同一字形的多个映射。好消息是 FreeType 在 API 中提供了工具来迭代当前所选字符映射中的字形代码点,这非常好 documented .因此,使用代码:

// Ensure an unicode characater map is loaded
FT_Select_Charmap(face, FT_ENCODING_UNICODE);

FT_ULong charcode;
FT_UInt gid;

charcode = FT_Get_First_Char(face, &gid);
while (gid != 0)
{
std::cout << std::format("Codepoint: {:x}, gid: {}", charcode, gid) << std::endl;
charcode = FT_Get_Next_Char(face, charcode, &gid);
}

利用这些信息,您可以创建从字形到 Unicode 代码点的最佳映射。

关于freetype - 如何使用 freetype 获取字形 unicode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60526004/

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