公司提了图片压缩的需求,在网上查了些资料,用canvas实现了,但发现使用wx.canvasToTempFilePath如果手旅则只是打印图片地址然后点击地址查看图片,或者保存图片至相册再查看图片,拿到的图片就是正常的,但我如果要在压缩后的success回调中使用图片去做一些事情(比如编码wx.getFileSystemManager().readFile、上传至服务器wx.request),拿到的图片就是空白的毕棚。
经过多次调试后发现,是这里的问题
这里需要设置镇辩的多一点。我之前设置的100,即100ms,可能因为上传至服务器是异步的,导致100ms内canvas没法完成图片加载 *** 作,生成的图片就是空白的。改成1000之后,图片有足够长的时间渲染,就不会出现空白图片的问题了。
canvas转换图片api不相同,并且参数不相同,支付宝参数与支付宝开发者文档中的参数都出现不相同
下面我们看微信的wx.canvasToTempFilePath和支付宝ctx.toTempFilePath中success返回的参数差异,我们如果要获取对应的图片,wx返回两种图片格式,一种是本地图片,一种是http协议内部临时图片(tempFilePath)。而支付宝扮昌腊迅和只存在一种图片厅滑格式,http协议临时图片(apFilePath)。
微信端中如果需要绘画canvas生成的图片进已有的canvas,采用drawImage,其中第一个参数是图片地址,微信端中要采用tempFilePath参数,支付宝端需要采用apFilePath
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)