Dessin dans Drawing Area gtk+ sous linux - C - Programmation
Marsh Posté le 05-12-2010 à 09:42:37
Tu peux essayer de trouver avec Debug.
Je n'y pense jamais pour ma par.
Marsh Posté le 05-12-2010 à 11:52:32
Bonjour,
D'après google, il y a plusieurs type d'erreur glibc "detected", de laquelle s'agit il?
Sinon pour tes couleurs pourquoi tu les multiplie toutes par 255?
Marsh Posté le 05-12-2010 à 13:39:17
Merci pour les réponses.
Pour les couleurs, il me semble que gtk travail entre 0 et 65535. Mon image est codée sur 8 bits par couleurs.
Pour le reste, voici le message d'erreur généré par la console:
*** glibc detected *** /home/alaur/Documents/Programme C/TP5/Traitement image/bin/Debug/Traitement image: malloc(): memory corruption: 0xb771f008
Je précise que je travail avec Code::blocks.
PS: le code se compile et s'exécute. L'erreur survient donc à l'exécution.
Marsh Posté le 05-12-2010 à 13:52:32
ReplyMarsh Posté le 05-12-2010 à 14:32:30
GrosBocdel a écrit : tu crées un graphic context pour chaque pixel de ton image |
Tu pourrais préciser un peu ton propos STP? C'est ma première interface graphique avec gtk...
J'ai pas encore appréhendé tous les concepts de gtk.
Marsh Posté le 05-12-2010 à 14:34:48
amaury10 a écrit : |
sors
gc = gdk_gc_new(GDK_DRAWABLE (image));
de tes boucles. C'est à faire une seule fois.
Marsh Posté le 06-12-2010 à 07:42:45
GrosBocdel a écrit : |
Salut,
C'est fait, mais le problème persiste...
Marsh Posté le 06-12-2010 à 10:17:23
amaury10 a écrit : |
Si tu l'as bien mis avant tes deux boucles, je ne vois rien de plus que je puisse faire sans compiler le truc complet!
Eventuellement place des printf("toto\n" ); un peu partout, ça peut t'aider à savoir quelle ligne provoque le truc, même si avec les ihm ça marche pas toujours.
edit je dis une bétise: il me semble que les fonctions du style gtk_main() doivent se trouver dans ton main()
Marsh Posté le 06-12-2010 à 18:38:06
Merci d'essayer de m'aider. J'ai déplacer le gtk_main() dans le main. Sa ne marche toujours pas.
Je vais donc écrire un petit programme en python qui affiche l'image avec TKinter...
Marsh Posté le 06-12-2010 à 19:08:24
Ça sent le buffer overflow ton problème, plus que certainement dû à ta fonction de lecture d'image.
Pourrait-on avoir la définition du type Timage (voire tout le fichier lib_image.h si ce n'est pas trop long) ?
Marsh Posté le 06-12-2010 à 19:12:14
tpierron a écrit : Ça sent le buffer overflow ton problème, plus que certainement dû à ta fonction de lecture d'image. |
Il y a ça aussi qui est louche:
gdk_draw_point(&image,gc, j, i);
image est déjà un pointeur.
Je passe mon tour sinon on va corriger les corrections de corrections pendant des heures
Marsh Posté le 05-12-2010 à 08:55:31
Bonjour à tous,
Dans l'optique d'afficher une image au format ppm, je doit remplir une drawing area pixels par pixels.
J'ai donc écrit un morceau de code qui lit l'image et la stocke dans une variable.
Le problème survient à l'affichage: J'ai une erreur *** glibc detected ***
Voici le programme incriminé:
A priori, seule la fonction Affiche_Image génère une erreur...
Si quelqu'un peut m'aider à résoudre se problème, merci d'avance.
---------------
LAURENT Amaury, Etudiant Ingénieur - Instrumentation Automatique Informatique