收藏
回答

华为mate 10,大图片在canvas上显示和导出都不正常

问题模块 框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
客户端 小程序 Bug Android Android 8.1.0 华为mate 10 7.0.3

现象:

从相册里选一张大图,10M以上,先用drawImage在canvas上画成一张物理像素为2k的图,立即调draw,再在draw里回调,通过canvasToTempFilePath导出文件路径,然后通过saveImageToPhotosAlbum保存到相册。canvas显示不出,相册里的图也显示不出。(非必现)

分析原因:

怀疑

1、drawImage是同步方法,drawImage执行完以后,立马调用draw时,其实图还没有完全画在位图上

2、canvasToTempFilePath成功回调时,图片文件并没有完全生成。因此在用saveImageToPhotosAlbum保存到相册时,就保存了一个没有完全写入的图片文件。

理由;

1、用性能较好的手机,比如:小米8做实验。发现有时能成功,

2、在drawImage后延迟一段时间再调用draw,就可能画出来


PS:已经根据这里的方案对drawImage设置成宽高时将物理像素改成了逻辑像素

https://developers.weixin.qq.com/community/develop/doc/87d5a3069f7088479aced91be0620bbc


最后一次编辑于  03-19
回答关注问题邀请回答
收藏

1 个回答

  • 社区技术运营专员-小柿子
    社区技术运营专员-小柿子
    03-20

    使用大图对性能较低的手机会存在比较慢的问题,建议了使用小一点的图片试下

    03-20
    赞同
    回复