bitmap 压缩 compress

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
 /**     * Write a compressed version of the bitmap to the specified outputstream.     * If this returns true, the bitmap can be reconstructed by passing a     * corresponding inputstream to BitmapFactory.decodeStream(). Note: not     * all Formats support all bitmap configs directly, so it is possible that     * the returned bitmap from BitmapFactory could be in a different bitdepth,     * and/or may have lost per-pixel alpha (e.g. JPEG only supports opaque     * pixels).     *     * @param format   The format of the compressed image     * @param quality  Hint to the compressor, 0-100. 0 meaning compress for     *                 small size, 100 meaning compress for max quality. Some     *                 formats, like PNG which is lossless, will ignore the     *                 quality setting     * @param stream   The outputstream to write the compressed data.     * @return true if successfully compressed to the specified stream.     */    public boolean compress(CompressFormat format, int quality, OutputStream stream) {        checkRecycled("Can't compress a recycled bitmap");        // do explicit check before calling the native method        if (stream == null) {            throw new NullPointerException();        }        if (quality < 0 || quality > 100) {            throw new IllegalArgumentException("quality must be 0..100");        }        return nativeCompress(mNativeBitmap, format.nativeInt, quality,                              stream, new byte[WORKING_COMPRESS_STORAGE]);    }


以上摘自官方API

int count = image.getWidth() * image.getHeight() / 1024;Log.d("bitmap:compress", "压缩前:" + count);ByteArrayOutputStream bout = new ByteArrayOutputStream();// 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中image.compress(Bitmap.CompressFormat.JPEG, 50, bout); //修改第二个参数 count = image.getWidth() * image.getHeight() / 1024;Log.d("bitmap:compress", "压缩后:" + count);Log.d("bitmap:compress", "压缩后:" + bout.toByteArray().length / 1024);

运行以上代码--输出: 

压缩前 85 

压缩后 85 

压缩后 24  --

如果将第二个参数50改为10 则会

压缩前 85 

压缩后 85 

压缩后 13  --

————————————————————

可以发现bitmap基本上没有被压缩吧。  压缩后的数据被写到 bout里面去了


           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/gruhgd/article/details/83927050
今日推荐