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
2.??? 加載FinishLoading事件(這個事件包括了JS、Flash等瀏覽器組件的LoadingFinish)
3.??? 加載網頁地址
4.??? 定時更新查詢WebView狀態以觸發FinishLoading事件
5.??? 抓圖
轉載于:https://www.cnblogs.com/canmusic/archive/2012/10/09/2717456.html
總結
以上是生活随笔為你收集整理的Awesomium(一)-- WebSnapshot的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构视频|408视频|计算机组成原理
- 下一篇: 二维数组和指针数组