从高度和宽度值获取图像文件大小

时间:2017-10-19 08:26:34

标签: android image out-of-memory size

根据此回答here,可以在不将整个图像加载到内存中的情况下阅读图像heightwidth

答案中有一句话进一步说明了

  

大约512x384的位图。将其加载到内存中使用0.75MB   而不是12MB的完整图像(假设位图配置   ARGB_8888)。

我的问题是如何使用答案中的heightwidth来计算图像的图像文件大小(或者我必须说内存使用情况)以上。此外,这个ARGB_8888值是什么或如何得到它?

1 个答案:

答案 0 :(得分:3)

ARGB_8888 is a way of storing information about the pixels.

参考docs ARGB_8888将每个像素存储在4个字节上。

要计算图像的总可能尺寸,比如您使用的512x384示例,我们会得到以下结果。

512 x 384 = 196608像素。

我们知道每个像素都存储在4个字节上。因此,以字节为单位的总大小将为196608 x 4 = 786432字节。

从这里开始除以1024,参见here,我们想要的每一步都是KB,MB,GB,TB阶梯。因此,要获得图像的MB大小,我们有786432 /(1024x1024)= 0.75。

希望这能回答你的问题