通过wx.chooseImage()选择图片,然后drawImage()到canvas上,如果使用drawImage(sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight),就会遇到当照片大于2M(具体数值多少未具体测试)时,只能画一部分在canvas上,其他地方都是黑色。如果换成drawImage(dx, dy, dWidth, dHeight)就没有问题,但是这个方法又满足不了需求。希望官方能够修复一下,谢谢!
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | Bug | drawImage(sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) | 客户端 | 6.7.3 | 2.3.0 |
5 个回答
同样遇到
亲自测过,大于2M的图片在android上会绘制不全,iphone上完全没问题,小于2M的图片android和iphone都没问题。 这个官方的同学很容易能复现吧,拿一张大于2M的大图缩放绘制到canvas的一个小区域中就能复现。@nickname
我也碰到这个问题了,虽然说官方说明了canvas尺寸不能过大,但是把大尺寸图片drawImage()到小尺寸的canvas总可以吧?但drawImage()的话,如果源图像过大就会部分无法绘制出来,似乎是无法超过2000px左右。现在手机摄像头随便都是4000px了,但是楼主你给了我一个解决方案,就是先按原比例缩小到2000px以内,然后再进行裁剪。
请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
对了,这个问题只有在安卓真机上才会出现