2009-12-10 29 views
0

我不知道爲什麼,但第一個像素(左下角)加載正確,但其他加載不了與第一種顏色用於整個畫面......C++:使用fread和fwrite循環複製bmp,casues輸出bmp用輸入bmp中的第一個顏色填充bmp

我有這樣的循環

fread(&pix,sizeof(pix),1,pictureIn); 
fwrite(&pix,sizeof(pix),1,pictureOut); 

編輯:

PIX是三個無符號字符(RGB),加載文件和信息頭結構似乎沒問題

+0

您還沒有給過足夠的信息。什麼是pix?你怎麼知道尺寸? – dmazzoni 2009-12-10 21:30:41

+0

您是否真的檢查了返回值,以便確定是否出現問題? – 2009-12-10 21:31:57

+1

大概你打開了一個文件?你是怎麼做到的?例如,你是否以二進制模式打開它?這是在一個循環?你明白了 - 我們不介意讀者。 – 2009-12-10 21:33:58

回答

1

你在使用什麼操作系統?我最近遇到在Win32下讀取二進制文件的問題。事實證明,我忘了通過「b」標誌fopen:

pictureIn = fopen ("in.bmp", "rb"); 
pictureOut = fopen ("out.bmp", "wb");