asp.net 程序实现将整个网页变成一张图片

djw1234561999 2011-11-22 11:52:50
如题!!!用户只需要输入一个网址!!
...全文
314 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmmynz 2011-12-19
  • 打赏
  • 举报
回复
我试验了不管用。
highpr 2011-11-22
  • 打赏
  • 举报
回复
很强大
djw1234561999 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 starye_837 的回复:]
C# code


一、实现方法

//WebSiteThumbnail.cs文件,在BS项目中需要添加对System.Windows.Forms的引用

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
usin……
[/Quote]
这个可以直接运行吗?
十月流氓 2011-11-22
  • 打赏
  • 举报
回复

一、实现方法

//WebSiteThumbnail.cs文件,在BS项目中需要添加对System.Windows.Forms的引用

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;

namespace TestWebApp
{
public class WebSiteThumbnail
{
Bitmap m_Bitmap;
string m_Url;
int m_BrowserWidth, m_BrowserHeight, m_ThumbnailWidth, m_ThumbnailHeight;
public WebSiteThumbnail(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, int ThumbnailHeight)
{
m_Url = Url;
m_BrowserHeight = BrowserHeight;
m_BrowserWidth = BrowserWidth;
m_ThumbnailWidth = ThumbnailWidth;
m_ThumbnailHeight = ThumbnailHeight;
}
public static Bitmap GetWebSiteThumbnail(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, int ThumbnailHeight)
{
WebSiteThumbnail thumbnailGenerator = new WebSiteThumbnail(Url, BrowserWidth, BrowserHeight, ThumbnailWidth, ThumbnailHeight);
return thumbnailGenerator.GenerateWebSiteThumbnailImage();
}
public Bitmap GenerateWebSiteThumbnailImage()
{
Thread m_thread = new Thread(new ThreadStart(_GenerateWebSiteThumbnailImage));
m_thread.SetApartmentState(ApartmentState.STA);
m_thread.Start();
m_thread.Join();
return m_Bitmap;
}
private void _GenerateWebSiteThumbnailImage()
{
WebBrowser m_WebBrowser = new WebBrowser();
m_WebBrowser.ScrollBarsEnabled = false;
m_WebBrowser.Navigate(m_Url);
m_WebBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
while (m_WebBrowser.ReadyState != WebBrowserReadyState.Complete)
Application.DoEvents();
m_WebBrowser.Dispose();
}
private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser m_WebBrowser = (WebBrowser)sender;
m_WebBrowser.ClientSize = new Size(this.m_BrowserWidth, this.m_BrowserHeight);
m_WebBrowser.ScrollBarsEnabled = false;
m_Bitmap = new Bitmap(m_WebBrowser.Bounds.Width, m_WebBrowser.Bounds.Height);
m_WebBrowser.BringToFront();
m_WebBrowser.DrawToBitmap(m_Bitmap, m_WebBrowser.Bounds);
m_Bitmap = (Bitmap)m_Bitmap.GetThumbnailImage(m_ThumbnailWidth, m_ThumbnailHeight, null, IntPtr.Zero);
}

}
}

二、调用方法

//在任意网页中的Page_Load事件时,加入如下代码:

protected void Page_Load(object sender, EventArgs e)
{
Bitmap m_Bitmap = WebSiteThumbnail.GetWebSiteThumbnail("http://www.google.cn", 600, 600, 600, 600);
MemoryStream ms = new MemoryStream();
m_Bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);//JPG、GIF、PNG等均可
byte[] buff = ms.ToArray();
Response.BinaryWrite(buff);
}

libo0952 2011-11-22
  • 打赏
  • 举报
回复
用QQ 截图 可以吗?
黄亮 2011-11-22
  • 打赏
  • 举报
回复
asp.net程序是做不到的,winfrom的webbrowser控件可以做。
Im_Sorry 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhoukang0916 的回复:]

引用 1 楼 hou306010849 的回复:

你做梦了!!!!!!!!


不仅没做梦 而且还很容易实现。
[/Quote]


高手就是高手,咱还没碰见过这种问题,失态了!
PandaIT 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hou306010849 的回复:]

你做梦了!!!!!!!!
[/Quote]

不仅没做梦 而且还很容易实现。
bleach001 2011-11-22
  • 打赏
  • 举报
回复
Im_Sorry 2011-11-22
  • 打赏
  • 举报
回复
你做梦了!!!!!!!!
满衣兄 2011-11-22
  • 打赏
  • 举报
回复
1、这个叫网页快照。
2、用web能做到的,用过google都知道它的网页快照功能。
3、网页快照一般是蜘蛛爬过来的html,然后缓存起来。
4、参考一下:
http://zhidao.baidu.com/question/29437919.html?fr=qrl&cid=1073&index=1
http://download.csdn.net/detail/zzz3380/3806100
djw1234561999 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 starye_837 的回复:]
C# code


