分享一下我老师大神的人工智能教程!零基础,通俗易懂!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里面去了