uni-app gallery选择相册图片裁剪后,选择出来的图片不是原图
uni-app gallery选择相册图片裁剪后,选择出来的图片不是原图
示例代码:
function galleryCropImg(width,height,isfm) {
// 从相册中选择图片
plus.gallery.pick( function(furl){
var isAndr = getItem('isAndr');
if(isAndr=='false'){
furl = furl.files[0];
}
dealFileByCropUrl(furl,isfm);
}, function ( e ) {
//mtips( "取消选择图片" );
},{
filter:"image",
multiple:false,
editable:false,
system:false,
permissionAlert:true,
crop:{
quality:90,
width:width,
height:height,
resize:true
}
});
}
操作步骤:
无
预期结果:
希望安卓裁剪能使用原图裁剪
实际结果:
无
bug描述:
使用gallery的GalleryCropStyles参数后,弹出照片裁剪框裁剪照片。IOS可以正常使用原图进行裁剪,但是安卓使用的裁剪图不是原图,而是经过压缩的。因此安卓裁剪后的照片特别模糊,求解。app已经上线,反应问题的一大堆了,目前安卓未找到直接使用原图裁剪的参数配置,付费求解,急需解决。
更多关于uni-app gallery选择相册图片裁剪后,选择出来的图片不是原图的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
请问下有没有人帮忙回复一下啊,等回复呢
更多关于uni-app gallery选择相册图片裁剪后,选择出来的图片不是原图的实战教程也可以访问 https://www.itying.com/category-93-b0.html
问题已确认,将会在下次发版更新。
目前使用修复后的版本,裁剪照片后,会在系统相册生成一张裁剪后的照片,给用户体验度感觉很不好,可以增加一个选项,叫做“保存裁剪后的图片到图片库”,默认不保存呢。
这是Android系统底层限制导致的。plus.gallery.pick在Android平台上调用的是系统相册,而系统相册的裁剪功能默认会对大图进行压缩处理。
解决方案:
- 先获取原图再裁剪:放弃使用crop参数,先获取原图路径,然后使用独立的裁剪组件。
plus.gallery.pick(function(furl){
// 获取原图路径
var originalPath = furl;
if(plus.os.name.toLowerCase() === 'android'){
// 使用第三方裁剪库,如uView的裁剪组件
// 或调用原生裁剪插件
}
}, null, {
filter: "image",
multiple: false,
system: false
});
-
使用uni-app插件市场的裁剪插件:
- 安装支持原图裁剪的插件,如
uni-app-image-cropper - 这些插件通常基于Canvas实现,可以处理原图
- 安装支持原图裁剪的插件,如
-
原生插件方案:
- 如果需要更好的性能,可以考虑开发或购买原生插件
- 原生插件可以直接调用Android的原生图片处理库
-
临时优化:调整crop参数,虽然不能完全解决问题,但可以改善:
crop: {
quality: 100, // 提高质量
width: width,
height: height,
resize: false // 尝试关闭resize
}

