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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| #include <stdlib.h>
#include <gtk/gtk.h>
void on_click_button_red(GtkButton *button, gpointer user_data);
gboolean gdkpixbuf_set_pixel_color(GdkPixbuf *pixbuf, gint x, gint y, guchar red, guchar green, guchar blue);
void
on_click_button_red(GtkButton *button, gpointer user_data){
GtkBuilder *builder = NULL;
GtkBuilder *builder = (GtkBuilder*)user_data;
GdkPixbuf *gdk_pixbuf = NULL;
GtkImage *image1=NULL;
GtkWidget *window1 = NULL;
int w,h,x,y = 0;
guchar *r = 0;
guchar *g = 0;
guchar *b = 0;
if (gtk_builder_add_from_file(builder, "projet.glade", NULL) == 0) {};
window1 = GTK_WIDGET(gtk_builder_get_object(builder, "window1"));
image1 = GTK_IMAGE(gtk_builder_get_object(builder, "image1"));
gdk_pixbuf = gdk_pixbuf_new_from_file("image.png", NULL);
w = gdk_pixbuf_get_width(gdk_pixbuf);
h = gdk_pixbuf_get_height(gdk_pixbuf);
for (x = 0; x <= w; x++) {
for (y=0; y <= h; y++) {
/* passage en rouge*/
gdkpixbuf_set_pixel_color(gdk_pixbuf, x, y, 255, 0, 0);
}
}
/* Ici tu écrases le pointeur image1 de ta fenêtre principale par un nouveau pointeur qui ne sera donc pas affiché. Ligne à supprimer. */
image1 = GTK_IMAGE(gtk_image_new_from_pixbuf(gdk_pixbuf));
gtk_image_set_from_pixbuf(image1, gdk_pixbuf);
g_object_unref (gdk_pixbuf);
gtk_widget_queue_draw(GTK_WIDGET(image1));
gtk_widget_show_all(window1);
}
gboolean
gdkpixbuf_set_pixel_color(GdkPixbuf *pixbuf, gint x, gint y, guchar red, guchar green, guchar blue) {
return TRUE;
}
int
main(int argc, char *argv[]) {
GtkWidget *window1 = NULL;
GtkBuilder *builder = NULL;
GtkImage *image1;
GdkPixbuf *gdk_pixbuf = NULL;
gtk_init(&argc, &argv);
builder = gtk_builder_new();
if (gtk_builder_add_from_file(builder, "projet.glade", NULL) == 0) {
fprintf(stderr, "Erreur ouverture fichier GLADE\n");
exit(EXIT_FAILURE);
}
window1 = GTK_WIDGET(gtk_builder_get_object(builder, "window1"));
gtk_window_set_default_size(GTK_WINDOW(window1), 1920, 1080);
image1 = GTK_IMAGE(gtk_builder_get_object(builder, "image1"));
gdk_pixbuf = gdk_pixbuf_new_from_file("image.png", NULL);
gtk_builder_connect_signals(builder, builder);
gtk_image_set_from_pixbuf(image1, gdk_pixbuf);
gtk_widget_queue_draw(GTK_WIDGET(image1));
g_object_unref (gdk_pixbuf);
gtk_widget_show_all(window1);
gtk_main();
g_object_unref(G_OBJECT(builder));
return 0;
} |
Partager