最近做的小程序需要图片上传头像的功能,不对上传的图片做处理肯定出来的效果不好;所以就隐藏了一个canvas对上传的图片进行压缩或者进行大小的编辑;

通过chooseImage方法,可以拿到图片的临时路径;然后,drawImage到canvas上;再通过canvasToTempFilePath的方法将处理后的图片导出路径来,最后上传到服务器上;

那么问题出现了:选择的图片drawImage到canvas没有问题;但是怎么canvasToTempFilePath导出的路径图片都是空白的;

问题过程:

                 1、之前,通过这种方式导出来没有问题的;

                 2、从网上找到大家解决方式,通过draw回调来导出图片,但是还是不行,draw的第一次参数reserve设置为false;

                 3、修改fileType类型;

通过以上方法仍旧不行,经过反复跟踪才发现原来问题不出在canvasToTempFilePath这个方法上;原来是我在选择图片的时候canvas标签是hidden的,选择图片后才让它显示。

这样拿到的canvas中的图片对象是空的,造就了图片是空白的;

还有一种情况导出图片是空白,是因为draw的回调函数是异步的,在调用canvasToTempFilePath方法适当的加一些时间延迟;

 

分享不是为了别的,只是希望填坑;谢谢!

posted on 2018-02-05 16:18  iV5  阅读(11277)  评论(1编辑  收藏  举报