用StretchDIBits,不寫任何調色板代碼也可以顯示黑白和256色BMP位圖
中心代碼如下:
pDC->SetStretchBltMode(COLORONCOLOR);//選擇顯示方式
unsigned char * pImgData=https://bbs.csdn.net/topics/(unsigned char *)(pDoc- >m_pDib+sizeof(BITMAPINFOHEADER)+colortablecount*sizeof(RGBQUAD));
CRect rect;
GetClientRect(rect);
StretchDIBits(pDC->GetSafeHdc(),0,0,rect.Width(),rect.Height(),0,0,m_biWidth,m_biHeight,pImgData,
(LPBITMAPINFO)(pDoc->m_pDib),DIB_RGB_COLORS,SRCCOPY);
前面沒有載入調色板但是也能顯示是怎么回事?還是說本來就不用調色板?
uj5u.com熱心網友回復:
好多都是不用寫 都能自動識別的uj5u.com熱心網友回復:
這個和位圖的顏色深度有關,貌似大于8位的都不用寫調色板的。。。uj5u.com熱心網友回復:
ICM:執行顏色管理。如果指定的BITMAPINFO結構中的bmiHeader不包含BITMAPV4HEADER或BITMAPV5HEADER,那么當前設備環境的顏色配置(profile)被用作源顏色配置(profile)。如果沒有顏色檔案,那么就使用RGB。如果指定的BITMAPINFO結構中的成員bmiHeader包含了BITMAPV4HEADER或BITMAPV5HEADER,那么將把位圖示頭中指定的顏色配置(profile)用作源顏色配置。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/110058.html
上一篇:[Delphi 轉 Builder ],使用WebBrowser記憶體錯誤問題
下一篇:VC++6.0編程問題
