Awesomium(一)-- WebSnapshot
原来WebSnapshot可以这么简单
http://www.khrona.com/products/awesomium/
http://awesomiumdotnet.codeplex.com/
http://chriscavanagh.wordpress.com/2009/08/25/a-real-wpf-webbrowser/
http://khrona.com/wiki/index.php?title=Awesomium/
一、 WebSnapshot分析
WebSnapshot实现方法大致有两种思路:
第一种 —— 最最简单SB的方式就是屏幕截图,这种方式有三个很大的缺点:
1. 由于是截屏,所以无法在后台完成,而且霸占了屏幕。
2. 无法一次性截取那些内容较长的网页,可能还需要另外再做图片拼接工作,不可避免还要去处理拼接缝的问题。
3. 程序不能知道网页什么时候全部加载完毕,截屏时机把握不住。
等等…OUT!
第二种 —— 程序内嵌浏览器组件,通过浏览器的Render回调在后台来完成抓图。这种方式看来比较靠谱,但是难点在于用什么浏览器组件比较好。在经过尝试之后遇到了以下几种问题:
1. 由于需要后台抓图,所以过程中最好不要出现浏览器本身的界面。经过尝试嵌入IE浏览器没能解决,IE隐藏就没有回调…没办法,project改成窗体把IE放在角落用吧。
2. 虽然需要强行显示浏览器界面,但Render事件有了,不错。可惜Render事件只是针对HTML的Render,JS、Flash等外围组件是否加载完毕的事件不能获得。
3. 很多网页抓图效果就是白屏,例如map.baidu.com这种全JS或全Flash的网页就无法抓图。是浏览器没开放接口?还是需要额外处理才可以拿到JS或Flash的内容?
困难重重,此刻nono出现!推荐了Awesomium顿时豁然开朗。
二、 Awesomium简介
Awesomium是一个开源项目,其内核是基于google的Chrome,就是谷歌浏览器内核。有了它就可以将浏览器在Winform,WPF,Flash甚至3D游戏中嵌入,应用范围可以很广,它的功能已经不仅仅是一个浏览器而已,而是一个可以提供网页服务的类库,诸如网页抓图功能等,我们还可以通过WPF或者Flash将网页显示得更加绚丽,具有较高的灵活度,为我们开发人员带来了方便。
三、 实现步骤
1. 创建WebView
webView = webCore.CreateWebView(Width, Height, false);
2. 加载FinishLoading事件(这个事件包括了JS、Flash等浏览器组件的LoadingFinish)
webView.FinishLoading += OnFinishLoading;
3. 加载网页地址
webView.LoadUrl(URL);
4. 定时更新查询WebView状态以触发FinishLoading事件
webCore.Update();
5. 抓图
webView.RenderToBitmap(Width,Height,system.Drawing.Imaging.PixelFormat.Format24bppRgb);
转载于:https://www.cnblogs.com/canmusic/archive/2012/10/09/2717456.html
Awesomium(一)-- WebSnapshot相关推荐
- awesomium -- 出色的Web浏览插件
Awesonmium 是一个允许把网页嵌入到 3D 画面或游戏中的开源库. Awesomium 采用了目前业界速度最快的浏览器内核webkit和v8,其实是把Chrome内核嵌入到了里面.更加令人惊讶 ...
- awesomium --ExecuteJavascriptWithResult 执行异常
js文件中有如下语句 <pre name="code" class="javascript">parsedObj.走地=$(tds[10]).fin ...
- markdownpad 2 pro版本(注册码)
markdownpad 2 pro版本(注册码) 简介 markdown – 一种轻量级文本标记语言,当今程序员必备技能 markdownpad – windows平台下好用的markdown编辑器 ...
- MarkdownPad打开文档This view has crashed错误,内容不显示
问题现象 安装MarkdownPad 2后,打开文档有如下错误,文档内容不能正常显示 问题原因 LivePreview is not working - it displays an error me ...
- guava中 graphs 六
2019独角兽企业重金招聘Python工程师标准>>> guava中 graphs 六 介绍 guava的common.graph 是一个图类型结构的库,也就是实体和他们之间的关系的 ...
- [OSG]OSG的相关扩展
参考:osg官网 http://www.osgchina.org/index.php?view=article&id=176 http://trac.openscenegraph.org/pr ...
- 收藏开发人员常去网站
http://www.sencha.com/products/extjs/ extjs 官网 http://www.showframework.com/2012/06/extjs-4-getting- ...
- CEF:给客户端内嵌一个Chrome吧
原文:http://yogurtcat.com/posts/cef/hello-cef.html 发表于: 2013-03-31 20:20 | 更多相关文章: browser CEF Chro ...
- win10系统使用MarkdownPad2无法渲染
win10系统使用MarkdownPad2无法渲染 报错 this view has crashed! 问题在于html渲染出错 下载Awesomium 1.6.6 SDK ,安装完成,重启Mar ...
- MarkdownPad安装以及绘制 UML 图
要在本地编辑和查看markdown 文件,我选择了安装MarkdownPad 2. 从官网下载了MarkdownPad 2,安装后打开md文件,出现了This view has crashed的渲染错 ...
最新文章
- PHP TP5框架 安装运行 Warning: require(E:\phpstudy_pro\WWW\TP5\tp5\public/../thinkphp/base.php): failed to
- SSIS--FOR循环容器
- Winform中实现拖拽文件到ListView获取文件类型(附代码下载)
- 8086CPU写汇编的规则
- [PKUWC2018][loj2541]猎人杀
- 5分绩点转4分_U19男篮世界杯 | 郭昊文空砍23分4篮板5助攻 国青72-86负菲律宾
- 吴恩达机器学习作业5——偏差与方差
- 2层框架结构柱子间距_3分钟牢记框架结构要点
- ●洛谷P2606 [ZJOI2010]排列计数
- stm8s单片机2位数码管显示_STM8S103数字电压表头,增加四位显示,串口功能,附源码...
- java 复制网页文字_网页文字复制不了?你这样做,全网文字任你免费复制!快get!...
- 英语发音规则---K字母
- 中国20年互联网的发展史
- 在React项目中引入字体文件并使用
- Star Way To Heaven 二分 + 并查集 + Prime
- Mac系统关闭体统提示升级
- 送书 | 《Django项目开发实战》
- 计算机组装配置单3000左右,3000元左右电脑配置明细表清单
- Taro(React)实现具有滚动效果的倒数计时器
- 秀!学妹看见都惊呆的 Python 小项目!【界面应用项目及游戏开发】