1.生成带参的二维码:(用的插件是tki-qrcode)
我参考的网址:
我没有安装,直接是在components引用里面的两个文件文件;
git clone github.com/q310550690/… blog.csdn.net/qq_43455397…
2.下载图片成为临时链接
在小程序中,下载图片不能一次下载多张,只能一张一张下载
同时小程序的下载,需要在小程序的downloadFile合法域名中设置你的域名,否则会报不是合法域名
在下载图片的方法中,用Promise封装;用的时候用Promise.all是否完成;
this.imgArr = ['image1.png','image2.png'];
let mainImg = _this.imgArr.map(img => _this.wxOnloadImg(img)); //调用下载图片方法
Promise.all(mainImg).then(imgDown => {
//保存图片
//进行绘制
})
3.绘制图片
绘制圆形头像,先绘制圆形,然后把图片放入圆形中裁剪 绘制成功,一定要写在draw回调里面,否则会经常绘制不出来
//canvas的位置,这样在页面上就显示不出来
<canvas style="width: 602px; height: 938px;position:absolute;left:-1000px;top:-1000px;" canvas-id="firstCanvas" id="firstCanvas"></canvas>
var context = uni.createCanvasContext('firstCanvas');
context.drawImage(params.bigBg,0,0,602,938);
context.setFillStyle('#ffffff'); //文字颜色
context.setFontSize(28); //字号
context.fillText(params.name, 140, 80, ); //绘制文字
context.beginPath(); //绘制圆形头像开始
context.arc(82,82, 38, 38, Math.PI * 2);
context.setFillStyle('#fff');
context.fill();
context.clip();
context.drawImage(params.headImg,41,41,76,76) // 推进去图片
context.restore();
context.draw(false,()=>{ //false是否保留画布,后面是回调
uni.canvasToTempFilePath({
canvasId: 'firstCanvas',
success: function(res) {
//图片绘制成功操作
//res.tempFilePath 为图片链接;
//h5平台下,res.tempFilePath 为 base64
},
fail:function(res){
console.log(res);
}
})
});