1

想不通,各位大神帮忙看看

我有原始的 cairo 表面srf及其上下文c

现在我正在创建另一个表面shadow并将其叠加在前一个表面上

cairo_t *cr = c;
cairo_surface_t *shadow = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
c=cairo_create(shadow);
draw_rounded_rect(c, x_o+offset, y_o+offset, width, height, radius_int, 1, 1);
cairo_set_source_rgba(c, 0, 0, 0, 1);
cairo_fill(c);

blur_image_surface(shadow,10);
cairo_set_source_surface(cr,shadow,x,y);
cairo_paint(cr);
cairo_surface_destroy(shadow);
c=cr;

我使用的模糊算法来自官方 cairo doc here,它单独工作

叠加也很完美,但表面一点也不模糊

4

0 回答 0