是否有一种简单的方法(最好不必导入库)在c#中截取ASP.NET网页(更好的是aspx控件)并将其保存为图像?提前谢谢了!我们非常感谢示例代码或教程链接......
答案 0 :(得分:2)
一个真正的kludgie解决方案:编写WinForms应用程序并包含一个浏览器控件。导航到您尝试捕获的Web应用程序页面,然后使用描述为here的编程屏幕捕获方法。
答案 1 :(得分:1)
这是一个简单的截图制作者,几年前写道。我不确定你想要实现什么,但是这个截取了整个屏幕的截图。希望这会有所帮助。
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);
}
}
答案 2 :(得分:0)
不是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;
应该能够从那里挖出一些东西,我相信
答案 3 :(得分:0)
您可以通过编程方式创建Web浏览器控件并截取其客户区域的屏幕截图 - 相反,Web浏览器不必为此显示 - 只需确保您使用WebBrowser
控件的线程在公寓州ApartmentState.STA
运行。这种方法在服务器端和客户端都可以使用。
在高级别上,您需要做的是创建位图:
实例化WebBrowser控件 并设置所需的宽度/高度
浏览到您选择的URI
等待DocumentCompleted
事件
使用Web浏览器DrawToBitmap()
提取图像的方法