begin process at 2012 05 29 21:06:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

probleme lecture fichier bitmap (valeur 255 qui apparait)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme lecture fichier bitmap (valeur 255 qui apparait)

mercredi 3 novembre 2004 à 03:16:01 | probleme lecture fichier bitmap (valeur 255 qui apparait)

nico3fr

Je suis désespéré et au bord du suicide, donc je pense être dans la bonne section.

A part ca, je vais essayer de pas trop jouer mon boulet. Je suis pas vraiment un pro de l'informatique et j'aimerais juste pouvoir lire les octets d'un fichier bitmap.

J'ai bien étudié la norme bitmap, j'arrive a bien lire le header, à réccupérer les premières données, mais voila, après quelques lignes de lecture les données lues ne sont plus du tout les bonnes, je ne lis plus que des valeurs 255 qui ne sont absolument pas présente dans l'image (j'ai vérifié ca avec un éditeur hexadécimal). Enfin, je vais pas trop m'attarder dans la description du problème et je vais laisser quelques "pros" du language C jeté un coup d'oeil à ce que j'ai écrit comme programme et j'espère que quelqu'un saura trouver une solution à mon probleme.

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

int main()
{
#define nom "C:\\Projet\\bitmap\\test.bmp"
#define mode "r"

FILE *fichier;

int i, j;
int largeur_image, hauteur_image, offset, compteur = 0;
unsigned char pixel;

fichier = fopen(nom, mode);
printf("Nom de l'image : %s", nom);
fseek(fichier, 10, SEEK_SET); //offset de position des premières données

offset = fgetc(fichier) + fgetc(fichier) * 256 + fgetc(fichier) * 65536 + fgetc(fichier) * 16777216;

printf("\nOffset de l'image = %d", offset);
fseek(fichier, 18, SEEK_SET); //largeur de l'image

largeur_image = fgetc(fichier) + fgetc(fichier) * 256 + fgetc(fichier) * 65536 + fgetc(fichier) * 16777216;

printf("\nLargeur de l'image = %d", largeur_image);

hauteur_image = fgetc(fichier) + fgetc(fichier) * 256 + fgetc(fichier) * 65536 + fgetc(fichier) * 16777216;

printf("\nHauteur de l'image = %d", hauteur_image);
fseek(fichier, offset, SEEK_SET); //debut des premières données

compteur = 0;
for(i=0; i<hauteur_image; i++)
{
for(j=0;j<largeur_image;j++)
{
pixel = fgetc(fichier);
if (pixel == 255)
{
compteur++;
}
}
}

fclose(fichier);
printf("\n\nValeur 255 apparait %d fois !!", compteur);
getch();
}


Voila donc mon code et en mettant une image 1024*768, 8 bits (256 nuances de gris) j'arrive à bien lire le header de l'image, et j'arrive à bien lire les premières ligne de données de l'image, mais arrivé à un certain moment (au 10.601 ème pixel sur mon image) je n'arrive plus à lire que des 255 comme valeur.

Je ne sais pas d'ou viennent ses données qui finissent de remplir mon fichier.

Merci d'avance à toute personne pouvant m'aider à résoudre ce probleme.
mercredi 3 novembre 2004 à 08:51:08 | Re : probleme lecture fichier bitmap (valeur 255 qui apparait)

ymca2003

Réponse acceptée !
il faut l'ouvrir en mode binaire
=> #define mode "rb"
mercredi 3 novembre 2004 à 12:21:37 | Re : probleme lecture fichier bitmap (valeur 255 qui apparait)

nico3fr

ah ben je me doutais bien que ca devait être un truc a la con, merci bien pour ta réponse ;)


Cette discussion est classée dans : fichier, données, image, bitmap, fgetc


Répondre à ce message

Sujets en rapport avec ce message

comment inserer des données dans un exe [ par vdox05 ] Bonjour,J' aimerais inserer les données d' un fichier image à l' interieur d' un executable.En fait il faudrait qu' il y ait deux fichiers à l' interi inserer une image dans un fichier word... [ par nebucad ] bonjour en premier lieu merci a vieuxLion et Gaëlle pour leur aide concernant mon probleme d'impression les deux ont marché...J'aimerai savoir s' il é Acquisition de Données a partir d'un fichier texte [ par madcow41 ] 'lutBon j'ai un fichier qui contient des lignes formées ainsi :123.145.569.188 - - [12/Apr/2001:00:08:49 +0200] "GET /pagehtml.htm HTTP/1.x" et le res fichier:Pb récuperation données [ par jagxx ] Bonjour,kan je récupère les données d'un fichier ds un tableau de structures avec:while( ! fContact.eof()){fContact >> elem->nom >> elem->tel;temp[i]. Comment récuperer la luminosité d'un pixel d'une image bitmap? [ par chmod777 ] Je cherche a recuperer la luminosité d'un pixel (n'importe lequel) d'une image bitmap, cela ne doit pas etre sorcier mais j'avoue que là, j'ai du mal: Sauvegarde du rendu ds un fichier image [ par titeufxp ] Bonjour,J'aurai besoin d'aide pour sauvegarder le contenu de ma fenetre opengl ds un format image genre BMP ou JPG.J'arrive a faire un fichier image a Conversion bitmap 8 bits -> 24 bits [ par lma ] Je suis à la recherche d'un programme permettant de convertir une image bitmap 8 bits en image bitmap 24 bitsQuelqu'un peut il m'aider ? Découper puis affichier un bitmap [ par Vortex99011 ] Bonjour,depuis quelques jours de recherches désespérées, je viens vous demander ici un grand secours. Je recherche une manière quelconque pour affiche lire les données d'un fichier langage C [ par khalidlyon ] Bonjour,pb. du C.Comment on peux associer au tableaux X et Y les valeurs qui se trouvent dans un fichier "donner.dat" sous la forme suivant:dim 5X recuperation de données et fichier .ini! [ par boulaxx ] bonjour!j'ai pls questions: - je voudrais recuperer les données qui st contenues ds les champs de ma boite de dialogue... - p


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 : 1,092 sec (4)

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