现象:
从相册里选一张大图,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
使用大图对性能较低的手机会存在比较慢的问题,建议了使用小一点的图片试下