je suis en train de faire une méthode qui récupère le contenu d'un fichier
bmp 24 bits, et je rencontre un problème de lecture. En fait, la fonction
eof() passe à 1 avant la fin prévue du fichier. Exemple, pour une image de
256*256, lorsque je me décale de la taille du header (environ 54 octets) et
que je compte les pixels en faisant des itérations sur des groupes de 3
octets, la boucle de lecture se termine avec un nombre de pixels traités de
64022 (de mémoire) au lieu de 655536 (256², à +-1....).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Etienne Baudin
do { iFile >> data[noPixel].B; iFile >> data[noPixel].G; iFile >> data[noPixel].R; noPixel++; } while (!iFile.eof());
J'ai raffiné un peu le problème : à chaque tour de boucle, le curseur, obtenu avec la méthode tellg(), s'incrémente parfois plus de 3 (4 ou 5, je rapelle qu'on lit des données de type unsigned char). Le problème se résume donc, pourquoi certains "caractères" du fichiers semblent être zappés par l'opérateur '>>' ? (caractères spéciaux ?) L'utilisation du type unsigned char pour des données binaires (composantes RGB) est-elle adaptée ?
Merci, Etienne
do
{
iFile >> data[noPixel].B;
iFile >> data[noPixel].G;
iFile >> data[noPixel].R;
noPixel++;
}
while (!iFile.eof());
J'ai raffiné un peu le problème : à chaque tour de boucle, le curseur,
obtenu avec la méthode tellg(), s'incrémente parfois plus de 3 (4 ou 5, je
rapelle qu'on lit des données de type unsigned char). Le problème se résume
donc, pourquoi certains "caractères" du fichiers semblent être zappés par
l'opérateur '>>' ? (caractères spéciaux ?) L'utilisation du type unsigned
char pour des données binaires (composantes RGB) est-elle adaptée ?
do { iFile >> data[noPixel].B; iFile >> data[noPixel].G; iFile >> data[noPixel].R; noPixel++; } while (!iFile.eof());
J'ai raffiné un peu le problème : à chaque tour de boucle, le curseur, obtenu avec la méthode tellg(), s'incrémente parfois plus de 3 (4 ou 5, je rapelle qu'on lit des données de type unsigned char). Le problème se résume donc, pourquoi certains "caractères" du fichiers semblent être zappés par l'opérateur '>>' ? (caractères spéciaux ?) L'utilisation du type unsigned char pour des données binaires (composantes RGB) est-elle adaptée ?
Merci, Etienne
Etienne Baudin
do { iFile >> data[noPixel].B; iFile >> data[noPixel].G; iFile >> data[noPixel].R; noPixel++; } while (!iFile.eof());
J'ai raffiné un peu le problème : à chaque tour de boucle, le curseur, obtenu avec la méthode tellg(), s'incrémente parfois plus de 3 (4 ou 5, je rapelle qu'on lit des données de type unsigned char). Le problème se résume donc, pourquoi certains "caractères" du fichiers semblent être zappés par l'opérateur '>>' ? (caractères spéciaux ?) L'utilisation du type unsigned char pour des données binaires (composantes RGB) est-elle adaptée ?
Merci, Etienne
do
{
iFile >> data[noPixel].B;
iFile >> data[noPixel].G;
iFile >> data[noPixel].R;
noPixel++;
}
while (!iFile.eof());
J'ai raffiné un peu le problème : à chaque tour de boucle, le curseur,
obtenu avec la méthode tellg(), s'incrémente parfois plus de 3 (4 ou 5, je
rapelle qu'on lit des données de type unsigned char). Le problème se résume
donc, pourquoi certains "caractères" du fichiers semblent être zappés par
l'opérateur '>>' ? (caractères spéciaux ?) L'utilisation du type unsigned
char pour des données binaires (composantes RGB) est-elle adaptée ?
do { iFile >> data[noPixel].B; iFile >> data[noPixel].G; iFile >> data[noPixel].R; noPixel++; } while (!iFile.eof());
J'ai raffiné un peu le problème : à chaque tour de boucle, le curseur, obtenu avec la méthode tellg(), s'incrémente parfois plus de 3 (4 ou 5, je rapelle qu'on lit des données de type unsigned char). Le problème se résume donc, pourquoi certains "caractères" du fichiers semblent être zappés par l'opérateur '>>' ? (caractères spéciaux ?) L'utilisation du type unsigned char pour des données binaires (composantes RGB) est-elle adaptée ?
Merci, Etienne
Fabien LE LEZ
On Thu, 4 Nov 2004 20:24:17 +0100, "Etienne Baudin" :
iFile >> data[noPixel].B;
Franchement, je suis très dubitatif quant à l'usage de ">>" pour des données binaires[*].
[*] En fait, je suis très dubitatif quant à l'usage de ">>" en général, mais c'est un autre problème.
-- ;-)
On Thu, 4 Nov 2004 20:24:17 +0100, "Etienne Baudin"
<pfox@N-O-S-P-A-M.free.fr>:
iFile >> data[noPixel].B;
Franchement, je suis très dubitatif quant à l'usage de ">>" pour des
données binaires[*].
[*] En fait, je suis très dubitatif quant à l'usage de ">>" en
général, mais c'est un autre problème.