前端js儲存頁面為圖片下載到本地
手機端點選下載按鈕將頁面儲存成圖片到本地
前端js儲存頁面為圖片下載到本地的坑
html2canvas 識別 svg 解決方案
方案
html2canvas.js:可將 htmldom 轉為 canvas 元素。
canvasAPI:toDataUrl() 可將 canvas 轉為 base64 格式
替換 html 為 img,src為 base64
vue程式碼片段
手機端將頁面儲存為圖片(即頁面展現的內容實際是圖片),長按後可儲存到本地
import html2canvas from 'html2canvas';
replaceHtml2Img () {
// 獲取想要轉換的 DOM 節點
const dom = this.$refs['container'];
// DOM 節點計算後寬高
let {width, height} = dom.getBoundingClientRect();
// 獲取畫素比
const dpr = window.devicePixelRatio || 1;
// 建立自定義 canvas 元素
const canvas = document.createElement('canvas');
// 設定 canvas 元素屬性寬高為 DOM 節點寬高 * 畫素比
canvas.width = width * dpr;
canvas.height = height * dpr;
// 設定 canvas css寬高為 DOM 節點寬高
canvas.style.width = `${width}px`;
canvas.style.height = `${height}px`;
// 獲取畫筆
const context = canvas.getContext('2d');
// 將所有繪製內容放大畫素比倍,解決dpr不同圖片模糊問題
context.scale(dpr, dpr);
// 將自定義 canvas 作為配置項傳入,開始繪製
html2canvas(dom, {canvas}).then((canvas) => {
let dataUrl = canvas.toDataURL("image/png", 1.0);
let parent = dom.parentNode;
parent.innerHTML = `<img src="${dataUrl}" style="width: 100%">`;
});
}
pc端點選按鈕下載頁面dom為圖片到本地
handleDownload (id) {
let ele = document.getElementById(id);
let ignoreElements = ele.querySelector('.chart-download');
html2canvas(ele, {
logging: false,
ignoreElements: (elements) => { // 忽略的ele
return elements === ignoreElements;
}
}).then(function (canvas) {
// canvas轉為圖片流
let dataurl = canvas.toDataURL('image/png');
/*
// 非ie下正常,主要原因是ie下a標籤不支援download屬性
let donwLink = document.createElement('a');
donwLink.href = dataurl;
donwLink.download = "統計分析" + new Date().getTime(); // 圖片名字
donwLink.click();
let event = new MouseEvent('click');
donwLink.dispatchEvent(event);
*/
// 使用downloadjs相容ie下下載,https://github.com/rndme/download
// download(data, strFileName, strMimeType);
downloadjs(dataurl, `統計分析${new Date().getTime()}`, 'image/png');
});
}
相關文章
- js實現canvas儲存圖片為png格式並下載到本地JSCanvas
- app直播原始碼,uniapp點選按鈕 儲存頁面為圖片到本地APP原始碼
- 直播商城系統原始碼,點選按鈕 儲存頁面為圖片到本地原始碼
- Android儲存多張圖片到本地Android
- 原生JS實現base64圖片下載-圖片儲存到本地JS
- python 爬蟲之requests爬取頁面圖片的url,並將圖片下載到本地Python爬蟲
- html2canvas.js實現前端將頁面轉化為圖片並長按下載HTMLCanvasJS前端
- Python中scrapy下載儲存圖片Python
- 使用httpclient下載 頁面、圖片HTTPclient
- 對html進行截圖並儲存為本地圖片HTML地圖
- 儲存圖片到SD卡SD卡
- 前端錄屏並儲存影片到本地前端
- 使用JavaScript將當前頁面儲存成PDF,支援圖片和文字的儲存JavaScript
- 本地HTML中圖片下載HTML
- 使用Python實現網頁中圖片的批次下載和水印新增儲存Python網頁
- 圖片儲存-從七牛到 GithubGithub
- 儲存圖片
- C# 截圖並儲存為圖片C#
- 聊聊前端的本地儲存前端
- C# .NET 根據Url連結儲存Image圖片到本地磁碟C#
- 使用ABAP批量下載Markdown原始檔裡的圖片到本地
- 使用 JDAudioCrawler 將下載的音訊儲存到本地儲存音訊
- js—localstorage (本地儲存)必知JS
- 小程式–儲存圖片到相簿功能實現
- MATLAB將figure視窗儲存為圖片Matlab
- JS 將HTML頁面轉為PDF或者World 並下載JSHTML
- java+pgsql實現儲存圖片到資料庫,以及讀取資料庫儲存的圖片JavaSQL資料庫
- Javascrip—前端本地儲存講解(16)Java前端
- Android下載網路pdf檔案儲存至本地Android
- 頁面圖片預載入與懶載入策略
- 前端實現點選下載圖片前端
- 為什麼不用資料庫儲存圖片?資料庫
- 一文徹底解決H5頁面中長按儲存圖片H5
- 深入解析微信小程式頁面中實現的儲存圖片(附程式碼)微信小程式
- 用canvas生成圖片為頁面新增水印Canvas
- 花了一整天寫了個下載markdown圖片到本地的庫?
- 微信長按網頁儲存為截圖網頁
- base64 編碼轉圖片儲存本地和上傳 oss