Bonjour à tous je vous explique ce que j'essaye de faire.
J'aimerais récupérer les valeurs d'une image que je dessine sur paint (cette image n'est constitué que de pixel noir et blanc et j'utilise le format bitmap 24bits. Je pensais que cela serait simple deux boucles for et un tableau de int que je rempli. Mais j'ai remarqué que les premières valeurs que je récupère ne correspondent pas aux pixels de mon image. Je ne sais pas si c'est à cause de l'encodage sur bitmap car je ne le connais pas très bien.
Bref voici mon code qui me permet de d'ouvrir mon image bitmap et d'afficher la valeur de chaque pixel. Initialement c'est une image de 10*10 pixel mais j'ai remarqué que lorsque je rentre 10 et 10 dans mes boucles for comme dimension la totalité de mes pixels n'est pas retourné.
et voici ce que donne l'exécution
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 FILE* fichier=NULL; fichier = fopen("image.bmp", "r"); if (fichier == NULL) { cout << "Erreur fichier image" << endl; } int* tab_image; tab_image = new int[10*10]; for (int i = 0; i <20; i++) { for (int j = 0; j < 20; j++) { *(tab_image + i * 10 + j) = fgetc(fichier); cout << *(tab_image + i * 10 + j)<<"-";// << "-----" << i * 40 + j << endl; } cout << endl; } fclose(fichier);
je ne comprend pas a quoi peux correspondre les 66-77 etc du début sachant que mon paint ne contient que 6 pixels noirs et le reste en blanc.
Si quelqu'un peut m'indiquer comment fonctionne le format bitmap cela m'aiderait beaucoup! ou encore si c'est possible de le faire plus facilement en mettant l'image en format png ou jpeg mais d'après ce que j'ai lu ces format sont plus compliqué à traiter.
Merci pour toute aide que vous m'apporterez!
Partager