Bonjour à tous,

TEST 1 :
J'éssaye de déclarer un pixmap et de tracer un rectangle sur celui-ci. Or à l'exécution, le programme retourne l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
(visu_detou:27739): Gdk-CRITICAL **: gdk_draw_rectangle: assertion `GDK_IS_DRAWABLE (drawable)' failed
t_chemin_images : /home/julien/Edres-svn/tools/aaaImg/
Voici le code :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
          GdkPixmap *pix_masque;
	  pix_masque  =  gdk_pixmap_new(ps_Struct->p_window,
				400,
				300,-1);
           GdkGC *gc;
           gc = gdk_gc_new(ps_Struct->p_image[i]->window);
           gdk_draw_rectangle(pix_masque, gc, TRUE,0,0,60,60);
J'ai également éssayé de récuperer le pixbuf d'une image existante et tracer dessus :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
pix_masque = gtk_image_get_pixbuf(ps_Struct->p_image[i]);
Voila, je pense que je n'ai pas encore compri très bien le mécanisme de dessin avec GTK, Merci de m'éclairer.



TEST 2:

Je met mon pix buf dans un pix map pour le manipuler effectuer un traitement.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
          // Chargement du pixbuf
           pix_buf = gtk_image_get_pixbuf(ps_Struct->p_image[i]);
 
           // Creation pixmap
    pix_map=gdk_pixmap_new(ps_Struct->p_window,
                               gdk_pixbuf_get_width(pix_buf),
                               gdk_pixbuf_get_height(pix_buf),
                               gdk_visual_get_system()->depth);
 
    // Insertion du pixbuf dans le pixmap
    gdk_draw_pixbuf(pix_map, ps_Struct->p_window->style->fg_gc[GTK_WIDGET_STATE ( ps_Struct->p_window)],
                    pix_buf,0,0,0,0,
                    gdk_pixbuf_get_width(pix_buf),
                    gdk_pixbuf_get_height(pix_buf),
                    gdk_visual_get_system()->depth,0,0); 
 
// Sauvegarde du pixbuf
  if( !gdk_pixbuf_save(pix_map, c_chemin_complet, "jpeg", (GError **) NULL, "quality", "100", NULL) )
	{
            printf("Erreur save pixbuf\n");
        }
Marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
(visu_detou:31537): Gdk-CRITICAL **: gdk_draw_pixbuf: assertion `GDK_IS_PIXBUF (pixbuf)' failed
 
(visu_detou:31537): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
 
(visu_detou:31537): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
 
(visu_detou:31537): Gdk-CRITICAL **: gdk_draw_pixbuf: assertion `GDK_IS_PIXBUF (pixbuf)' failed
Julien.