截取ASPX页面的截图

是否有一种简单的方法(最好不必导入库)在c#中截取ASP.NET网页(更好的是aspx控件)并将其保存为图像? 提前谢谢了! 非常感谢示例代码或教程链接…

一个真正的kludgie解决方案:编写一个WinForms应用程序并包含一个浏览器控件。 导航到您尝试捕获的Web应用程序页面,然后使用此处描述的编程屏幕捕获方法。

这是一个简单的截图制作者,几年前写道。 我不确定你想要实现什么,但是这个截取了整个屏幕的截图。 希望这可以帮助。

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); } } 

不是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; 

我相信应该可以从那里挖出东西

您可以通过编程方式创建Web浏览器控件并获取其客户区域的屏幕截图 – 相反,Web浏览器不必为此显示 – 只需确保您使用WebBrowser控件的线程在公寓状态ApartmentState.STA运行ApartmentState.STA 。 这种方法在服务器端和客户端都可以使用。

在高层次上,您需要做的是创建位图:

  1. 实例化WebBrowser控件并设置所需的宽度/高度

  2. 浏览到您选择的URI

  3. 等待DocumentCompleted事件

  4. 使用WebBrowser DrawToBitmap()方法提取图像