在Raspberry Pi上的C ++下使用Cairo,并尝试将文本图形剪切到给定的矩形内。
我以为它会像这样简单:
cairo_t* cp = cairo_create(psurface); // set font, etc cairo_rectangle(cp, 0, 0, 100, 100); // Desired clipping rect cairo_clip(cp); cairo_show_text(cp, "pretend that this string is > 100px wide"); cairo_destroy(cp);
,但始终不会显示任何文本。如果我省略对cairo_clip()的调用,则文本会出现(尽管未剪切)。
我只想截取字符串的最后几个字符。
诀窍是什么?
答案 0 :(得分:1)
为我工作。
#include <cairo.h>
int main()
{
cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_RGB24, 150, 50);
cairo_t *cr = cairo_create(s);
cairo_set_source_rgb(cr, 1, 0, 0);
cairo_paint(cr);
cairo_rectangle(cr, 0, 0, 100, 100);
cairo_clip(cr);
cairo_move_to(cr, 50, 25);
cairo_set_source_rgb(cr, 0, 0, 0);
cairo_show_text(cr, "pretend that this string is > 100px wide");
cairo_destroy(cr);
cairo_surface_write_to_png(s, "out.png");
cairo_surface_destroy(s);
return 0;
}