드로잉 컨텍스트에서 /로 창을 직접 읽고 쓰고 싶습니다. 즉, 창에서 페인트 작업을하는 동안입니다.직접 GDI 드로잉 컨텍스트 픽셀에 액세스
나는 Windows GDI에 GetPixel
/SetPixel
함수가 있다는 것을 알고 있지만 큰 연산의 경우 픽셀 데이터를 메모리에 직접 읽고 쓸 수있는 것이 훨씬 낫습니다.
어떻게하면 표준 GDI를 사용할 수 있습니까? 당신은 호환되는 DC를 만들 수
드로잉 컨텍스트에서 /로 창을 직접 읽고 쓰고 싶습니다. 즉, 창에서 페인트 작업을하는 동안입니다.직접 GDI 드로잉 컨텍스트 픽셀에 액세스
나는 Windows GDI에 GetPixel
/SetPixel
함수가 있다는 것을 알고 있지만 큰 연산의 경우 픽셀 데이터를 메모리에 직접 읽고 쓸 수있는 것이 훨씬 낫습니다.
어떻게하면 표준 GDI를 사용할 수 있습니까? 당신은 호환되는 DC를 만들 수
, 비트 맵 :
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로 설정하십시오.
비트 맵 데이터에 대한 포인터를 포함하는 GetObject
to get the BITMAP
struct을 사용하십시오.