【canvas.drawImage】的严重BUG。

发布于 6 年前作者 minchang9964 次浏览最后编辑 6 年前来自 ask

在安卓上面通过canvas.drawImage绘制图片的时候,如果图片的尺寸宽和高超过2804*2804,(形如2805*2805),canvas就会绘制不出来,在IOS里面则能够正常显示,希望官方给个说法

10 回复
yang98
yang981 楼6 年前

时隔一年了,这个问题好像也没有解决,传入的对象的宽度如果太大就画不来了

juanlong
juanlong2 楼6 年前

画得来,但没有一个正确计算的denisty,画出来也是错的。

其实降级了没关系,正确计算一下src rect降级后的坐标再画就行了,也不知道为啥不改进一下。

moxia
moxia3 楼6 年前

使用drawImage的目的主要是为了自己压缩图片(不用chooseImage自带的压缩主要是chooseImage的失真太高),希望后续版本中的chooseImage能提供自定义的压缩比例,这样就省事多了。o(* ̄▽ ̄*)ブ

weiwan
weiwan4 楼6 年前

图片大小,刚才又测试安卓版本5.1的华为安卓正常,安卓版本7.1的一加3T测试异常,安卓版本6.0的魅族MX6测试异常

humin
humin5 楼6 年前

2804 * 2804是原图图片大小

baiping
baiping6 楼6 年前

安卓版本为5.1的魅蓝Note3也出现异常

qiang26
qiang267 楼6 年前

这里,小程序前端页面用的是逻辑像素,而图片是物理像素,如果你drawImage的时候使用了2804 * 2804(逻辑像素),那转换成物理像素时,native会乘于density,也就是2804 * density * 2804 * density,这里会decode出一个很大的bitmap,很大可能会挂掉,目前还没有比较好的方案解决这个问题,你可以先通过在drawImage的时候设置一下width和height(换算成逻辑像素)来暂时解决一下这个问题;

xiaqiang
xiaqiang8 楼6 年前

你这里的2804 * 2804是图片大小?还是drawImage的目标区域大小?

lei01
lei019 楼6 年前

chooseImage这个问题我们内部先讨论一下~

lixue
lixue10 楼4 年前

默默顶一下