wenju
wenju
  • 发布:2015-07-22 17:43
  • 更新:2015-07-23 19:54
  • 阅读:1739

压缩图片设置的尺寸和输出的总是少一半

分类:HTML5+
plus.zip.compressImage({  
                    src: img_src,  
                    dst: img_zip,  
                    width: "800px",//设置的是800px  
                    overwrite:true  
                },  
                function(e) {  
                    var width = e.width; // 压缩转换后图片的实际宽度,单位为px  
                    console.log("width="+width);//输出结果却是400px???????  
                });

从相册选择照片后,执行压缩,我设置压缩尺寸宽度800px,结果出来的是400px;导致图片很蒙;
Android4.4系统 华为mate7和小米3测试 也是如此 宽度总少一半

2015-07-22 17:43 负责人:无 分享
已邀请:
DCloud_Android_ST

DCloud_Android_ST

已知BUG 并已修复,请等待下一版本。

  • wenju (作者)

    还有个问题,图片旋转后 质量会变差 图片会越旋转越蒙

    2015-07-23 09:21

wenju

wenju (作者) - https://www.mescroll.com -- 精致的下拉刷新和上拉加载组件

plus.zip.compressImage({  
            src:imgPath,  
            dst:img_zip,  
            rotate:90  
        },  
        function(e) {  
            console.log(e.size+","+e.width+","+e.height);  
        },function (e) {  
            console.log(e);  
        });

从相册选择图片后,执行旋转90度, 多旋转几次图片就会蒙了;总之,旋转的次数越多越蒙

  • DCloud_Android_ST

    多旋转几次 图片会变的模糊是吗

    2015-07-23 10:39

  • wenju (作者)

    回复 DCloud_Android_ST:对的呢 越转越模糊

    2015-07-23 10:40

  • DCloud_Android_ST

    确实有这个可能 请问你的测试图片是多大的,手机屏幕分辨率是多少呢,最后就是什么场景需要你对一个图片进行多次旋转呢?不能一次就旋转出你所要的角度?

    2015-07-23 10:55

  • wenju (作者)

    回复 DCloud_Android_ST:用户从相册选择图片回来后,可以对图片进行旋转和裁切,每次旋转90度,用户肯定会无聊多转几下的,

    2015-07-23 11:27

  • wenju (作者)

    回复 DCloud_Android_ST:我是在华为mate7测试,从相册回来的图比较大 我先缩小尺寸为800px;然后对这个800px的图 旋转操作,越转越蒙

    2015-07-23 11:29

  • wenju (作者)

    回复 DCloud_Android_ST:缩小和旋转的代码就是我上面贴出来的

    2015-07-23 11:30

  • DCloud_Android_ST

    规范上明确写着quality:默认值为50 所以你每次调用就会对图片进行质量压缩50,所以造成的越来越模糊,你只能把quality 的值加上,不要每次都会默认值50处理

    2015-07-23 11:32

wenju

wenju (作者) - https://www.mescroll.com -- 精致的下拉刷新和上拉加载组件

回复 DCloud_Android_ST:
我认真看了下 确实quality:默认值为50
那么文档的这个示例都得加上quality:100
我觉得应该不止一个人直接拷示例去用了哦

  • DCloud_Android_ST

    有没有想到还有多次调用改接口的场景。。。。

    2015-07-23 12:15

wenju

wenju (作者) - https://www.mescroll.com -- 精致的下拉刷新和上拉加载组件

回复 DCloud_Android_ST: 亲 我都快疯掉了
现在压缩尺寸正常了,设置宽度800px,压缩出来的也是800px,这个正常了!

但是旋转还是一样不行,,我设置质量100了,还是越转越蒙哇,而且质量越来越大;

旋转的代码

function rotateImg(img_path, success) {  
    var img_zip = "_doc/zip/" + md5(img_path) + ".jpg";  
    console.log("src="+img_path+", dst="+img_zip);  
    plus.zip.compressImage({  
            src: img_path,  
            dst: img_zip,  
            rotate: 90,  
            overwrite: true,  
            quality:100  
        },  
        function(e) {  
            console.log("旋转图片=size=" +e.size + ",width=" + e.width + ",height=" + e.height);  
            success(e.target);  
        });  
}

Log输出:

wenju

wenju (作者) - https://www.mescroll.com -- 精致的下拉刷新和上拉加载组件

  • DCloud_Android_ST

    工程测试了 进行了部分优化,但是如果你对一张图片不停地去进行操作还是会导致图片失真,最好的办法就是操作的图片尽量用源图片!这个思路应该就能帮你解决问题,不过确实压缩还存在问题,以进行了优化,请等待一下版本更新,

    2015-07-24 13:34

  • wenju (作者)

    回复 DCloud_Android_ST:好哒 O(∩_∩)O谢谢

    2015-07-24 14:17

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