■ VisualC++(MFC限定)相談室 3■
レス数が900を超えています。1000を超えると表示できなくなるよ。
0923デフォルトの名無しさん
NGNGCPaintDC dc(this); // 描画用のデバイス コンテキスト
// デスクトップを取る
CWnd* pwndDeskTop = GetDesktopWindow();
CDC* pDeskTopDC = pwndDeskTop->GetDC();
// 自分の領域にデスクトップからコピー
dc.BitBlt( 0,0, 200, 200, pDeskTopDC, 0, 0, SRCCOPY );
pwndDeskTop->ReleaseDC(pDeskTopDC);
これでデスクトップの画像を取得し,表示。
この後に、
for(j=0;j<yh;j++)
for(i=0;i<xw;i++){
color=pDC->GetPixel(x0+i,y0+j);
r=GetRValue(color);
g=GetGValue(color);
b=GetBValue(color);
c=(r+g+b)/3;
pDC->SetPixel(x1+i,y0+j,RGB(c,c,c));
}
のような操作で白黒化を試したのですが、
1度ワークスペースに描写してからGetPixelでは
無駄な処理(ワークスペース内に描写)があって効率が悪い気がします。
デスクトップ上から直接RGB値をとりこみ、メモリ上で処理(この場合は白黒化)、
その後にワークスペース内に描写させるにはどうすれば良いのでしょうか?
質問ばかりですいません。
レス数が900を超えています。1000を超えると表示できなくなるよ。