今、Visual C++6.0のMFCを利用してデスクトップ画面をキャプチャして色情報を得るプログラムを作っています。ですが色情報がうまく得られません。
わかる方はお忙しい中もうしわけありませんがご教授お願いします。
以下に私が書いたソースを載せます。
//-----------------------------------キャプチャー
//デスクトップのサイズを取得します
CRect rect;
::GetClientRect( ::GetDesktopWindow() , &rect );
// デバイスコンテキストを取得します
HDC hDC = ::GetDC( ::GetDesktopWindow() );
//CDCクラスに変換
CDC* pDC = CDC::FromHandle( hDC );
//メモリデバイスコンテキスト作成
// ビットマップを作成します
CBitmap bm;
bm.CreateCompatibleBitmap( pDC, rect.Width(), rect.Height() );
//カラー用のメモリ確保
unsigned char *colorBuf;
colorBuf = (unsigned char *)malloc( sizeof( unsigned char ) * rect.Width() * rect.Height() * 3 );
//ビットマップの色情報を取得する
bm.GetBitmapBits( rect.Width() * rect.Height * 3, colorBuf );
マルチポストしすぎ。マナーぐらいまもってくれ。
http://www.ziyu.net/~rent/tree/wforum.cgi?id=C_lan&mode=all_read&no=2494&page=0
http://cgi21.plala.or.jp/keny01/wforum/wforum.cgi?mode=allread&no=1503&page=0
はじめまして、Discaと言います。
CDC::GetPixel
または、API ::GetPixcelではないでしょうか?
色情報を(RGB)を取得するのであれば、マクロである
BYTE GetRValue(COLORREF clr);
BYTE GetGValue(COLORREF clr);
BYTE GetBValue(COLORREF clr);
を使用してください。ではでは、、、
ツイート | ![]() |