做微信小程序裁剪功能的时候,发现使用wx.canvasToTempFilePath的时候,一直裁剪出的是一张空白图片。找了好久的原因,我以为是ctx.draw的没成功就做了裁剪的原因,然后我这样做了
ctx.draw(false,wepy.canvasToTempFilePath({
canvasId: 'myCanvas',
x: canvasL,
y: canvasT,
width: canvasW,
height: canvasH,
destWidth: canvasW,
destHeight: canvasH,
fileType: this.imgtype,
success: (res) => {
wepy.hideLoading()
// 成功获得地址的地方
console.log(res.tempFilePath)
wepy.setStorage({
key: 'tempFilePaths',
data: [res.tempFilePath],
success: () => {
wepy.navigateTo({
url: 'picture'
})
}
})
// wepy.previewImage({
// current: '', // 当前显示图片的http链接
// urls: [res.tempFilePath] // 需要预览的图片http链接列表
// })
}
}))
在ctx.draw的回调函数里面执行wx.canvasToTempFilePath,稍微有了点希望,第一次是空白图片第二次才正常,后来发现可以用定时器解决这个问题!!!
ctx.drawImage(this.imageSrc)
ctx.draw(false)
setTimeout(() => {
wepy.canvasToTempFilePath({
canvasId: 'myCanvas',
x: canvasL,
y: canvasT,
width: canvasW,
height: canvasH,
destWidth: canvasW,
destHeight: canvasH,
fileType: this.imgtype,
success: (res) => {
wepy.hideLoading()
// 成功获得地址的地方
console.log(res.tempFilePath)
wepy.setStorage({
key: 'tempFilePaths',
data: [res.tempFilePath],
success: () => {
wepy.navigateTo({
url: 'picture'
})
}
})
// wepy.previewImage({
// current: '', // 当前显示图片的http链接
// urls: [res.tempFilePath] // 需要预览的图片http链接列表
// })
}
})
}, 500)
成功解决!!!