2009-10-26 8 views
0

나는 다른 사이트를 탐색 할 수있는 웹 브라우저 컨트롤을 가지고 있습니다. 우리가 방문하는 사이트의 비트 맵을 취하는 방법.비트 맵을 얻는 방법

감사 GrabIt

답변

0
  1. 가 사각형이 브라우저 컨트롤
  2. 화면의 DC를 생성에 의해 점령하기 : 화면 =의 GetDC (NULL)을
  3. 만들기 호환되는 DC : memDC = CreateCompatibleDC (화면)
  4. 호환되는 비트 맵을 만듭니다. bmp = CreateCompatibleBitmap (screen, rect);
  5. 는 호환 DC

에 지금 화면의 해당 영역의 이미지를 포함해야합니다 생성 된 비트 맵을 screenDC에서 호환 호환 DC SelectObject 매크로 (memDC, BMP)에 비트 맵

  • 비트 블리트를 선택합니다. 이 같은

  • +0

    거의 항상 모바일 장치의 경우가 될 것 같은 경우, 페이지가 어떤 스크롤이 필요합니다? 이것은 전체 페이지를 얻지 못할 것입니다. 귀하의 제안은 C가 아니라 C입니다. – ctacke

    +0

    나는 오프 스크린 컨텐츠도 얻고 싶다. – Naruto

    +0

    @GrabIt : 오프 스크린 컨텐츠를 얻으려면 아마도 스크롤하고 다시 잡아야 할 것이다. 브라우저 컨트롤 (필연적으로)이 전체 페이지의 전체 렌더링 비트 맵을 어디에서나 유지할 수있는 것은 아닙니다. @ctacke : 원하는 언어로 된 Win32 API입니다. .NET에서 계속 사용하고 API를 직접 사용하지 않으려면 [Win32] 태그를 제거해야합니다. –

    -1

    뭔가가 작동합니다 -

    Bitmap bitmap = new Bitmap(webBrowser1.Width, webBrowser1.Height); 
    Graphics g = Graphics.FromImage(bitmap); 
    g.CopyFromScreen(webBrowser1.PointToScreen(webBrowser1.Location), new Point(), webBrowser1.Size); 
    bitmap.Save(@"c:\\browser.jpg", ImageFormat.Jpeg); 
    bitmap.Dispose(); 
    
    +0

    CopyFromScreen은 Compact Framework에서 지원되지 않습니다. –

    +2

    태그 자체 검사 참고 ... – PaulB

    +0

    @tomlog : SDF에있는 GraphicsEx가 가지고 있습니다. – ctacke

    관련 문제