uni-app uni.chooseImage在h5场景下不能进行图片压缩
uni-app uni.chooseImage在h5场景下不能进行图片压缩
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | win10 | HBuilderX |
产品分类:uniapp/H5
PC开发环境操作系统:Windows
浏览器平台:手机系统浏览器
浏览器版本:跟随手机系统
HBuilderX类型:正式
HBuilderX版本号:4.36
示例代码:
uni.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['camera','album'],
success: (res) => {
// #ifdef H5
console.log("
操作步骤:
运行代码后在真机进行测试,然后手机访问ip打开h5测试。
预期结果:
图片正常压缩
实际结果:
图片未进行压缩。
bug描述:
目的是想实现选择图片后压缩。但是测试发现不论是ios或者安卓,在h5场景下,均没有进行压缩。 ios使用测试机型为iphone13 相册选择同一图片 87242 113603 相机拍摄同一角度照片 183739 2660180
安卓测试机型:小米10 相册选择同一图片 64374 163846 相机拍摄同一角度照片 101350 3244271
更多关于uni-app uni.chooseImage在h5场景下不能进行图片压缩的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
需要看文档支不支持,而不是上来就发个是bug
更多关于uni-app uni.chooseImage在h5场景下不能进行图片压缩的实战教程也可以访问 https://www.itying.com/category-93-b0.html
关于uni.chooseImage在H5下压缩失效的问题,这是已知的H5平台限制。在H5环境下,sizeType参数实际不生效,浏览器原生的文件选择器不支持直接压缩。
建议解决方案:
- 使用uni.compressImage API进行二次压缩
- 自行实现图片压缩逻辑(推荐使用canvas压缩)
示例代码:
uni.chooseImage({
success: async (res) => {
const tempFile = res.tempFiles[0]
if(tempFile.size > 1024*1024){ //大于1MB才压缩
const compressed = await uni.compressImage({
src: tempFile.path,
quality: 70
})
//使用压缩后图片
}
}
})