从解码边界计算位图大小

时间:2014-10-04 12:01:21

标签: android bitmap

在实际解码之前,是否可以在内存中扩展Bitmap的大小?我遇到了OutOfMemoryErrors,如果没有足够的堆空间,我不想尝试分配。如果我将BitmapFactory.Options.justDecodeBounts设置为true,我将得到结果Bitmap的宽度和高度:

// Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(inputStream, null, o);
Log.d(getClass().getName(),"Input image size: "+o.outWidth+"x"+o.outHeight);

是否有一种简单的方法可以获得Bitmap的大小而无需从维度计算它?

我打算通过将ARGB_8888的width * height * 4相乘来获得结果图像的字节数。这是相当精确的,但结果Bitmap的字节数略高于此。我将如何考虑将Bitmap对象的开销考虑在内?我不打算重新使用位图,所以这应该适用于KitKat的getAllocationByteCount()。

0 个答案:

没有答案