第二次拍照截取页面无图片,微信版本(6.5.22)以前是好的,代码如下
wx.createCameraContext().takePhoto({
quality:'high',
success:res=>{
const width =this.data.canvasWidth;
const height =this.data.canvasHeight;
const unit=width/375;
const file=res.tempImagePath;
const ctx =wx.createCanvasContext('myCanvas');
ctx.drawImage(file,0,0,width,height);
ctx.draw();
wx.canvasToTempFilePath({
canvasId:'myCanvas',
x:(width-75*unit)/2,
y:50*unit,
width:75*unit,
height:450*unit,
destWidth:75*unit,
destHeight:450*unit,
success:res=>{
const picture=res.tempFilePath;
this.setData({rs:picture,takePhoto:false,focus:false})
},
fail:res=>{
AjaxMsg(res).then(res=>{});
}
});
},
fail:res=>{
AjaxMsg(res).then(res=>{});
}
});
@ 李帅领 你这问题无关紧要,因为是网络图片,就要打开调试,不过上线后就没事了
我的出现的问题麻烦帮忙看下 我的canvas预览图片的时候 在手机上只有代开调试 才能显示图片 关闭调试 图片不显示 怎么回事儿呢?
目前完美解决,非常感谢您,希望更多有这个问题的朋友能看到
非常感谢您的建议,已解决。但是还是有点纠结以前版本没有过
不知道这样能不能奏效
我是
ctx.drawImage(file,0,0,width,height);
setTimeout(() => {
ctx.draw();
setTimeout(() => {
wx.canvasToTempFilePath()
}, 300)
}, 1000)
@嗯 我马上去试试,非常感谢您的帮助
success:res=>{
const width =this.data.canvasWidth;
const height =this.data.canvasHeight;
const unit=width/375;
const file=res.tempImagePath;
const ctx =wx.createCanvasContext('myCanvas');
ctx.drawImage(file,0,0,width,height);
ctx.draw();
setTimeout( () => {
wx.canvasToTempFilePath({
canvasId:'myCanvas',
x:(width-75*unit)/2,
y:50*unit,
width:75*unit,
height:450*unit,
destWidth:75*unit,
destHeight:450*unit,
success:res=>{
const picture=res.tempFilePath;
this.setData({rs:picture,takePhoto:false,focus:false})
},
fail:res=>{
AjaxMsg(res).then(res=>{});
}
});
}, 300)
},
fail:res=>{
AjaxMsg(res).then(res=>{});
}
});
@嗯 首页很感谢您的回复,请教一下该如何写延迟?您上面写的我好像不能直接用,之前没用过延时的写法。下面是我的代码,请问如何正确写延时,希望能指教一下,非常感谢。
wx.canvasToTempFilePath({
canvasId: 'identify',
success: function success(res) {
var savedFilePath = res.savedFilePath;
}
})
setTimeout( () => {
wx.canvasToTempFilePath()
}, 300)
我是300 , 用完全公司的安卓机都没出现问题
没用,各种问题
ctx.drawImage 存在 异步
建议 setTimeout 几百毫秒
药到病除?
官方说会给 ctx.drawImage加入回调 是在无法确定的下个版本