目的:由于setData时最大传输长度不得超过1048576,因此希望在上传base64图片前先将图片大小进行压缩。
问题:使用canvasToTempFilePath后再将图片转换为base64时,base64.length明显大上几倍。
场景:使用chooseImage选择图片后,需要根据图片大小进行判断压缩,压缩方法为调用canvas的drawImage方法重新定义图片大小,保证宽高均在1000以内,再利用canvasToTempFilePath方法得到压缩后的图片。得到压缩图片后,此时调用FileSystemManager.readFile(),以encoding为base64的方式读取压缩图片,返回的结果base64 的length明显比调用canvasToTempFilePath前要大几倍。导致压缩图片也没有意义。
关注一下 canvasToTempFilePath 的这几个参数,destWidth/destHeight 不设置时,输出大小默认会乘屏幕像素密度;fileType 不指定时,默认值是无损的 png。你可以指定这几个参数再试试?
指定fileType为jpg时有效,非常感谢!