压缩位图始终返回相同的字节大小

时间:2017-05-24 14:18:41

标签: android bitmapimage image-compression

我尝试使用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"。

相同的字节数

有人可以向我解释原因吗?!?

提前致谢...

1 个答案:

答案 0 :(得分:2)

Bitmap占用的字节数为:X * Y * D,其中:

  • X是宽度,以像素为单位
  • Y是高度,以像素为单位
  • D是位深度,以像素为单位,默认为4

是否从JPEG,PNG,WebP或其他任何内容加载Bitmap并不重要。字节数仅由分辨率(宽度乘以高度)和位深度确定。

因此,在您的情况下,您正在成功创建一个与之前字节数相同的Bitmap,只需输出一些模糊的数据。