Win32API質問箱 Build25
■ このスレッドは過去ログ倉庫に格納されています
005857
NGNGというか、GetDIBits自体の使い方か、引数だと思いますが
hBitmapはGIFを読み込んだもの
//BITMAP構造体を取得…ここは問題なし
GetObject(hBitmap,sizeof(BITMAP),&bitmap);
dwSize=bitmap.bmWidth*bitmap.bmHeight*3;//24ビットフルカラー
//エラー・例外処理は省いているが、エラーは出ていない
lpBuf=(LPBYTE)GlobalAlloc(GMEM_FIXED,sizeof(BYTE)*dwSize);
memset(&bmpInfo,0,sizeof(BITMAPINFO));
//BITMAPINFOHEADERを返す関数。幅・高さ・プレーン数・色数を指定…biXPelsPerMeterやbiClrUsedなどは0固定
bmpInfo.bmiHeader=CreateBitmapInfoHeader(bitmap.bmWidth,bitmap.bmHeight,1,24);
hdc=GetDC(NULL);
hdcBuf=CreateCompatibleDC(hdc);
//HBITMAPも作って、BitBltをしてみたが、正しくカラー表示された
//それを下で選択しても同じ結果だった
if(!GetDIBits(hdcBuf,hBitmap,0,bitmap.bmHeight,lpBuf,(LPBITMAPINFO)&bmpInfo,DIB_RGB_COLORS)){
//画像が真っ黒(初期値のまま)
}
ReleaseDC(NULL,hdc);
■ このスレッドは過去ログ倉庫に格納されています