2009-10-26 87 views
0

我有一個網頁瀏覽器控件,通過這個我可以瀏覽不同的網站。如何獲取我們訪問的網站的位圖。如何獲取位圖

感謝 GrabIt

回答

0
  1. 得到矩形通過瀏覽器控制
  2. 爲屏幕創建一個DC佔據:屏幕=的GetDC(NULL)
  3. 創建一個兼容DC:memDC = CreateCompatibleDC(屏)
  4. 創建一個兼容的位圖:bmp = CreateCompatibleBitmap(screen,rect);
  5. 選擇兼容的位圖到兼容的DC選擇對象(memDC,BMP)
  6. 的BitBlt從screenDC到兼容DC

您創建現在應該包含屏幕的該區域的圖像的位圖。

+0

如果,因爲幾乎總是在移動設備上的情況下,頁面滾動的需要?這不會得到整個頁面。你的建議也是C,而不是C#。 – ctacke 2009-10-26 14:28:03

+0

我想獲得屏幕外的內容.. – Naruto 2009-10-26 14:39:18

+0

@GrabIt:要獲得屏幕外的內容,您可能需要滾動並重新抓取。我不確定瀏覽器控件(必然)是否保存了整個頁面的完全呈現的位圖。 @ctacke:它是Win32 API,無論你喜歡什麼語言 - 如果他想留在.NET內部而不直接使用API​​,他應該刪除[Win32]標籤。 – 2009-10-26 14:49:50

-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

CompactFromScreen在Compact Framework上不受支持。 – 2009-10-26 14:31:07

+2

注意自我檢查標籤... – PaulB 2009-10-26 14:31:43

+0

@tomlog:SDF中的GraphicsEx確實有它。 – ctacke 2009-10-26 22:11:36