我尝试使用JPG压缩功能压缩位图。
这是我的代码:
ByteArrayOutputStream out = new ByteArrayOutputStream();
originalBitmap.compress(Bitmap.CompressFormat.JPEG, 80, out);
byte[] newArray = out.toByteArray();
Bitmap compressed = BitmapFactory.decodeByteArray(newArray, 0, newArray.length);
奇怪的行为是,如果我将压缩因子(即80到50)更改为" out"数组将改变....但位图"压缩"保持与" originalBitmap"。
相同的字节数有人可以向我解释原因吗?!?
提前致谢...
答案 0 :(得分:2)
Bitmap
占用的字节数为:X * Y * D
,其中:
X
是宽度,以像素为单位Y
是高度,以像素为单位D
是位深度,以像素为单位,默认为4 是否从JPEG,PNG,WebP或其他任何内容加载Bitmap
并不重要。字节数仅由分辨率(宽度乘以高度)和位深度确定。
因此,在您的情况下,您正在成功创建一个与之前字节数相同的Bitmap
,只需输出一些模糊的数据。