2013-02-17 4 views
3

드로잉 컨텍스트에서 /로 창을 직접 읽고 쓰고 싶습니다. 즉, 창에서 페인트 작업을하는 동안입니다.직접 GDI 드로잉 컨텍스트 픽셀에 액세스

나는 Windows GDI에 GetPixel/SetPixel 함수가 있다는 것을 알고 있지만 큰 연산의 경우 픽셀 데이터를 메모리에 직접 읽고 쓸 수있는 것이 훨씬 낫습니다.

어떻게하면 표준 GDI를 사용할 수 있습니까? 당신은 호환되는 DC를 만들 수

답변

3

, 비트 맵 :

HDC  hMemDC = CreateCompatibleDC(hdc); 
HBITMAP hBmp = CreateCompatibleBitmap(hdc, WIDTH, HEIGHT); 
SelectObject(hMemDC, hBmp); 

다음, 당신이 비트를 얻을 수 있습니다 GetDIBits 기능이있다 :

int GetDIBits(
    _In_  HDC hdc, 
    _In_  HBITMAP hbmp, 
    _In_  UINT uStartScan, 
    _In_  UINT cScanLines, 
    _Out_ LPVOID lpvBits, 
    _Inout_ LPBITMAPINFO lpbi, 
    _In_  UINT uUsage 
); 

참고 : 당신은 lpvBits을 설정해야 할 수도 있습니다 BITMAPINFO (lpbi 매개 변수)를 통해 이미지의 크기와 형식을 가져 오려면 NULL로 설정하십시오.

관련 문제