我在旋转矩阵下遇到Pango渲染问题。我正在尝试绘制一个标签(见下面的代码),该标签发生在动画开罗矩阵旋转中。
随着标签旋转,文字抖动,似乎在重量上增长和缩小,在对角线角度变得最厚,在垂直角度变薄。看到这个比较:
我希望旋转的文本生成好像它只是旋转形状路径,而不是试图根据角度改变文本的外观。关于我如何做到这一点的任何想法?
谢谢, 肖恩
//Draw text with Pango
PangoLayout *layout;
PangoFontDescription *desc;
// pCr is the cairomm context ptr.
// pCr->cobj() is the underlying C Cairo context ptr.
pCr->set_source_rgb(0.0, 0.0, 1.0);
layout = pango_cairo_create_layout(pCr->cobj());
// text is the label string
pango_layout_set_text(layout, text.c_str(), -1);
desc = pango_font_description_from_string("Sans Bold 12");
pango_layout_set_font_description(layout, desc);
pango_cairo_layout_path(pCr->cobj(), layout);
pCr->fill();
pango_font_description_free(desc);
g_object_unref(layout);
答案 0 :(得分:0)
我只能用Python而不是C来使用Cairo和Pango,但我的第一个猜测就是修补ANTIALIAS:
pCr.set_antialias(cairo.ANTIALIAS_DEFAULT)
(这是python的语法,而不是C)
您可以尝试cairo.ANTIALIAS_SUBPIXEL
或cairo.ANTIALIAS_NONE
查看是否存在差异。
另外,我在你的代码中找不到任何旋转,但是你可能在渲染后旋转文本,首先应该执行旋转,然后渲染(像素化)文本(矢量路径)。
希望它有所帮助。