概述
1.获取手机宽度 进而设置canvas画布的宽度
onLoad() {
let that = this;
// 获取系统信息,设置canvas宽高
wx.getSystemInfo({
success(res) {
that.setData({
canvasWidth: res.windowWidth
})
}
})
},
2.获取图片信息 将图片保存到本地路径然后再去绘制, 不然容易出现canvas画不上然后保存图片到本地时候出现空白的问题
make:function(url){
var that=this;
console.log(url);
//获取图片信息
wx.getImageInfo({
src: url,
success: function(res){
console.log(JSON.stringify(res));
that.setData({
imgInfo:res
});
console.log(JSON.stringify(that.data.imgInfo));
let imageSize = util.imageZoomHeightUtil(that.data.imgInfo.width, that.data.imgInfo.height);//根据屏幕宽度
that.setData({ canvasHeight: imageSize.imageHeight });
console.log('imageSize等比例' + JSON.stringify(imageSize));
that.makeCanvas(url);
}
})
},
3.开始绘制图 ctx.draw(false, this.drawCallBack)一定要执行后面的回调函数
makeCanvas: function (url) {
var ctx = wx.createCanvasContext('canvas')
ctx.drawImage(url, 0, 0, this.data.imgInfo.width, this.data.imgInfo.height, 0, 0, this.data.canvasWidth, this.data.canvasHeight);
ctx.draw(false, this.drawCallBack)
},
drawCallBack: function () {
var that = this
wx.canvasToTempFilePath({
x: 0,
y: 0,
width: that.data.canvasWidth,
height: that.data.canvasHeight,
canvasId: 'canvas',
fileType: 'jpg',
success: function (res) {
// wx.hideLoading();
that.setData({
'img': res.tempFilePath
});
console.log('ok');
},
fail: function (res) {
wx.hideLoading();
wx.showToast({
icon: 'none',
title: '生成失败!',
});
}
})
},
完整demo源码下载地址:https://download.csdn.net/download/lmx15063393957/11259093
最后
以上就是甜美鲜花为你收集整理的微信小程序 实现canvas按照原图等比例不失真绘制海报图并保存海报图片到本地相册的全部内容,希望文章能够帮你解决微信小程序 实现canvas按照原图等比例不失真绘制海报图并保存海报图片到本地相册所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复