问题描述:
我有个需求,需要拍摄高清图片,使用chooseImage API拍摄图片后发现与原机拍摄出入比较大,不够高清,拍出来的照片大小最多就1MB左右,我原机拍摄能到4MB左右。设置了sizeType: [“original”],highQuality: true也没用。
问题原因
手机相机是4K分辨率,小程序chooselmage拍摄的是1080P的分辨率,所以用chooselmage拍摄后没有手机相机清晰的情况
解决办法:
配置useSystemCapture: true,这个属性是支付宝小程序的一个后门属性,内部技术人员提供给我的,可以拍出4K分辨率的照片。
代码使用示例
我这个是uniapp转支付宝小程序,原生支付宝也有useSystemCapture属性。这个属性在官方文档是找不到的。
uni.chooseImage({ count: 1, sourceType: ['camera'], useSystemCapture: true, success: (res) => { const tempFilePath = res.tempFilePaths[0]; // 获取图片大小信息 uni.getImageInfo({ src: tempFilePath, success: (res: any) => { console.log('图片大小信息:', res, res.size / 1024 / 1024, 'MB'); uploadFile(tempFilePath, 'image') .then(handleUploadSuccess) .catch(handleUploadError); } }); // 处理上传成功 const handleUploadSuccess = (uploadResult: any) => {}; // 处理上传失败 const handleUploadError = (err: any) => { uni.showToast({ title: err.message || '照片上传失败', icon: 'none' }); }; } });拍出来的图片信息