1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| void cb_image_annotate(GtkImageViewer *imgv, GdkPixbuf *pixbuf, gint shift_x, gint shift_y, gdouble scale_x, gdouble scale_y, gpointer user_data)
{
int img_width = gdk_pixbuf_get_width(pixbuf);
int img_height = gdk_pixbuf_get_height(pixbuf);
cairo_surface_t *surface = cairo_image_surface_create_for_data(gdk_pixbuf_get_pixels(pixbuf), CAIRO_FORMAT_RGB24, img_width, img_height, gdk_pixbuf_get_rowstride(pixbuf));
cairo_t *cr = cairo_create (surface);
cairo_translate(cr, -shift_x, -shift_y);
cairo_scale(cr, scale_x, scale_y);
cairo_set_source_rgba (cr, 0,0,1.0,0.6);
cairo_set_line_width(cr, 3);
struct node_point *p_node = header.first;
while(p_node)
{
cairo_arc(cr, p_node->current.x, p_node->current.y, 12, 0.0, 2*G_PI);
cairo_stroke(cr);
p_node = p_node->next;
}
cairo_surface_destroy(surface);
cairo_destroy(cr);
(void)imgv;
(void)user_data;
} |
Partager