Skip to main content

Tedshd's Dev note

Category: Canvas

Html2canvas

# 網站直接網頁截圖 基本上就是把要截圖的內容轉成 canvas 物件 再轉成圖片下載即可 ## 現成套件 html2canvas https://html2canvas.hertzen.com/ 但是如果要截圖的內容有用外部 url 載入的圖片需要注意一下 CORS 問題(canvas 的限制) ## 解決外部 url 載入圖片時 CORS 問題 原理 把外部載入的圖片轉換成二進制再轉成 dataurl 因為在 browser 上面可以解析與渲染 dataurl 所以就可以呈現在 canvas 裡面 這樣之後要截圖下載這個 canvas 的內容也沒問題 ## 補充轉換圖片的機制(解決載入外部圖片 CORS 問題) ### 處理方式 - 圖片轉 blob 圖片轉成 blob function toDataURL(url, callback) { var xhr = new XMLHttpRequest(); xhr.onload = function() { var reader = new FileReader(); reader.onloadend = function() { callback(reader.result); } reader. ...