一、安装
npm 安装
npm install --save html2canvas
yarn 安装
yarn add html2canvas
直接引入 html2canvas.js
<script src="http://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
二、使用
我们先拿 vue 来举例
<div ref="picture">
<h4>Hello world!</h4>
</div>
// 配置项
const config= {
useCORS: true, // 使用跨域
};
html2canvas(this.$refs.picture, config).then((canvas) => {
document.body.appendChild(canvas); // 自动在下方显示绘制的canvas图片
});
如果想要将图片导出,可以这样写
// 生成图片
creatImg() {
const config= {
useCORS: true, // 使用跨域
};
html2canvas(this.$refs.picture, config).then((canvas) => {
const link = canvas.toDataURL("image/jpg");
this.exportPicture(link, "文件名");
});
}
// 导出图片
exportPicture(link, name = "未命名文件") {
const file = document.createElement("a");
file.style.display = "none";
file.href = link;
file.download = decodeURI(name);
document.body.appendChild(file);
file.click();
document.body.removeChild(file);
}
普通html的写法
<div id="capture" style="padding: 10px; background: #f5da55">
<h4 style="color: #000; ">Hello world!</h4>
</div>
html2canvas(document.querySelector("#capture")).then(canvas => {
let oImg = new Image();
oImg.src = canvas.toDataURL(); // 导出图片
document.body.appendChild(oImg); // 将生成的图片添加到body
});
可能出现的问题及相应解决方案
1、图片不显示问题
因为图片素材出现跨域,也就是说图片所在的域名与你项目所在域名不一致; 图片放在CDN上也会导致不显示,所以需要配置相关的跨域操作;
var opts = {
useCORS: true // 【重要】开启跨域配置
};
html2canvas(document.querySelector("#capture"), opts).then(canvas => {
document.body.appendChild(canvas);
});
还有一种方式就是图片可以使用base64的方式替代,这样不会产生跨域的问题
2、生成透明背景的图片
在opts里加个参数backgroundColor,如果想把背景换成别的就把这个设置成自己想要的颜色就行了。
html2canvas(document.querySelector("#capture"),{
backgroundColor: null, //设置图片背景为透明
}).then(canvas => {
let oImg = new Image();
oImg.src = canvas.toDataURL(); // 导出图片
document.body.appendChild(oImg); // 将生成的图片添加到body
});
本文来自转载,文章内容不代表随笔博客立场。
原文链接:推荐一款H5生成海报利器html2canvas
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
原文链接:推荐一款H5生成海报利器html2canvas
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论列表(1条)
好用