const ctx = wx.createCanvasContext('myCanvas');
let canvasW = 525;
let canvasH = 420;
// 将图片绘制到画布
// drawImage(string imageResource, number dx, number dy, number dWidth, number dHeight, number sx, number sy, number sWidth, number sHeight);
ctx.drawImage(src, 0, 0, 300, 200);
//必须要用到, 并且需要在绘制成功后导出图片
ctx.draw(false, function() {
// 导出图片
wx.canvasToTempFilePath({
width: canvasW,
height: canvasH,
destWidth: canvasW,
destHeight: canvasH,
canvasId: 'myCanvas',
fileType: 'jpg',
success: function(res) {
// res.tempFilePath为导出的图片路径
typeof cb == 'function' && cb(res.tempFilePath);
console.log("裁剪完毕");
return false;
}
});
});
首次执行该段代码,canvas显示出图片
第二次执行该段代码,canvas不显示图片,调试发现ctx.draw()第二次没有执行,什么原因?
微信小程序开发问题解答
微信小程序开发者回答:
感谢@卢霄霄 同学解决了我的问题QAQ
微信小程序开发者回答:
是不是 canvas用wx:if隐藏过,然后canvas实例又没有重新初始化啊?
微信小程序开发者回答:
是啊是啊,用if隐藏了,但是我初始时,就是隐藏的,点击按钮后才显示,canvas也跟着显示
微信小程序开发者回答:
你试试用hidden,不用wx:if呢,或者每次setData显示以后都重新 wx.createCanvasContext呢
微信小程序开发者回答:
是wx:if的问题,用wx.createCanvasContext()没有解决,将if
改为hidden,问题解决
微信小程序开发者回答:
好哦,不追究原因了么~ 因为我这边也是用的 wx:if 控制的隐藏显示,正常的,可以重复draw呢。如果有兴趣的话,可以提供的代码片段,我帮你看看
微信小程序开发者回答:
我也遇到了这个问题
微信小程序开发者回答:
https://developers.weixin.qq.com/s/3xqP2HmD7k3o。可以帮忙看下吗
本文网址:http://www.91bianli.com/kaifazhinan/78704.html