begin process at 2012 05 27 17:57:52
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichiers / Disque

 > PROPRIÉTÉS D'UN FICHIER BMP

PROPRIÉTÉS D'UN FICHIER BMP


 Description

ce code permet de lire quelques propriétés d un fichier BMP comme la resolution, le mode de compression, le nombre de couleurs, la taille de l image
compilé sous borland 6
ps: quelqu un peut me dire pourquoi le programme ne marche pas que je le compile sous devc++ ? merci

Source

  • //---------------------------------------------------------------------------
  • #pragma hdrstop
  • //---------------------------------------------------------------------------
  • #pragma argsused
  • #include <fstream.h>
  • #include <stdlib.h>
  • #include <iostream>
  • using namespace std;
  • int main(int argc, char* argv[])
  • {
  • ifstream image;
  • unsigned long taille,largeur,hauteur,compression;
  • unsigned short couleur;
  • image.open(argv[1],ios::binary); //le chemin de l image est le premier parametre reçu
  • if(image.good())
  • {
  • image.seekg(0x12,ios::beg);
  • image.read((char *)&largeur,sizeof(largeur));
  • image.seekg(0x16,ios::beg);
  • image.read((char *)&hauteur,sizeof(hauteur));
  • image.seekg(0x22,ios::beg);
  • image.read((char *)&taille,sizeof(taille));
  • image.seekg(0x1C,ios::beg);
  • image.read((char *)&couleur,sizeof(couleur));
  • image.seekg(0x1E,ios::beg);
  • image.read((char *)&compression,sizeof(compression));
  • cout<<"Largeur: "<<largeur<<" pixels."<<endl;
  • cout<<"Hauteur: "<<hauteur<<" pixels."<<endl;
  • cout<<"Taille: "<<taille<<" octets."<<endl;
  • switch(couleur)
  • {
  • case 1: cout<<"Couleur: Monochrome."<<endl; break;
  • case 4: cout<<"Couleur: 16 couleurs."<<endl; break;
  • case 8: cout<<"Couleur: 256 couleurs."<<endl; break;
  • case 24: cout<<"Couleur: 16M couleurs."<<endl; break;
  • }
  • switch(compression)
  • {
  • case 0: cout<<"Compression: non compressee."<<endl; break;
  • case 1: cout<<"Compression: compresse a 8 bits par pixel (RLE8)."<<endl; break;
  • case 2: cout<<"Compression: compresse a 4 bits par pixel (RLE4)."<<endl; break;
  • }
  • image.close();
  • }
  • else
  • {
  • cerr<<"Erreur d'ouverture du fichier"<<endl;
  • }
  • system("PAUSE");
  • return 0;
  • }
  • //---------------------------------------------------------------------------
//---------------------------------------------------------------------------

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
#include <fstream.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
        ifstream image;
        unsigned long taille,largeur,hauteur,compression;
        unsigned short couleur;
        image.open(argv[1],ios::binary);    //le chemin de l image est le premier parametre reçu
        if(image.good())
        {
        image.seekg(0x12,ios::beg);
        image.read((char *)&largeur,sizeof(largeur));
        image.seekg(0x16,ios::beg);
        image.read((char *)&hauteur,sizeof(hauteur));
        image.seekg(0x22,ios::beg);
        image.read((char *)&taille,sizeof(taille));
        image.seekg(0x1C,ios::beg);
        image.read((char *)&couleur,sizeof(couleur));
        image.seekg(0x1E,ios::beg);
        image.read((char *)&compression,sizeof(compression));
        cout<<"Largeur: "<<largeur<<" pixels."<<endl;
        cout<<"Hauteur: "<<hauteur<<" pixels."<<endl;
        cout<<"Taille: "<<taille<<" octets."<<endl;
        switch(couleur)
        {
        case 1: cout<<"Couleur: Monochrome."<<endl; break;
        case 4: cout<<"Couleur: 16 couleurs."<<endl; break;
        case 8: cout<<"Couleur: 256 couleurs."<<endl; break;
        case 24: cout<<"Couleur: 16M couleurs."<<endl; break;
        }
        switch(compression)
        {
        case 0: cout<<"Compression: non compressee."<<endl; break;
        case 1: cout<<"Compression: compresse a 8 bits par pixel (RLE8)."<<endl; break;
        case 2: cout<<"Compression: compresse a 4 bits par pixel (RLE4)."<<endl; break;
        }
        image.close();
        }
        else
        {
        cerr<<"Erreur d'ouverture du fichier"<<endl;
        }
        system("PAUSE");
        return 0;
}
//---------------------------------------------------------------------------
 

 Conclusion

