2012-08-31 143 views
0

前段時間我問過一個關於將hwnd保存爲ppm文件的問題。感謝一個計算器用戶,我解決了我的問題。我的工作正常,但我仍然有一個問題:紅色和藍色的顏色是顛倒的。位圖反轉顏色

的代碼和我剛纔的問題,其中在這裏: hwnd to ppm issue

這裏是位圖信息數據:

bi.biSize = sizeof(BITMAPINFOHEADER);  
bi.biWidth = w;  
bi.biHeight = -h; 
bi.biPlanes = 1;  
bi.biBitCount = 24;  
bi.biCompression = BI_RGB;  

bi.biSizeImage = 0; 
bi.biXPelsPerMeter = 0;  
bi.biYPelsPerMeter = 0;  
bi.biClrUsed = 0;  
bi.biClrImportant = 0; 

我一派,看來問題是BI_RGB,我應該使用BI_BITFIELDS ..但我沒有找到關於如何使用它的文檔。 我真的不想逐像素讀取所有數據,以恢復藍色和紅色。 有沒有辦法讓它完成,而不是逐像素?

在此先感謝您的幫助

回答

1

在和24bpp BMP,像素存儲至少尾序打回原形。藍色是第一個,紅色是最後一個。在PPM紅色是第一個,藍色是最後一個。這在很大程度上解釋了爲什麼它在Windows上是如此晦澀的圖像格式。您必須自己交換存儲訂單。

+0

好吧,明白了。謝謝 – ramone