.net mvc C#生成网页快照
目标:调用某一网页,自动抓取整个页面为图片,并保存
public class WebSiteThumbnail{Bitmap m_Bitmap;string m_Url;public WebSiteThumbnail(string Url){m_Url = Url;}public static Bitmap GetWebSiteThumbnail(string Url){WebSiteThumbnail thumbnailGenerator = new WebSiteThumbnail(Url);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;//取得页面宽度和高度var w = m_WebBrowser.Document.Body.ScrollRectangle.Width;var h = m_WebBrowser.Document.Body.OffsetRectangle.Bottom;//执行.js出错时任执行m_WebBrowser.ScriptErrorsSuppressed = true;m_WebBrowser.ClientSize = new Size(w,h);m_WebBrowser.ScrollBarsEnabled = false;m_Bitmap = new Bitmap(w,h);m_WebBrowser.BringToFront();m_WebBrowser.DrawToBitmap(m_Bitmap, m_WebBrowser.Bounds);m_Bitmap = (Bitmap)m_Bitmap.GetThumbnailImage(w,h, null, IntPtr.Zero);}}
public ActionResult Index(){var url = "/home/show";var rnd=new Random();var saveurl =Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory,"downpic",rnd.Next(10)+".jpg");Bitmap m_Bitmap = WebSiteThumbnail.GetWebSiteThumbnail(url);m_Bitmap.Save(saveurl, System.Drawing.Imaging.ImageFormat.Png);//JPG、GIF、PNG等均可 ViewBag.url = "/downpic/" + Path.GetFileName(saveurl);return View();}
经测试 有一些网站无法生成快照或空白,以后研究
转载于:https://www.cnblogs.com/lunawzh/p/10204367.html
.net mvc C#生成网页快照相关推荐
- spring mvc 自动生成代码
spring mvc 自动生成代码 generator mybaits 详细配置: 目录结构 执行命令 OK git:https://gitee.com/xxoo0_297/generator.git ...
- java iecapt.exe_【C#】NET截屏网页,生成网页快照开发——IECapt、CutyCapt
软件介绍 IECapt.CutyCapt 生成网页快照 http://iecapt.sourceforge.net/ http://cutycapt.sourceforge.net/ ### 操作代码 ...
- IECapt、CutyCapt 生成网页快照
IECapt.CutyCapt 生成网页快照 http://iecapt.sourceforge.net/ http://cutycapt.sourceforge.net/ 1.以管理员身份 运行c ...
- php生成网页快照图片,PHP生成网页快照
$url = 'http://www.baidu.com/'; //抓取百度 echo snapshot($url); //输出结果为图片地址 echo snapshot($url, './baidu ...
- 改变快照内容php,PHP生成网页快照 代码
$url = 'www.baidu.com'; //抓取百度 echo snapshot($url); //输出结果为图片地址 echo snapshot($url, './baidu.png'); ...
- JAVA线程根据给定URL生成网页快照
最近项目中遇到这样一个需求,根据一个动态的URL来生成对应的网页快照.网上找了很多资料,最终采用如下方法解决. 生成原理:将动态URL的页面先生成HTML文件,然后再根据生成的HTML生成快照.生成的 ...
- IIS7 MVC网站生成、发布
(1)生成. 确保System.Web.Mvc.dll在bin目录下 (2)发布网站到文件系统 (3)在IIS中为网站添加应用程序池(一个虚拟目录,一个应用程序池) (4)添加在默认网站下添加虚拟目录 ...
- asp.net mvc + javascript生成下载文件
近期做的是对现有项目进行重构.WEB FROM改成MVC,其实也算是推倒重来了. 里面有一个导出功能,将数据输出成txt文件,供下载.原先的做法是有一个隐藏的iframe,在这个iframe的页面中设 ...
- DWZ 用dialog调用MVC自动生成的密码修改页面一直出现“数据加载中,请稍等...”和去掉“数据加载中,请稍等”的方法
在MVC框架中调用JS框架<DWZ富客户端框架>在用dialog调用自动MVC系统自动生成的密码修改页面一直出现"数据加载中,请稍等..."的问题. <a tit ...
最新文章
- SAP 调用smartforms打印如何统计实际打印状态和打印次数
- mariadb mysql同步_MySQL(Mariadb)主从同步基础
- Java 反射 mdc失效,log4j中MDC使用陷阱
- 语言 蜗牛爬树问题_趣数课堂:小学奥数蜗牛爬井问题,再加一只乌龟,你算不出来了吧...
- notepad 快速新建html,notepad编写html
- 论文 | 研究方法 —— 结构方程
- python控制、监听鼠标键盘
- Linux安装搜狗拼音和谷歌拼音输入法
- Java Swing实现简易计算器
- 开关电源基础知识(上)_拓扑类型、效率与输入输出及占空比的关系
- [转载] 之前碰过的木马分析
- 抽奖 java_年会抽奖程序 java开发 可内定中奖人员 一键导入员工 使用简单
- 关于计算机听课如何做笔记,如何高效地听课记录笔记
- win 10 硬盘安装 ubuntu 18.04
- IMO 2017 T4解答
- 数据库sql中S P J SPJ 表的创建
- W-Hive 支持苹果 iOS16 新版本
- JavaScript—进阶篇
- linux 补充文件名,linux修改文件名(Linux 下使用 shell 批量修改文件名的三种方法)...
- STM32G4系列通过SPI配置DRV8353S驱动芯片
热门文章
- 计算机毕业设计Android个人日常消费理财_财务软件
- 飞控pixhawk硬件框架
- html怎么连接mysql_html怎么连接数据库
- 互联网如何利用短信平台
- obs-studio源码分析:窗口、显示器(桌面)捕捉(转载)
- python中土耳其编码范围_python中的土耳其语字符
- 金三银四,磨砺锋芒;剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)下
- mac电脑连接安卓手机
- vue路由跳转 router-link 清除历史记录的三种方式
- 常见笔顺错误的字_汉字笔顺已列入中考范围,这些常见字笔顺,常被写错,自查一下吧...