推荐一款H5生成海报利器html2canvas
在H5开发中,我们经常会遇上动态生成海报的需求,而在Web前端中,生成图片非Canvas莫属。html2canvas.js就是一款优秀的插件,它可以轻松地帮你将HTML代码转换成Canvas,从而生成可保存分享的图片。
在H5开发中,我们经常会遇上动态生成海报的需求,而在Web前端中,生成图片非Canvas莫属。html2canvas.js就是一款优秀的插件,它可以轻松地帮你将HTML代码转换成Canvas,从而生成可保存分享的图片。
一、安装
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
});
可能出现的问题及相应解决方案
图片不显示问题
因为图片素材出现跨域,也就是说图片所在的域名与你项目所在域名不一致; 图片放在CDN上也会导致不显示,所以需要配置相关的跨域操作;
var opts = {
useCORS: true // 【重要】开启跨域配置
};
html2canvas(document.querySelector("#capture"), opts).then(canvas => {
document.body.appendChild(canvas);
});
还有一种方式就是图片可以使用base64的方式替代,这样不会产生跨域的问题
以上这篇推荐一款H5生成海报利器html2canvas就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持芦苇派。
原创文章,作者:ECHO陈文,如若转载,请注明出处:https://www.luweipai.cn/html/1681193001/