|
일단...캡쳐하는 방법은 여기에서 검색해서 찾아봤는데
HDC hdHandle = GetDC(0);
TImage *CAPTURE = new TImage(Form1);
..
생략
CAPTURE->Picture->Bitmap = NULL;
BitBlt(CAPTURE->Canvas->Handle, 0, 0, Screen->Width, Screen->Height,
hdHandle, 0, 0, SRCCOPY);
생략
이런식으로 한것도 있고
Graphics::TCanvas *MyCanvas = new Graphics::TCanvas;
MyCanvas->Handle = hdHandle;
Image1->Width = r.right - r.left;
Image1->Height = r.bottom - r.top;
Image1->Picture->Bitmap->Width = r.right - r.left;
Image1->Picture->Bitmap->Height = r.bottom - r.top;
Image1->Picture->Bitmap->Canvas->CopyRect(
Rect(0,0,Image1->Width,Image1->Height),MyCanvas,
Rect(0,0,Image1->Width,Image1->Height));
delete MyCanvas;
ReleaseDC(NULL,dc);
이런식으로 한것도 있는데
문제는 실제 이 이미지들을 조작하려고 하는데... Canvas Property Pixels로 하면 너무 느려서
Bitmap Property의 ScanLine으로 하니까 자꾸에러가 나네요.. out of range...
여기 저기 뒤져 봤는데 Scanline이 DIBs 만 지원한다고 되어있어서 그런거 같기도 하고
결국 캡쳐할때 DIB로 해야하는거 같은데...어떻게 해야하는지 조언좀 부탁드립니다.
|