How to draw an image with rounded corners in Cairo / SCC?

How to draw an image with rounded corners in Cairo / SCC? In any language.

+4
source share
1 answer

Well, that’s very simple. Here is the vala code:

private void draw_rounded_path(Context ctx, double x, double y, double width, double height, double radius) { double degrees = M_PI / 180.0; ctx.new_sub_path(); ctx.arc(x + width - radius, y + radius, radius, -90 * degrees, 0 * degrees); ctx.arc(x + width - radius, y + height - radius, radius, 0 * degrees, 90 * degrees); ctx.arc(x + radius, y + height - radius, radius, 90 * degrees, 180 * degrees); ctx.arc(x + radius, y + radius, radius, 180 * degrees, 270 * degrees); ctx.close_path(); } 

and example expose_event:

 public override bool expose_event(Gdk.EventExpose event) { //base.expose_event(event); Context ctx = Gdk.cairo_create(this.window); draw_rounded_path(ctx, allocation.x, allocation.y, allocation.width, allocation.height, 5); if(pixbuf != null) { Gdk.cairo_set_source_pixbuf(ctx, pixbuf, allocation.x, allocation.y); ctx.clip(); } ctx.paint(); return false; } 
+7
source

All Articles