问题模块 | 框架类型 | 问题类型 | API/组件名称 | 终端类型 | 操作系统 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|---|---|
API和组件 | 小程序 | Bug | chooseImage | 客户端 | Android | 6.6.6 | 2.0.8 |
在安卓手机上的微信内核与IOS的内核不一样,导致了chooseImage 的参数有问题,安卓手机上的选择原图的参数是无效的,个人认为这是个bug,sizeType 参数有两个,'original' : 原图、'compressed' : 压缩。
1.IOS下是无问题的,安卓下参数选择 original 无效(无效的意思是显示在页面上市压缩图 ,应该是base64 处理过了)
2.当安卓选择 original 参数时,再通过上传图片的接口,发现图片是能选择原图的,通过上传到微信服务器,后通过 accessToken 与 serverId 获取到图片的资源地址时,图片是原图的
猜想:
1.难道在安卓手机上的 original 原图通过 base64 的压缩了?需要把图片还原才能获取原图?
网友回复
被这个问题卡了好久,经过多次验证,如果想在前端直接获取图片的base流,不管设置'original' : 原图还是'compressed' : 压缩都不管用,安卓和ios下获取的base流都是缩略图的,只不过ios下的获取的缩略图清晰度较高,不影响使用,可以继续使用。安卓下就比较坑了,缩略图惨不忍睹。安卓下想要获取到清晰度较高的图片,只能先将图片上传到微信服务器,然后让后端去下载,这样就能获得到清晰度较高的图片。
经过多次验证,其实微信对图片的压缩策略相当不错,这里就不细说了。压缩图的清晰度也是很高的,基本可以满足需求,所以向微信服务器上传图片的时候最好上传压缩图,如果上传原图的话,现在手机照片一般都比较大,加上上传带宽比的限制,传一张图片需要很久,而且由于时间过长很容易失败。
学习了
没使用原图上传,都是压缩的的。省内存。
微信在安卓端返回的图片是压缩后的 这个猜想再15年就有了 结论是安卓端微信就是这么设置的,IOS 就是质量好些。
没用过这接口,具体问题也没看明白,见谅
小白一枚,还请见谅