javascript實現網頁截圖操作介紹
在當前javascript還不能夠實現網頁截圖操作,如果將來可以實現,那麼也是瀏覽器提供了對應的介面。
當前我們的實現方式是通過拿到畫素點的資訊來”拼湊”圖片。
常見的截圖方式:
phantomJS它提供了一個截圖函式,通過它可以整屏獲取頁面截圖,而且他支援的格式也比較多:JPG/PNG/GIF/PDF。通過簡單的兩句命令就可以把一個網頁擷取下來:
[JavaScript] 純文字檢視 複製程式碼// render.js var webPage = require('webpage'); var page = webPage.create(); page.viewportSize = { width: 1920, height: 1080 }; page.open("http://www.taobao.com", function start(status) { page.render('taobao_home.jpeg', {format: 'jpeg', quality: '100'}); phantom.exit(); });
安裝 phantomjs 之後執行下上面的檔案:
[JavaScript] 純文字檢視 複製程式碼phantomjs render.js
一張寬度很窄的淘寶首頁圖就儲存到了同目錄下的 taobao_home.jpeg 中。也有使用phantomjs做了很多有意思的東西,比如每隔 100ms 截圖,然後對比影像之間的差異,分析網頁的載入情況和效能問題,甚至做網頁的監控。好吧,話題收回來,繼續說說其他的截圖方式。
前端截圖方案:
能夠匯出圖片的,目前只有 canvas。頁面上的元素,除了圖片、視音訊、SVG等,其他都是文字,都可以使用 css 樣式變換出來。我們知道,在 canvas 中是可以繪製圖片和文字的,那麼問題就很好解決了。
(1).遍歷頁面的所有元素,提取DOM數。
(2).獲取渲染之後的每個 DOM 節點的內聯、外鏈 CSS 屬性
(3).將樣式轉換成 canvas 的屬性,利用 offset 等屬性輔助擺放位置,將節點對應到 canvas 上。
這個方案比較粗糙,但是對於簡單的頁面,以上操作就能匯出一張幾乎與原狀一模一樣的圖片。當然,我們想到的,也有人實現出來了,html2canvas 就是一個關注度很高的 js 截圖庫,它考慮的內容會更多更全面。下面是簡單的實現程式碼片段:
[JavaScript] 純文字檢視 複製程式碼html2canvas(document.body).then(function (canvas) { canvas.id = 'screenshotCanvas'; document.body.appendChild(canvas); });
此時,頁面的截圖已經 append 到了 body 中。canvas 提供了匯出圖片的函式:
[JavaScript] 純文字檢視 複製程式碼var can = documeng.getElementById("screenshotCanvas"); var imgDataURI = can.toDataURL('image/png');
相關文章
- javascript實現網頁截圖匯出方案JavaScript網頁
- PHP如何實現網頁截圖?PHP網頁
- Python網頁截圖/螢幕截圖/截長圖如何實現?Python網頁
- C#實現網頁截圖功能C#網頁
- 把HTML插入canvas實現網頁截圖HTMLCanvas網頁
- golang快速實現服務端網頁截圖Golang服務端網頁
- 如何在Mac網頁中長截圖?蘋果電腦網頁截圖怎麼截長圖?Mac網頁蘋果
- 網頁截圖工具CutyCapt網頁APT
- html2canvas-實現頁面截圖HTMLCanvas
- js實現的將網頁儲存為圖片簡單解釋介紹JS網頁
- javascript繼承的實現方式介紹JavaScript繼承
- 網頁截圖工具:WebShot for Mac網頁WebMac
- javascript實現的獲取頁面中所有錨點簡單介紹JavaScript
- CSS實現的網頁柵格佈局簡單介紹CSS網頁
- postMessage實現頁面通訊介紹
- javascript實現二維陣列實現簡單介紹JavaScript陣列
- javascript陣列操作簡單介紹JavaScript陣列
- javascript如何操作iframe簡單介紹JavaScript
- javascript如何實現iframe父子頁面的相互操作JavaScript
- javascript實現繼承方式簡單介紹JavaScript繼承
- javascript實現鏈式呼叫簡單介紹JavaScript
- 免費的網頁截圖API網頁API
- 怎麼生成完整的網頁截圖? Full Page Screen Capture 幫你實現網頁APT
- js實現視訊截圖,視訊批量截圖,canvas實現JSCanvas
- Oracle常見SQL分頁實現方案介紹OracleSQL
- javascript讀寫cookie操作簡單介紹JavaScriptCookie
- 網頁中插入百度地圖詳細介紹網頁地圖
- canvas實現截圖功能Canvas
- chrome-網頁gif截圖外掛Chrome網頁
- 網頁完整的長截圖怎麼截?3步搞定!網頁
- nodejs通過phantomjs實現下載網頁簡單介紹NodeJS網頁
- javascript模擬實現私有屬性簡單介紹JavaScript
- javascript如何實現模組程式設計簡單介紹JavaScript程式設計
- javascript操作html元素屬性簡單介紹JavaScriptHTML
- javascript DOM元素節點操作簡單介紹JavaScript
- Cookie介紹及JavaScript操作Cookie方法詳解CookieJavaScript
- Python+Selenium+phantomjs實現網頁模擬登入和截圖PythonJS網頁
- 微信長按網頁儲存為截圖網頁