drawImage()有Bug,希望官方修复一下!
发布于 7 年前 作者 dingping 3895 次浏览 最后一次编辑是 6 年前 来自 问答

通过wx.chooseImage()选择图片,然后drawImage()到canvas上,如果使用drawImage(sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight),就会遇到当照片大于2M(具体数值多少未具体测试)时,只能画一部分在canvas上,其他地方都是黑色。如果换成drawImage(dx, dy, dWidth, dHeight)就没有问题,但是这个方法又满足不了需求。希望官方能够修复一下,谢谢!

5 回复

亲自测过,大于2M的图片在android上会绘制不全,iphone上完全没问题,小于2M的图片android和iphone都没问题。

这个官方的同学很容易能复现吧,拿一张大于2M的大图缩放绘制到canvas的一个小区域中就能复现。@nickname

请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

我也碰到这个问题了,虽然说官方说明了canvas尺寸不能过大,但是把大尺寸图片drawImage()到小尺寸的canvas总可以吧?但drawImage()的话,如果源图像过大就会部分无法绘制出来,似乎是无法超过2000px左右。现在手机摄像头随便都是4000px了,但是楼主你给了我一个解决方案,就是先按原比例缩小到2000px以内,然后再进行裁剪。

对了,这个问题只有在安卓真机上才会出现

回到顶部