www.yzc261.comandroid 怎样把Bitmap中断紧缩?

( www.yzc261.com )

如今在做微信的图片分享,之前不断测试失败,其后得知缩略图的大小要在32K以下(不想吐槽腾讯的文档),讨教怎样把Bitmap中断紧缩?

复杂粗犷上代码

 /**
     * 图片质量紧缩
     * @param image
     * @param srcPath 要保管的途径
     * @return
     */
    public static Bitmap compressImage(Bitmap image, String srcPath) {

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        image.compress(Bitmap.CompressFormat.JPEG, 100, baos);// 质量紧缩办法,这里100表现不紧缩,把紧缩后的数据寄存到baos中
        int options = 100;
        while (baos.toByteArray().length / 1024 > 100) {    // 循环判别假如紧缩后图片能否大于100kb,大于持续紧缩
            baos.reset();// 重置baos即清空baos
            options -= 10;// 每次都添加10
            image.compress(Bitmap.CompressFormat.JPEG, options, baos);// 这里紧缩options%,把紧缩后的数据寄存到baos中

        }
        ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());// 把紧缩后的数据baos寄存到ByteArrayInputStream中
        Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);// 把ByteArrayInputStream数据天生图片
        try {
            FileOutputStream out = new FileOutputStream(srcPath);
            bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return bitmap;
    }

解码时运用insamplesesize中断大小调理
运用Bitmap compress紧缩时将quality设的低一些

分享是友盟的吗

假如是就用友盟的就好了

 mUMImage = new UMImage(context, shareImageUrl);
 weiXinShare.setShareImage(mUMImage);

(看完/读完)这篇文章有何感想! www.yzc261.com的分享…

发表评论

电子邮件地址不会被公开。 必填项已用*标注