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
Ayla_21
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; }![]()
Partager