html2canvas:將html的dom變成圖片,並儲存
如何將HTML頁面儲存為圖片?
- 將DOM改寫為canvas,然後利用canvas的toDataURL方法實現將DOM輸出為包含圖片展示的data url。
- 使用HtmlCanvas2實現
話不多說,直接上程式碼.......
1.npm下載 和html2canvas:
npm install html2canvas
2.引入 html2canvas:
import html2canvas from 'html2canvas'
3.呼叫方法
基於html2canvas.js可將一個元素渲染為canvas,只需要簡單的呼叫html2canvas(element[, options]);即可。下列html2canvas方法會返回一個包含有<canvas>元素的promise:
html2canvas(document.body).then(function(canvas) {
document.body.appendChild(canvas);
});
此時就將想要轉化的dom元素轉成了canvas形式,但是可能輸出效果並不如意,所以這裡還可以加限制條件,就是html2canvas的第二個引數,此外通過Canvas2Image的convertToImage方法,將canvas轉化為img,
注⚠️ 這裡返回的 img,是一個 dom ,所以可以加入到其他的dom裡,如果需要圖片的base64,則是 img.src。
var opts = {
scale: scale,
canvas: canvas,
logging: true,
width: width,
height: height,
backgroundcolor: '#FFFFFF',
useCORS: true // 用於解決圖片跨域
};
html2canvas(shareContent, opts).then(function (canvas) {
var context = canvas.getContext('2d');
var img = Canvas2Image.convertToImage(canvas, canvas.width, canvas.height);
document.body.appendChild(img);
$(img).css({
"width": canvas.width / 2 + "px",
"height": canvas.height / 2 + "px",
})
});
這裡就得到了由dom節點轉化的海報了,然後就是儲存這個圖片。這裡直接附上兩個函式,直接呼叫即可。
/**
* @description: 下載圖片
* @param {string} url 圖片資訊,這裡是base64
* @param {string} name 圖片的名字
*/
downloadByBlob(url, name) {
let image = new Image();
image.setAttribute("crossOrigin", "anonymous");
image.src = url;
image.onload = () => {
let canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;
let ctx = canvas.getContext("2d");
ctx.drawImage(image, 0, 0, image.width, image.height);
canvas.toBlob((blob) => {
let url = URL.createObjectURL(blob);
this.download(url, name);
// 用完釋放URL物件
URL.revokeObjectURL(url);
});
};
},
/**
* @description: 下載圖片
* @param {string} url 圖片資訊,這裡是base64
* @param {string} name 圖片的名字
*/
download(href, name) {
let eleLink = document.createElement('a')
eleLink.download = name
eleLink.href = href
eleLink.click()
eleLink.remove()
}
總結:親身實驗的效果,確實能夠達到目的,但是下載圖片清晰度不夠,展示效果不太好,如果想達到清晰度,可以降低canvas抗鋸齒,詳細說明看如下連結:
相關文章
- 將網站儲存成圖片網站
- html2canvas擷取圖片並下載HTMLCanvas
- 對html進行截圖並儲存為本地圖片HTML地圖
- 基於html2canvas實現網頁儲存為圖片及圖片清晰度優化HTMLCanvas網頁優化
- 將echarts生成的圖表變為圖片儲存起來Echarts
- html2canvas將指定區域匯出為圖片(js將div匯出為圖片)HTMLCanvasJS
- 在vue專案中基於html2canvas實現網頁儲存為圖片VueHTMLCanvas網頁
- Android將view儲存為圖片並放在相簿中AndroidView
- 使用JavaScript將當前頁面儲存成PDF,支援圖片和文字的儲存JavaScript
- html2canvas 如何生成高清圖片HTMLCanvas
- html2canvas生成圖片顯示不全HTMLCanvas
- C# 截圖並儲存為圖片C#
- 生成二維碼,並且儲存,指定位置的view成圖片,並且儲存到本地相簿View
- 將圖片檔案儲存到Oracle的儲存過程Oracle儲存過程
- uni-app 中使用 html2canvas 生成圖片APPHTMLCanvas
- 儲存圖片
- 將HTML5 Canvas的內容儲存為圖片藉助toDataURL實現HTMLCanvas
- R 如何把ployly生成的圖表儲存成htmlHTML
- Html2canvas——圖片空白的幾種排查解決方案HTMLCanvas
- Android——儲存圖片到外部儲存並進行原生分享Android
- 使用html2canvas將頁面轉成圖,用canvas2image下載HTMLCanvas
- 將 HTML 生成圖片HTML
- Activiti 儲存圖片
- Excel 讀取圖片並獲取儲存路徑Excel
- html canvas 圖片壓縮後 透明背景變成黑色HTMLCanvas
- 使用Java將圖片生成sequence file並儲存到HBaseJava
- Android將圖片儲存到相簿並及時看到Android
- Win10把預設圖片儲存格式變成“jfif”了,怎麼變回“JPG”格式?Win10
- MATLAB將figure視窗儲存為圖片Matlab
- iOS開發-新建相簿並儲存圖片到該相簿iOS
- php獲取遠端網站圖片並儲存本地PHP網站
- Javascript 將html轉成pdf,下載,支援多頁哦(html2canvas 和 jsPDF)JavaScriptHTMLCanvasJS
- 將網頁儲存為圖片形式程式碼例項網頁
- vue+element 將圖片壓縮並轉換成base64上傳圖片Vue
- asp.net儲存圖片ASP.NET
- 儲存圖片到SD卡SD卡
- Matlab GUI儲存圖片MatlabGUI
- Delphi儲存網頁中的圖片網頁