C++:fread と fwrite のループを使用して bmp をコピーすると、出力 bmp が入力 bmp の最初の色で塗りつぶされる場合があります。
質問
理由はわかりませんが、最初のピクセル (左下) は正しく読み込まれますが、他のピクセルは読み込まれず、最初の色が画像全体に使用されます...
これをサイクルに持っています
fread(&pix,sizeof(pix),1,pictureIn);
fwrite(&pix,sizeof(pix),1,pictureOut);
編集:
pix は 3 つの符号なし文字 (rgb) の構造体であり、ファイルと情報ヘッダーの読み込みは問題ないようです
解決
どのようなOSを使用していますか?最近、Win32 でバイナリ ファイルを読み取るときに問題が発生しました。fopen に "b" フラグを渡すのを忘れていたことが判明しました。
pictureIn = fopen ("in.bmp", "rb");
pictureOut = fopen ("out.bmp", "wb");
所属していません StackOverflow