一、实现方法

//WebSiteThumbnail.cs文件,在BS项目中需要添加对System.Windows.Forms的引用

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
usin……
[/Quote]

很强大!!!
yyz985 2011-11-22
  • 打赏
  • 举报
回复
好像Firefox是开源的,你可以参考Firefox的代码。
艾尚免费团购程序,是带购物车、一日多团、到货评价功能、快递单号免输入、快递单批量连打、团购挂件、搜狐一站通、订单来路统计等强大功能的.net团购系统程序。 艾尚免费团购程序 1.0 更新日志: 1、抽奖功能 2、uc整合 3、站外优惠券导入功能 4、新增一日多团4.一日多团4页面显示分类、主推项目、每日新品、促销推荐、分类前几个项目展示、今日其它团购展示。 a、每日新品、促销推荐,在新建或编辑项目时,可以选择这个项目是否展示在首页的新品或者促销。 b、系统后台可以设置新品、促销在首页展示的个数。 5、分类功能 a、原分类变为网站的API输出分类。新的分类为项目分类。 b、分类可以建立N级分类,网站前台页面暂时只显示到二级。 c、每个分类都可以建立自己的关键词列表,当在网站前台点击这个分类下的某个关键词就可以列出这个关键词的项目。关键词可以跨分类。 d、分类可以按城市输出。 e、分类可进行排序调整。 f、分类可以选择是否在分类列表里面显示,或者是否把这个分类的项目主推到首页展示。 6、广告位按城市发布 7、系统短信发送各项内容可在后台自行编辑发送文字 8、项目详情页面下方增加其它项目展示,后台可以自行设定展示多少个。 9、导航栏目可自行编辑排序 10、项目指定多个城市输出 11、项目指定是否API输出 12、用户确定购买成功后,系统自动发送购买成功短信提醒。后台可自己控制是否开启此功能。 13、前台用户中心新增“我的抽奖”页面,用户在此可以查看自己的抽奖号码及中奖状态。 14、往期团购页面增加搜索,以及按价格,人气,时间排序功能。 15、一站通的用户第一次进入网站,需要先绑定用户操作 16、淘宝一站通 17、修改邮件订阅,详情图片不显示问题。 18、修复登录是,勾选自动登录不起作用问题。 产品亮点: 购物车 使用艾尚团购系统,用户在购买时可以同时选择多个商品进行结账,并且可以跨项目进行包邮设置。简化了用户操作,更能增加团购网站整体销售。 一日多团 艾尚团购程序的团购网站首页同时显示多个正在进行的商品,将网站的商品最大限度的展示在用户面前,对提升网站整体销售额有着很大的帮助。 订单来路统计 在艾尚团购系统的程序后台有“艾尚统计”服务,让您了解您的成交订单从哪里来,给出排名,并且可以按年、月、日、时进行筛选统计,让您对您的广告投放计划更加心有成竹。 物流信息实时查询 使用艾尚团购程序,团购网站用户可以在“我的订单”点击“详情”看到自己购买的货物现在到达了什么地方,管理员也能在后台点击订单详情进行查看货物位置,极大增加了用户体验。 快递单号免输入 对于每天订单数目很多的团购网站主来说,输入快递单号是非常费时的。现在您使用艾尚团购程序,只要输入第一张快递单号,系统就能批量帮您生成所有订单快递单号,极大节省您的时间。 快递单批量连打 以往团购系统打印快递单是件很麻烦的事情,您只有进行过 选择快递公司-输入快递单号-点击打印等一系列操作后,才能完成一张订单的打印。现在艾尚团购系统,您只需要点击“打印”,所有的订单就能进行快递批量打印了。 不同城市设置不同运费 艾尚团购程序的快递设置可以设置同一快递公司发往不同城市费用不同,并且可以设置每增加多少件增加多少快递费。 到货评价 艾尚团购程序新增了“到货评论”功能。用户对已购买的商品发表评论,并且获得返利,用户的评价会出现在相应产品的用户评价栏目里,方便其它用户了解产品,更能了解您网站的实力。增加用户粘性,吸引其他浏览者。 团购挂件功能 艾尚团购系统的团购网站前台可以自己输出一段代码,里面包括今日团购的信息,可以放到任何网站里,作为推广的链接。团购挂件分三种形式:美编版、精简版和文字版,根据自身情况选择输出。 软件系统需求: 操作系统:Windows 2000/2003/2008均可 程序支持:asp.net 2.0 sp1 数据库要求:sqlserver2000/2005/2008均可 字符编码:支持国际通用 UTF-8 编码

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