bmp画像の高さと幅を取得しようとしていますが、値が正しくないため画像の実際のサイズではありません。ここ
はそうするために私のコードです:C bmpヘッダーに間違った情報が含まれています
#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);
}
}
私は、これは任意の大きい方のためにしかし、小さな絵のためではない働いていることに注意してください。私が試した画像は640 x 480ですが、私が受け取る値は128 x 224です。ご協力いただきありがとうございます。
640 = 2 * 256 + 128; 480 = 256 + 224 – pmg
ヘッダー 'struct'を定義し、関数を使って正しいエンディアン形式でメンバーを抽出するか、バイト配列とすることをお勧めします。 –
もう一つの問題: 'fopen_s(&Pic、" d2.bmp "、" r ");' - > 'fopen_s(&Pic、" d2.bmp "、" rb ");' b'を追加する。バイナリモードでファイルを開きます。 – chux