最近做的小程序需要图片上传头像的功能,不对上传的图片做处理肯定出来的效果不好;所以就隐藏了一个canvas对上传的图片进行压缩或者进行大小的编辑;
通过chooseImage方法,可以拿到图片的临时路径;然后,drawImage到canvas上;再通过canvasToTempFilePath的方法将处理后的图片导出路径来,最后上传到服务器上;
那么问题出现了:选择的图片drawImage到canvas没有问题;但是怎么canvasToTempFilePath导出的路径图片都是空白的;
问题过程:
1、之前,通过这种方式导出来没有问题的;
2、从网上找到大家解决方式,通过draw回调来导出图片,但是还是不行,draw的第一次参数reserve设置为false;
3、修改fileType类型;
通过以上方法仍旧不行,经过反复跟踪才发现原来问题不出在canvasToTempFilePath这个方法上;原来是我在选择图片的时候canvas标签是hidden的,选择图片后才让它显示。
这样拿到的canvas中的图片对象是空的,造就了图片是空白的;
还有一种情况导出图片是空白,是因为draw的回调函数是异步的,在调用canvasToTempFilePath方法适当的加一些时间延迟;
分享不是为了别的,只是希望填坑;谢谢!