获取其它网站页面到当前主机的内存中,将这个网页在内存中生成图片并存为文件,现在我遇到一个难题,就是怎样把抓取的网页生成为图片,哪位高手能给个思路或者代码,不胜感激.
解决方案 »
- asp.net分页
- 谁用过国外的空间,access数据库怎么不能更新数据?
- 将“mode”属性设置为“Off”仍然无法显示错误信息。。其中“O”已经是大写了!
- Login failed for user 'LEGEND01\ASPNET'.
- 用javascript如何知道DLMain__ctl1_lblPosition在表格DLMain中所在的行数啊??
- url传递多个(变化的数n)值,我要同时取出他们
- 帮忙看看空扰许久了
- 在.net中如何使记录一条一条往下滚
- 主键问题!~
- 关于ASP.NET2.0中GridView对Row移动的问题
- 如何将字符串“2007-4-1”或“2007-04-01”转换成“20070401”格式?
- 全世界都没法解决的问题:如何在Web Site Project中定义条件编译符号?
非常感谢你的帮助,不过我找到的htmltoimage是用C/C++写的,我希望能用到asp.net/C#里,以便生成选择的网页,因此我需要C#的源码或思路自己写,请问哪位还知道有别的方法吗?
private void OnDocumentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e)
{
using (Graphics srcGraphics = this.axWebBrowser1.CreateGraphics())
{
using (Graphics destGraphics = this.pictureBox1.CreateGraphics())
{
IntPtr hdcDest = destGraphics.GetHdc();
IntPtr hdcSrc = srcGraphics.GetHdc();
GDI32.BitBlt(
hdcDest,
0, 0,
this.axWebBrowser1.ClientRectangle.Width, this.axWebBrowser1.ClientRectangle.Height,
hdcSrc,
0, 0,
(int) GDI32.TernaryRasterOperations.SRCCOPY
);
srcGraphics.ReleaseHdc(hdcSrc);
destGraphics.ReleaseHdc(hdcDest);
}
}
}
System.IO.MemoryStream ms = new System.IO.MemoryStream();
newBitmap.Save(ms, ImageFormat.Jpeg);
//输出图片
Response.ClearContent();
Response.ContentType = "image/gif";
Response.BinaryWrite(ms.ToArray());
重新写
//生成图片的网页有如下代码
//生成图片的代码
/* 省略 */
//将图片写入Response
System.IO.MemoryStream ms = new System.IO.MemoryStream();
//将开始生成的图片保存
newBitmap.Save(ms, ImageFormat.Jpeg);
//输出图片
Response.ClearContent();
Response.ContentType = "image/gif";
Response.BinaryWrite(ms.ToArray());
//比如这个网页名字是1.aspx
则其他页面调用他时将url属性设为~/1.aspx就可以了