gpt4 book ai didi

c++ - 我如何使用 libraqm 通过 FreeType2 呈现正确的字形(阿拉伯语)?

转载 作者:行者123 更新时间:2023-11-30 04:42:40 26 4
gpt4 key购买 nike

我一直在使用 FreeType2 通过 OpenGL 按文本渲染,但现在我需要渲染更复杂的阿拉伯语,所以我安装了 libraqm帮助,我已经构建并运行了 example code它向我展示了如何获取每个字符的字形索引、偏移、前进和簇。

我需要知道的是如何获取字形的图像。

在 FreeType2 中,我一直在使用 FT_Render_Glyph(),它需要一个 FT_GlyphSlot 和一个 FT_RenderMode,然后我从中获取位图FT_GlyphSlot.

但是因为我有一个 unsigned int 作为来自 libraqm 的字形索引,我不确定如何获得正确的字形位图...

我也尝试过手动设置 FT_GlyphSlot,例如:ftGlyphSlot->glyph_index = glyphs[i].index; 在调用 FT_Render_Glyph() 之前,但是没有完全呈现文本。

顺便说一句,我已经设法用阿拉伯字体渲染阿拉伯文本,但目前它是从左到右书写的,而且大部分字形都是错误的。我很确定只要我能得到正确的字形图像,我就能解决从右到左和字形连接问题。

最佳答案

整形引擎和字形渲染引擎之间存在分工。 Shaping (libraqm) 告诉你你想要什么字形以及把它放在哪里。渲染告诉你它的样子。

因此,您已经从 libraqm 获得了字形选择和定位信息。这是第一步。第二步在一定程度上取决于您要渲染的 Canvas 类型,但基本思想是您现在可以(使用 freetype)通过 ID 从字体中选择字形:

FT_Load_Glyph( face, glyph_index, FT_LOAD_DEFAULT );

然后您可以像往常一样获取它的位图,并将其放置在 Canvas 上 libraqm 告诉您放置它的位置。

关于c++ - 我如何使用 libraqm 通过 FreeType2 呈现正确的字形(阿拉伯语)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58647389/

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