Salut tout le monde :(
je veux récupérer la matrice d'une image en c sans utiliser la bib. SDL car je veux implémenter ce code sur un processeur VLIW en utilisant l'outil Trimaran
Aidez moi je suis bloquée...:piou: :piou: :piou:
Merci.
Version imprimable
Salut tout le monde :(
je veux récupérer la matrice d'une image en c sans utiliser la bib. SDL car je veux implémenter ce code sur un processeur VLIW en utilisant l'outil Trimaran
Aidez moi je suis bloquée...:piou: :piou: :piou:
Merci.
Si tu veux lire une image depuis un fichier de manière simple sans utiliser de bibliothèque tu dois également utiliser un format de fichier simple pour ton image, comme par exemple le format de fichier PPM P6 ([ame=http://en.wikipedia.org/wiki/Netpbm_format]Netpbm format[/ame]).
Ce format est très simple: une entête ascii avec plusieurs lignes, première ligne la chaine "P6", la deuxième ligne contient 2 int écrits en ascii qui donnent les dimentions de l'image, la troisème ligne doit être "255" indiquant que l'on est en profondeur de couleur 8 bits, tous ce qui suit est alors l'équivalent de ce qui va être en mémoire, donc il suffit de le lire avec fread() comme tu peux le voir sur cette page :
http://rosettacode.org/wiki/Bitmap/Read_a_PPM_file#C
Ou tout simplement, le sauver en RAW sur une machine ayant les capacités pour le faire... Il n'y a ensuite plus qu'à lire bourrinement le fichier directement dans une matrice C.
Si le format de l'image t'es imposé, par contre, il va falloir nous le donner (savoir si son format est public ou pas), et donner approximativement la puissance CPU et les ressources disponibles sur ta machine cible (afin de savoir si ça n'est pas "mission impossible").
Bonjour tout le monde,
J'ai essayé ce code mais je trouve pas de résultats:(:(:(
Code:
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 #include <stdlib.h> #include <stdio.h> typedef struct { unsigned char **donnees; int hauteur; int largeur; int magicNumber; } structImg; int main(int argc ,char **argv) { structImg image; int i; int pixel; FILE* fpInput =fopen("1.bmp","r"); image.donnees=(unsigned char**)calloc(image.hauteur,sizeof(unsigned char*)); *image.donnees=(unsigned char*)calloc(image.hauteur*image.largeur,sizeof(unsigned char)); for(i=1;i<image.hauteur;i++) image.donnees[i] = image.donnees[i-1] + image.largeur; for(i=0;i<image.hauteur*image.largeur;i++) { fscanf(fpInput,"%d",&pixel); image.donnees[i/image.largeur][i%image.largeur]=(unsigned char)pixel; } for(i=0;i<image.hauteur*image.largeur;i++) { printf("%s\n", **image.donnees); } system("pause"); return 0; }
D'après ton code, il semblerait que l'image soit au format bmp.Code:FILE* fpInput =fopen("1.bmp","r");
Il faut que tu consultes les spécifications de ce format. Tu les trouveras, par exemple, sur ce site
Merci bien pour tes aides:D:D