Récupérer le contenu d'un fichier bitmap dans une matrice [Résolu]

Signaler
Messages postés
4
Date d'inscription
vendredi 20 mai 2011
Statut
Membre
Dernière intervention
10 janvier 2012
-
Messages postés
4
Date d'inscription
vendredi 20 mai 2011
Statut
Membre
Dernière intervention
10 janvier 2012
-
salut tous
je veux récupérer le contenu d'un fichier bitmap dans une matrice comment je doit procéder
exemple: le fichier 1.bmp représente le chiffre 1 je veux que ma matrice soit récupérée comme suit:

0,0,0,1,0,
0,0,1,1,0,
0,0,0,1,0,
0,0,0,1,0,
0,0,0,1,0
et merci de votre passage et aide

4 réponses

Messages postés
4
Date d'inscription
vendredi 20 mai 2011
Statut
Membre
Dernière intervention
10 janvier 2012

Merci buno
Messages postés
14826
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
30 septembre 2020
92
Hello,
Jettes un coup d'oeil sur ma source, ça va sûrement t'aider...


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
4
Date d'inscription
vendredi 20 mai 2011
Statut
Membre
Dernière intervention
10 janvier 2012

salut
voila le code une autre fois

#include <stdio.h>
#include <stdlib.h>

typedef struct
{   //1-Entête du fichier
    char signature[2];//indique s'il s'agit d'un fichier BMP à l'aide des deux caractères BM sur 2 octets.
    int fileSize;//La taille totale du fichier en octets (sur 4 octets)
    int reserved;//Un champ réservé (sur 4 octets)
    int offset;//adresse relative du début des informations concernant l'image par rapport au début du fichier
    //2-Entête de l'image
    int taille;//La taille de l'entête de l'image en octets (codée sur 4 octets).
    int largeur;
    int hauteur;
    short nplans;//Cette valeur vaut toujours 1
    short nbits;//le nombre de bits utilisés pour coder la couleur
    int compression;//vaut 0 lorsque l'image n'est pas compressée
    int taille_img;//La taille totale de l'image en octets (sur 4 octets).
    int hRes;//résolution horizontale  nombre de pixels par mètre horizontalement
    int vRes;
    int nColor;
    int nImportantColor;

}bmpInfo;
void imageInfo(bmpInfo* img){
        printf("Signature :%c%c\n", img->signature[0], img->signature[1]);
        printf("taille totale du fichier %d\n",img->fileSize);
        printf("reservee %d\n",img->reserved);
        printf("decalage : %d\n",img->offset);
}

int main()
{
    FILE* fichier=NULL;
    bmpInfo *img=malloc(sizeof(bmpInfo));
    fichier=fopen("1.bmp","rb");
    if (fichier == NULL)
        printf ("Erreur a l'ouverture du fichier\n");
    else {
        printf ("Fichier bien ouvert !\n");
        fread(img,sizeof(bmpInfo),1,fichier);
        imageInfo(img);
        fclose(fichier);
    }
    return 0;
}


voila le résultat de l’exécution:

Fichier bien ouvert !
Signature :BM
taille totale du fichier 0
reservee 4063232
decalage : 2621440

le pb de taille et offset?
@++
Messages postés
14826
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
30 septembre 2020
92
C'est quoi la question?


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...