아래 코드와 같이 DesktopWindow를 처리하는 방법을 사용하여 특정 영역을 가져오고 싶습니다.fromHdc 메서드를 사용하여 비트 맵 이미지를 만들 수 있습니까?
[DllImport("user32.dll")]
static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll")]
static extern IntPtr GetDCEx(IntPtr hwnd, IntPtr hrgn, uint flags);
[DllImport("user32.dll")]
static extern IntPtr ReleaseDC(IntPtr hwnd, IntPtr hdc);
public void ScreenShot()
{
try
{
IntPtr hwnd = GetDesktopWindow();
IntPtr hdc = GetDCEx(hwnd, IntPtr.Zero, 1027);
Point temp = new Point(40, 40);
Graphics g = Graphics.FromHdc(hdc);
Bitmap bitmap = new Bitmap(mPanel.Width, mPanel.Height, g);
g.CopyFromScreen(PointToScreen(temp) , PointToScreen(PictureBox.Location) , PictureBox.Size);
}
이 코드는 실제로 작동,하지만 난 CopyFromScreen의 과정에서 이루어집니다 복사 된 이미지를 좀하고 싶습니다. 내가 Graphics.FromImage (비트 맵) 같은 코드를 사용하여 시도했지만, 내가 원하는 이미지를 얻을 수 없습니다 ... 내 말은, 복사 이미지. Graphics 객체 fromHdc를 사용할 때 비트 맵 이미지를 가져 오는 방법을 찾지 못했습니다. DC를 사용해야합니다 .... 적절한 방법이 있습니까 ??
덕분에 내 문제가 (임 게으른 ... becoz) 완전히 삭제되었습니다. –
내 대답이 도움이 되었습니까? 아니면 다른 방식으로 해결 했습니까? (질문이 있으면 닫으십시오.) – Arthur
(help vampires ...) – heltonbiker