首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字体文件中的Harfbuzz选择本地斜杠字符

字体文件中的Harfbuzz选择本地斜杠字符
EN

Stack Overflow用户
提问于 2016-07-01 15:04:36
回答 0查看 181关注 0票数 1

我有一个名为MyriadHebrew-Regular.otf的系统字体

我使用的是“斜杠”字符(代码47),但是我注意到Adobe After Effects使用的字体有点不同,我在FontCreator程序中检查了字体,发现可以使用默认的字符(47),或者它的本地化版本(显示为斜杠1),它位于字体字形的末尾,maps.Its字形索引为587。因此,我一直在尝试使用Harfbuzz访问本地化字形:

代码语言:javascript
复制
.......
 hb_buffer_t *m_hb_buffer = NULL;
 hb_font_t *m_hb_font = NULL;
 std::wstring str = L"שתץףך /";
 const wchar_t* text = str.data();
 hb_buffer_t *m_hb_buffer = hb_buffer_create();
 hb_buffer_set_direction(m_hb_buffer, HB_DIRECTION_RTL);
 hb_buffer_set_script(m_hb_buffer, HB_SCRIPT_HEBREW);
 hb_buffer_set_language(m_hb_buffer, hb_language_from_string("he", 2));
 hb_buffer_add_utf16(m_hb_buffer, (uint16_t*)text, -1, 0, -1);
 hb_feature_t ft;
 hb_feature_from_string("locl",-1, &ft); // ft.tag = 1819239276; ft.value = 1
 hb_shape(m_hb_font, m_hb_buffer,&ft, 1);
 hb_glyph_info_t *m_info = hb_buffer_get_glyph_infos(m_hb_buffer, NULL);
 FT_UInt glyph_index = m_info[0].codepoint; // glyph_index = 400 instead of localized glyph_index=587
.......

在这段代码中,我期望glyph_index = 587 (类似于Adobe aftereffect中的本地值),但实际上它仍然是400 (标准值)。

任何帮助都将不胜感激。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38139081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档