7***@qq.com
7***@qq.com
  • 发布:2020-09-27 17:34
  • 更新:2021-06-12 15:09
  • 阅读:2266

【报Bug】Android 10 调用plus.zip.compressImage方法压缩图片时,报传入参数错误

分类:HTML5+

产品分类: HTML5+

HBuilderX版本号: 2.9.0

手机系统: Android

手机系统版本号: Android 10

手机厂商: 小米

手机机型: 小米9

打包方式: 云端

示例代码:
<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="utf-8">  
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />  
        <title></title>  
        <link href="//ask.dcloud.net.cn/css/mui.min.css" rel="stylesheet" />  
    </head>  
    <body>  
        <button type="button" class="mui-btn mui-btn-blue" onclick="getImage()">pick</button>  
        <br>  
        <br>  
        <br>  
        <button type="button" class="mui-btn mui-btn-blue" onclick="camera()">camera</button>  

        <script src="js/mui.min.js"></script>  
        <script type="text/javascript">  
            //相册选择照片并压缩出问题,因为照片在DICM公共目录  
            function getImage() {  
                plus.gallery.pick(function(file) {  
                    console.log('从相册选取图片成功,图片的路径为:' + file);  
                    var options = {  
                        src: file, //压缩转换原始图片的路径  
                        dst: '_documents/test.png',  
                        format: '.png',  
                        width: 'auto', //缩放图片的宽度  
                        height: 'auto', //(String 类型 )缩放图片的高度  
                        overwrite: true  
                    }  
                    plus.zip.compressImage(options,  
                        function(event) {  
                            console.log('压缩图片成功:');  
                        },  
                        function(error) {  
                            mui.toast('图片压缩失败!' + error.message);  
                        }  
                    )  
                }, function(error) {  
                    console.log('从相册选取图片失败' + error.message);  
                });  
            }  

            //调用相机拍照并压缩没问题,因为照片本来就在沙盒目录  
            function camera() {  
                var cmr = plus.camera.getCamera();  
                cmr.captureImage(function(capturedFile) {  
                    var options = {  
                        src: capturedFile, //压缩转换原始图片的路径  
                        dst: '_documents/test.png',  
                        format: '.png',  
                        width: '200px', //缩放图片的宽度  
                        height: '200px', //(String 类型 )缩放图片的高度  
                        overwrite: true  
                    }  
                    plus.zip.compressImage(options,  
                        function(event) {  
                            console.log('压缩图片成功:');  
                        },  
                        function(error) {  
                            mui.toast('图片压缩失败!' + error.message);  
                        }  
                    )  
                });  
            }  
        </script>  
    </body>  
</html>  

操作步骤:

云打包或者使用自定义基座 ,不能本地环境直接运行
使用plus.gallery.pick()选择一张系统相册的照片,然后调用plus.zip.compressImage()进行图片压缩

预期结果:

修复bug

实际结果:

报参数错误

bug描述:

小米9
Android 10环境
云打包或者使用自定义基座 ,不能本地环境直接运行
targetSdkVersion为29
使用plus.gallery.pick()选择一张系统相册的照片,然后调用plus.zip.compressImage()进行图片压缩会报
{"code":-1,"message":"参数错误"}

2020-09-27 17:34 负责人:DCloud_Android_ST 分享
已邀请:
DCloud_Android_ST

DCloud_Android_ST

确实 图片压缩这块并没有适配好公共目录资源 下个版本修复

  • 7***@qq.com (作者)

    非常感谢,我先试试你说的方案

    2020-09-28 10:53

DCloud_Android_ST

DCloud_Android_ST

HX2.9.2已修复该问题

7***@qq.com

7***@qq.com (作者)

唉,都没有个人能帮忙解决下问题

DCloud_Android_ST

DCloud_Android_ST

我们测试下看看

[已删除]

[已删除]

承接前端H5、小程序、APP、PC端网站等外包,主要技术栈为vue、uni-app,有意请加微信:13070273424(我是前端。1. 我找有单子的服务端合作人。2. 整个项目外包给我,我这也有个小团队。3. 兼职,公司/团队偶尔丢点小项目或者页面调整等)

p***@gmail.com

p***@gmail.com

@DCloud_Android_DQQ 你好!我升级到了最新版2.9.3.20201014, Android使用plus.zip.compressImage还是出现错误(云打包 google play)。

大肥光光

大肥光光

使用2.9.8hbuildx安卓真机测试 plus.zip.compressImage 压缩图片 errorCB报错,"code": -5,"message": "输出图片失败",这是什么大致的问题?ios上是可以正常压缩的。

  • DCloud_Android_ST

    示例发下我们排查看看

    2020-12-10 10:39

  • 大肥光光

    回复 DCloud_Android_ST: 我先大致描述下,我现在还没有时间构造一个示例,稍后我有时间专门做一下:

    以下是使用plus.zip.compressImage的参数

    {

    src: shootImg.resUrl, //来自拍照或者相册,使用 uni.chooseImage api获取的

    dst: shootImg.resUrl, //来自拍照或者相册,使用 uni.chooseImage api获取的,是不是因为这src 和dst参数一样导致的?

    quality: 20,

    format: 'jpg'

    }

    2020-12-12 11:53

  • DCloud_Android_ST

    回复 大肥光光: dst不能是相册地址

    2020-12-14 10:49

猫猫儿

猫猫儿 - 猫猫儿

我抓破脑袋都想不明白
file:///storage/emulated/0/Pictures/XXX/img-16229938157680ea4176f93e43ea25e98c83bcc6eccd4.jpg
file:///storage/emulated/0/Pictures/XXX/img-16234795611430b81844f707c43f7b1cf3f2bb401a58c.jpg
这样两张连文件名长度都一致的图片竟然一个正常压缩一个参数错误???这什么迷惑行为???

  • 猫猫儿

    我从来没见过这么无语的BUG,把第二张图片改成第一张的名字就能压缩,包括改成第一张然后把最后的4改成5也行???这什么鬼BUG??

    2021-06-12 15:02

6***@qq.com

该问题目前已经被锁定, 无法添加新回复