J'essaie d'obtenir la hauteur et la largeur d'une image bmp, mais les valeurs que je reçois sont incorrectes et ne sont pas la taille réelle de l'image.
Voici mon code pour le faire:C en-tête bmp contient des informations erronées
#include <stdio.h>
#include <stdlib.h>
void main() {
FILE * Pic;
errno_t err;
int **PixelStrength;
int PictureWidth, PictureHeight;
err = fopen_s(&Pic, "d2.bmp", "r");
if (!err)
{
fseek(Pic, 18, SEEK_SET);
PictureWidth = fgetc(Pic);
fseek(Pic, 22, SEEK_SET);
PictureHeight = fgetc(Pic);
}
if (Pic)
{
err = fclose(Pic);
}
}
Je dois souligner que cela a fonctionné pour une petite image mais pas pour tout plus grand. Les images que j'ai essayées sont 640 x 480 mais les valeurs que je reçois sont de 128 x 224. Merci pour votre aide.
640 = 2 * 256 + 128; 480 = 256 + 224 – pmg
Je vous recommande de définir un en-tête 'struct' et de lire le tout, en utilisant des fonctions pour extraire les membres de la bonne manière, ou un tableau d'octets idem. –
Un autre problème: 'fopen_s (& Pic," d2.bmp "," r ");' -> 'fopen_s (& Pic," d2.bmp "," rb ");' Ajouter 'b'. Ouvrir le fichier en mode binaire. – chux