前端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原始碼
- python 爬蟲之requests爬取頁面圖片的url,並將圖片下載到本地Python爬蟲
- 原生JS實現base64圖片下載-圖片儲存到本地JS
- 微信H5頁儲存當前頁面為圖片踩坑H5
- 使用httpclient下載 頁面、圖片HTTPclient
- html2canvas.js實現前端將頁面轉化為圖片並長按下載HTMLCanvasJS前端
- 對html進行截圖並儲存為本地圖片HTML地圖
- UI-senior(資料本地化-如何儲存圖片到本地)UI
- Android儲存多張圖片到本地Android
- Python中scrapy下載儲存圖片Python
- 一次 H5 「儲存頁面為圖片」 的踩坑之旅H5
- 前端錄屏並儲存影片到本地前端
- 儲存圖片到SD卡SD卡
- 本地HTML中圖片下載HTML
- 使用JavaScript將當前頁面儲存成PDF,支援圖片和文字的儲存JavaScript
- iOS視訊、圖片下載加密 解密以及儲存到本地iOS加密解密
- 將網頁儲存為圖片形式程式碼例項網頁
- js實現的將網頁儲存為圖片簡單解釋介紹JS網頁
- Delphi儲存網頁中的圖片網頁
- iOS儲存網路圖片和讀取本地沙盒圖片iOS
- 圖片儲存-從七牛到 GithubGithub
- 利用NODEJS+Puppeteer實現伺服器儲存網頁為圖片和PDFNodeJS伺服器網頁
- 使用ABAP批量下載Markdown原始檔裡的圖片到本地
- 聊聊前端的本地儲存前端
- 使用Python實現網頁中圖片的批次下載和水印新增儲存Python網頁
- C# 截圖並儲存為圖片C#
- C# .NET 根據Url連結儲存Image圖片到本地磁碟C#
- 儲存檔案到本地
- python抓取網頁中圖片並儲存到本地Python網頁
- 將網頁內容以圖片形式儲存在本地網頁
- 用thinkphp將網路上的圖片下載到本地伺服器PHP伺服器
- Android儲存圖片到系統相簿Android
- 頁面圖片預載入與懶載入策略
- 將圖片儲存在本地沙盒路徑下
- nodejs圖片轉換位元組儲存NodeJS
- 用canvas生成圖片為頁面新增水印Canvas