是否有一種簡單的方法(最好不需要導入庫)在c#中截取ASP.NET網頁(更好的是aspx控件)並將其保存爲圖像?提前謝謝了!示例代碼或指南的鏈接將不勝感激...ASPX頁面的屏幕截圖
回答
不是100%確定如果這正是你正在尋找,但本教程應該至少讓你的地面工作能力捕捉屏幕截圖並保存它。這看起來更像是屏蔽了整個屏幕,而不僅僅是aspx頁面,但至少它應該是一個開始。
http://www.geekpedia.com/tutorial181_Capturing-screenshots-using-Csharp.html
http://weblogs.asp.net/jalpeshpvadgama/archive/2008/01/28/how-to-take-screenshot-in-c.aspx
的是,最大的一塊似乎是
using System.Drawing.Imaging;
應該可以從那裏刨根問底,我相信
人真正kludgie的解決方案:編寫一個WinForms應用程序幷包含一個瀏覽器控件。導航到您要捕捉的網頁應用程序頁面,然後使用here中描述的編程式屏幕捕捉方法。
這是幾年前寫的一個簡單的截圖製作工具。我不確定你想要達到什麼目的,但是這個需要截屏整個屏幕。希望這可以幫助。
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Windows.Forms;
public class ScreenshotManager
{
private Image screenshot;
public Image Screenshot
{
get
{
if (screenshot == null)
MakeScreenshot();
return screenshot;
}
}
public MemoryStream ScreenshotToMemoryStream()
{
MemoryStream ms = new MemoryStream();
Screenshot.Save(ms, ImageFormat.Jpeg);
ms.Position = 0;
return ms;
}
public byte[] ScreenshotToByteArray()
{
return ScreenshotToMemoryStream().ToArray();
}
public void MakeScreenshot()
{
screenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
var graphics = Graphics.FromImage(screenshot);
graphics.CopyFromScreen(0, 0, Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
}
}
嘿。感謝代碼。我試圖使用它,但是我得到了一些錯誤 - 圖形,位圖,屏幕和保存無法識別。我需要導入一些東西嗎?謝謝! – MiziaQ 2011-03-02 20:09:36
當然,我已將使用條款添加到原始帖子。 – 2011-03-02 20:22:28
還請添加如何使用此代碼爲asp.net。像這樣的,例如,請:ScreenshotManager sm = new ScreenshotManager(); System.Drawing.Image im = sm.Screenshot; System.IO.MemoryStream ms = new System.IO.MemoryStream(); im.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType =「image/Gif」; Response.BinaryWrite(ms.ToArray()); – apros 2011-03-02 20:36:23
您可以以編程方式創建一個Web瀏覽器的控制和利用其客戶區的截圖-contrary大家普遍認爲的Web瀏覽器不必可見這個 - 只要確保線程使用WebBrowser
控制在公寓狀態運行ApartmentState.STA
。這種方法在服務器端和客戶端都可以使用。
在較高水平,你需要做的創建位圖什麼:
實例化WebBrowser控件 和
瀏覽設置所需的寬度/高度到您選擇
的URI等待
DocumentCompleted
事件使用WebBrowser
DrawToBitmap()
方法提取圖像
- 1. SpriteKit屏幕截圖的屏幕截圖
- 2. 使屏幕截圖細節頁面UI?
- 3. webdriverio - 截取整頁的屏幕截圖
- 4. Phantomjs - 截取網頁的屏幕截圖
- 5. 如何截取呈現的HTML頁面的屏幕截圖
- 6. 屏幕截圖
- 7. 將頁面區域的屏幕截圖放在另一頁上
- 8. 多個網頁的Java屏幕截圖
- 9. 整個網頁的屏幕截圖(localhost)
- 10. C++截取屏幕截圖
- 11. 截取屏幕截圖
- 12. 登錄屏幕上的Windows桌面的屏幕截圖
- 13. 以當前屏幕的屏幕截圖
- 14. 以整個屏幕的屏幕截圖
- 15. 屏幕部分的屏幕截圖
- 16. 屏幕截圖未連接屏幕截圖的軟件(RDP)
- 17. Webdriver屏幕截圖
- 18. UIWebView屏幕截圖
- 19. iPhone屏幕截圖
- 20. Roku屏幕截圖
- 21. C++屏幕截圖
- 22. ASP.NET屏幕截圖
- 23. iPhone:屏幕截圖
- 24. android屏幕截圖
- 25. UICollectionView屏幕截圖
- 26. 從網頁抓取屏幕截圖
- 27. 屏幕截圖很多網頁
- 28. JavaFX 8製作桌面屏幕截圖
- 29. xna 4採取桌面屏幕截圖
- 30. 整個頁面ruby中機械化的屏幕截圖
+1:只是因爲我恨它,當人們downvote沒有留下意見。 – Dathan 2011-03-02 19:42:57
你是指客戶端還是服務器端? – BrokenGlass 2011-03-02 19:44:34
@達納 - 特別是因爲這個問題似乎不太糟糕。 +1我也是 – 2011-03-02 19:48:27