C++:fread と fwrite のループを使用して bmp をコピーすると、出力 bmp が入力 bmp の最初の色で塗りつぶされる場合があります。

StackOverflow https://stackoverflow.com/questions/1884165

  •  19-09-2019
  •  | 
  •  

質問

理由はわかりませんが、最初のピクセル (左下) は正しく読み込まれますが、他のピクセルは読み込まれず、最初の色が画像全体に使用されます...

これをサイクルに持っています

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");
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top