我需要一个剪辑区域,存在的几个(可能重叠)的矩形,但不知道如何创建一个与cairo。既然有
cairo_rectangle_list_t * cairo_copy_clip_rectangle_list (cairo_t *cr);
字符串我假设剪辑区域可以存在多个矩形(如果不存在,则不会返回矩形列表...)而且,cairo_rectangle_list_t是存在的--那么我肯定可以自己创建一个矩形列表......并从中创建剪辑区域吗?但怎么做呢?
cairo_rectangle_list_t
91zkwejq1#
只需创建一个由几个矩形组成的路径,并使用它进行剪辑。下面是一个有两个重叠矩形的示例,但它对更多矩形也同样有效。
的数据
#include <cairo.h> int main() { cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_RGB24, 100, 100); cairo_t *cr = cairo_create(s); cairo_set_source_rgb(cr, 1, 1, 1); cairo_rectangle(cr, 10, 10, 50, 50); cairo_rectangle(cr, 40, 40, 50, 50); cairo_clip(cr); cairo_paint(cr); cairo_surface_write_to_png(s, "out.png"); cairo_destroy(cr); cairo_surface_destroy(s); return 0; }
字符串
1条答案
按热度按时间91zkwejq1#
只需创建一个由几个矩形组成的路径,并使用它进行剪辑。下面是一个有两个重叠矩形的示例,但它对更多矩形也同样有效。
的数据
字符串