我发现用这个wx.compressImage方法来压缩jpg文件有很大的问题。
问题一,用‘微信开发者工具’(下面简称:电脑)跟手机‘开发版’上传同一张图片。压缩后的体积不一样。这里用了一张 1.47 MB= 1537177 Byte大小的图片。电脑上传的是
手机上传得到的是:
明显的看得出区别非常大,,,,,
还有一个问题,就是手机上传,用了压缩方法的比原来的图片还大!!
原来!264.01 KB= 270350 Byte
压缩后!296.56 KB= 303678 Byte
我很不解。。。。。
代码在这里:
//增加图片 选项图片
addImageTap(e) {
let that = this
let tempFiles = this.data.tempFiles
wx.chooseMedia({
count: 9,
sizeType: ['original', 'compressed'],
sourceType: ['album'],
success(res) {
console.log(res)
if (res.type == "video") {
wx.showToast({
title: '目前暂不支持上传视频。',
icon: 'none',
duration: 3000
})
return
}
console.log(res.tempFiles[0].tempFilePath)
wx.getImageInfo({
src: res.tempFiles[0].tempFilePath,
success(res) {
console.log(res,'1111')
}
})
that.uploadingImage(res.tempFiles[0].tempFilePath)//上传到云存储
wx.compressImage({
src: res.tempFiles[0].tempFilePath, // 图片路径
quality: 0, // 压缩质量
success(res) {
console.log(res)
that.uploadingImage(res.tempFilePath)
wx.getImageInfo({
src: res.tempFilePath,
success(res) {
console.log(res,'2222')
}
})
}
})
let arr = tempFiles.concat(res.tempFiles)
that.setData({
tempFiles: arr
})
}
})
},
备注:我手机有点原图,为了严谨。原图跟压缩图,我都一起上传到云存储,所以不存在数据不对的问题。。。
Byte
chooseImage和compressImage这两个api像迷一般,经过多次测试
1.chooseImage配置项sizeType: ['original', 'compressed']压缩图片, 开发工具和pc端小程序均无效。同一台手机上大概率有效,偶尔无效。
2.pc端小程序使用compressImage压缩后没有后缀
3.compressImage压缩后,图片比原图还大(偶现)
总结:使用微信自带的压缩图片方法极不靠谱
而且我还发现,用电脑压缩后的地址没有后缀。。。
半年过去了,问题仍然存在,我很好奇这种api是怎么上线的?浪费了我半天时间,还浪费了表情
解决了吗,大佬
本身存在,你不会才发现吧