Bitmap对象在内存中的大小和转化为字节流的大小

来源:互联网 发布:win7公用网络无法修改 编辑:程序博客网 时间:2024/06/01 10:31

Bitmap对象在内存中的大小

比如我们构造Bitmap时设置宽200,高400,色彩模式为Bitmap.Config.ARGB_8888,那么它在内存中的大小就为200*400*4,色彩模式为Bitmap.Config.RGB_565,那么大小就是200*400*2,这些在内存中是固定大小的。

转化为字节流

比如我们用bitmap.compress(Bitmap.CompressFormat.PNG,100,fos);转化为字节流以后发现获取的fos.toByteArray()变小了,这是因为进行了压缩的缘故,相同宽高,不同的bitmap对象,压缩以后大小是不一样的,因为不同的bitmap色彩丰富程度不一样,表达的信息不一样,最终能压缩的大小也不一样。
bitmap.compress压缩是质量压缩,是因为它不会减少图片的像素。它是在保持像素的前提下改变图片的位深及透明度等,来达到压缩图片的目的。进过它压缩的图片文件大小会有改变,但是导入成bitmap后占得内存是不变的。因为要保持像素不变,所以它就无法无限压缩,到达一个值之后就不会继续变小了。所以我们发现有时候设置compress(CompressFormat format, int quality, OutputStream stream)quality参数不起作用。

0 0
原创粉丝点击