压缩图片

来源:互联网 发布:mysql数据库登陆 编辑:程序博客网 时间:2024/06/06 04:45
/**     * 压缩图片     *     * @param image     * @return     */    public static Bitmap compressImage(Bitmap image) {        ByteArrayOutputStream baos = new ByteArrayOutputStream();        image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中        int options = 100;        if (baos.toByteArray().length / 1024 > 3024) {            image.compress(Bitmap.CompressFormat.JPEG, 40, baos);//这里压缩options%,把压缩后的数据存放到baos中        } else if (baos.toByteArray().length / 1024 > 2024) {            image.compress(Bitmap.CompressFormat.JPEG, 50, baos);//这里压缩options%,把压缩后的数据存放到baos中        } else if (baos.toByteArray().length / 1024 > 1024) {            image.compress(Bitmap.CompressFormat.JPEG, 40, baos);//这里压缩options%,把压缩后的数据存放到baos中        }//        while (baos.toByteArray().length / 1024 > 500) {  //循环判断如果压缩后图片是否大于100kb,大于继续压缩//            baos.reset();//重置baos即清空baos//            image.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中//            options -= 5;//每次都减少10//        }        ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());//把压缩后的数据baos存放到ByteArrayInputStream中        Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);//把ByteArrayInputStream数据生成图片        return bitmap;    }
原创粉丝点击