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平台上调用的是系统相册,而系统相册的裁剪功能默认会对大图进行压缩处理。

解决方案:

  1. 先获取原图再裁剪:放弃使用crop参数,先获取原图路径,然后使用独立的裁剪组件。
plus.gallery.pick(function(furl){
    // 获取原图路径
    var originalPath = furl;
    if(plus.os.name.toLowerCase() === 'android'){
        // 使用第三方裁剪库,如uView的裁剪组件
        // 或调用原生裁剪插件
    }
}, null, {
    filter: "image",
    multiple: false,
    system: false
});
  1. 使用uni-app插件市场的裁剪插件

    • 安装支持原图裁剪的插件,如uni-app-image-cropper
    • 这些插件通常基于Canvas实现,可以处理原图
  2. 原生插件方案

    • 如果需要更好的性能,可以考虑开发或购买原生插件
    • 原生插件可以直接调用Android的原生图片处理库
  3. 临时优化:调整crop参数,虽然不能完全解决问题,但可以改善:

crop: {
    quality: 100,  // 提高质量
    width: width,
    height: height,
    resize: false  // 尝试关闭resize
}
回到顶部