前言
web端
web端使用html2canvas
组件来生成图片,它可以让我们编写的html
代码转成base64位
格式的图片进行显示。
文档地址http://html2canvas.hertzen.com/configuration/
.box
为需要生成图片的父节点
useCORS: true
是允许图片跨域
生成的出来的是base64位
格式的图片
var main = document.querySelector('.box');
html2canvas(main, {
useCORS: true
}).then((canvas) => {
var dataUrl = canvas.toDataURL();
console.log(dataUrl)
})
注意!!!
html2canvas新版本对ios
兼容性不是很好
最好安装1.0.0-rc.4
版本
小程序端
小程序主要通过绘制canvas
来生成图片,但是canvas
对我来说很抽象
想着是在开源社区上找插件进行处理
找到了Painter
组件,JSON
驱动帮助我们生成图片
文档地址https://github.com/Kujiale-Mobile/Painter
把开源项目目录components/painter
的文件下载,放置到自己的components/painter
文件夹中
页面json
文件进行引入
{
"usingComponents": {
"painter": "../../components/painter/painter"
}
}
image
用来放图片链接的容器
<painter customStyle='position: absolute; left: -9999rpx;' palette="{{template}}" bind:imgOK="canvasSuc" />
<image mode="widthFix" src="{{image}}" />
Page({
data: {
template: {},
image: "",
width: 750,
height: 900,
name: "wePanda",
avatar: "https://img.wangzhan5u.com/images/5/rhydlhy3u2thzgio.jpg",
code: "https://img.wangzhan5u.com/images/5/rhydl5mlljqddzmv.jpg",
},
onLoad() {
this.getDraw()
},
getDraw() {
this.setData({
template: {
background: '#74C7D7',
width: this.data.width + 'px',
height: this.data.height + 'px',
views: [{
type: 'rect',
css: {
top: '30px',
left: this.data.width / 2 + "px",
width: '690px',
height: '840px',
borderRadius: '10px',
color: '#fff',
align: 'center',
},
}, {
type: 'image',
url: this.data.avatar,
css: {
top: '100px',
left: this.data.width / 2 + "px",
width: '150px',
height: '150px',
borderRadius: '100px',
mode: "aspectFill",
align: 'center',
},
}, {
type: 'image',
url: this.data.code,
css: {
top: '300px',
left: this.data.width / 2 + "px",
width: '300px',
height: '300px',
mode: "aspectFill",
align: 'center',
},
}, {
type: 'text',
text: "长按扫描二维码关注公众号",
css: {
top: '700px',
left: this.data.width / 2 + 'px',
fontSize: '28px',
color: "#666666",
align: 'center',
},
}],
}
})
},
// 生成成功的回调
canvasSuc(e) {
this.setData({
image: e.detail.path
})
wx.saveImageToPhotosAlbum({
filePath: e.detail.path
})
},
})
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!