il suffit de glisser le fichier .bmp sur l executable


 Sources du même auteur

CLASSE FILE UTILISANT UN TABLEAU
CLASSE PILE UTILISANT UN TABLEAU
VOIE PARALLELE COUPLEUR MC 68230 IMPRIMANTE SOUS LINUX
CALCUL PUISSANCE PAR FONCTION RECURSIVE
CALCUL FACTORIEL PAR FONCTION RECURSIVE

 Sources de la même categorie

COMPTER LE NOMBRE DE PAGES D'UN FICHIER PDF par Renfield
Source avec Zip Source avec une capture GENERE BMP par lajouad
Source avec Zip Source avec une capture GETIONNAIRE D'UNE BIBLIOTHÉQUE EN C par benzarabel
FONCTION D'ÉDITION DE FICHIER BIT À BIT [C-MULTIPLATEFORME] par lynxtyle
Source avec Zip Source avec une capture UN GESTIONNAIRE DU FICHIER par benzarabel

Commentaires et avis

Commentaire de morgandetoi06 le 18/12/2003 21:44:28

en fait quand je compile le programme sous dev c++ , le programme me sort des valeurs fausses :( quelqu un peut me dire comment resoudre le probleme ? merci d avance

Commentaire de exar le 05/02/2004 19:02:42

J'ai exactement le même problème avec la manipulation des BMP avec Dev-C++...
Aucune idée, hélas...

Commentaire de victorcoasne le 21/03/2005 19:13:52

#include <fstream>
#include <stdlib.h>
#include <iostream>
/********************
Adapté pour Dev-C++ par victorc
*********************/
using namespace std;
int main(int argc, char* argv[])
{
        ifstream image;
        unsigned long taille,largeur,hauteur,compression;
        unsigned short couleur;
        image.open(argv[1],ios::binary);    //le chemin de l image est le premier parametre reçu
        if(image.good())
        {
        image.seekg(0x12,ios::beg);
        image.read((char *)&largeur,sizeof(largeur));
        image.seekg(0x16,ios::beg);
        image.read((char *)&hauteur,sizeof(hauteur));
        image.seekg(0x22,ios::beg);
        image.read((char *)&taille,sizeof(taille));
        image.seekg(0x1C,ios::beg);
        image.read((char *)&couleur,sizeof(couleur));
        image.seekg(0x1E,ios::beg);
        image.read((char *)&compression,sizeof(compression));
        cout<<"Largeur: "<<largeur<<" pixels."<<endl;
        cout<<"Hauteur: "<<hauteur<<" pixels."<<endl;
        cout<<"Taille: "<<taille<<" octets."<<endl;
        switch(couleur)
        {
        case 1: cout<<"Couleur: Monochrome."<<endl; break;
        case 4: cout<<"Couleur: 16 couleurs."<<endl; break;
        case 8: cout<<"Couleur: 256 couleurs."<<endl; break;
        case 24: cout<<"Couleur: 16M couleurs."<<endl; break;
        }
        switch(compression)
        {
        case 0: cout<<"Compression: non compressee."<<endl; break;
        case 1: cout<<"Compression: compresse a 8 bits par pixel (RLE8)."<<endl; break;
        case 2: cout<<"Compression: compresse a 4 bits par pixel (RLE4)."<<endl; break;
        }
        image.close();
        }
        else
        {
        cerr<<"Erreur d'ouverture du fichier"<<endl;
        }
        system("PAUSE");
        return 0;
}

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales