Bonjour tout le monde !


après des jours et des jours de bataille acharnée avec la librairie Jpeg, j'ai réussi à l'installer et à débugger quelques lignes de codes.

Le souci c'est que là je n'ai plus de solutions : j'ai un bug jamais rencontré (mais bon étant débutante en programmation, c'est pas difficile) :

Le débugger me dit "User Breakpoint called from code at 0x7c91123"
Ce bug apparaît à la ligne : "jpeg_finish_decompress(&cinfo);"


Et là je ne vois pas du tout ce que cela peut signifie:

Est-ce un problème de mémoire ou un problème de configuration du débugger??
Quelqu'un aurait-il une idée à me suggérer?

Merci

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
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
 
int main (char *photo_jpg)
{
cMatrice_Photo rvb;
 struct jpeg_decompress_struct cinfo;
 struct jpeg_error_mgr jerr;
 unsigned char *image;
 FILE *photo; // descripteur de fichier.
 unsigned char *ligne;
int i3,j3; // utilisées lors des boucles.
fprintf(stderr, "Usage : %s fichier.jpg\n\n");  
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
 
 photo = fopen("photo_jpg.jpg","rb");   
 if(!photo)
 { cout << "Chargement du Fichier échoué"<< endl; return 1;}
 
jpeg_stdio_src(&cinfo, photo);
 jpeg_read_header(&cinfo, TRUE);
 
 // obtention des dimensions de l'image.
 int width = cinfo.image_width;
 int height = cinfo.image_height;
 
 // allocation de mémoire pour le stockage des pixels en mémoire.
 image = (unsigned char*) malloc (width * height * sizeof(unsigned char));
 
jpeg_start_decompress(&cinfo);
ligne=image;
 
while (cinfo.output_scanline<cinfo.output_height)
{
      ligne=image + width * cinfo.output_scanline;
      jpeg_read_scanlines(&cinfo,&ligne,1);
 
 }
 
 jpeg_finish_decompress(&cinfo);
 jpeg_destroy_decompress(&cinfo);
 
 // passe dans chaque colonne de pixels (...)  
 for (i3=0;i3<256;i3++)
    // (...) puis par ligne
{
    for (j3=0;j3<256;j3++)
{  // on récupère les valeurs des couleurs RVB (...)
      int color_r = image[i3*256*3+j3*3];
      int color_v = image[i3*256*3+j3*3+1];
      int color_b = image[i3*256*3+j3*3+2];
 
       rvb.I = i3 +1;
       rvb.J = j3 + 1;
      rvb.R = color_r;
      rvb.V = color_v;
      rvb.B = color_b;
     LMatrice_Photo.push_back(rvb);  
 
   }//for j
 };//for i
 fclose (photo);
 
return 0; }
Ayla_21