【发布时间】:2016-08-10 10:16:43
【问题描述】:
我的系统只有 freetype2 和 cairo 库可用。我想要实现的是:
- 获取 UTF-8 文本的字形
- 布局文本,存储位置信息(我自己)
- 获取每个字形的 cairo 路径以进行渲染
不幸的是,文档并没有真正解释应该如何完成,因为他们希望使用像 Pango 这样的更高级别的库。
我认为可能是正确的:使用cairo_scaled_font_create 创建一个缩放字体,然后使用cairo_scaled_font_text_to_glyphs 检索文本的字形。 cairo_glyph_extents 然后给出每个字形的范围。但是我怎样才能得到像字距调整和提前这样的东西呢?另外,我怎样才能获得每种字体的路径?
关于这个主题还有更多资源吗?这些功能是预期的方式吗?
【问题讨论】:
-
你看过this Cairo doc page吗?我从来没有在开罗使用过 FreeType,所以我不知道这是否是关键,但如果它解决了你的问题,我可以发布作为答案。
-
本页介绍了如何使用 freetype 字体创建
cairo_font_face_t。然后,您可以使用此字体创建缩放字体。从那里开始的路还不清楚。 -
然后您可以使用 Cairo 的文本功能来使用您的 FreeType
cairo_font_face_t,对文本进行布局和渲染。不推荐;有关 Pango 的使用,请参阅 the Cairo page。不过它应该可以工作,因为你也不能使用 Pango。为什么机器没有其他可用的库? -
嗯,是的 - 但他们主要解释所谓的“玩具文本 API” - 我想使用字形 API,但找不到有关如何正确使用它来获取字形布局信息的正确信息和渲染。用于我的操作系统项目 Ghost OS (ghostkernel.org) 的窗口管理器;移植 Pango 带来了相当多的依赖项,我不愿意移植(fontconfig...)只是为了获得布局功能。我以前用plain freetype的布局很好,所以一定有办法。
-
也就是说,您想使用 FreeType 创建一个
FT_Bitmap,然后将位图应用到您的 Cairo 表面?
标签: c fonts cairo freetype text-rendering