根据此回答here,可以在不将整个图像加载到内存中的情况下阅读图像height
和width
。
答案中有一句话进一步说明了
大约512x384的位图。将其加载到内存中使用0.75MB 而不是12MB的完整图像(假设位图配置 ARGB_8888)。
我的问题是如何使用答案中的height
和width
来计算图像的图像文件大小(或者我必须说内存使用情况)以上。此外,这个ARGB_8888
值是什么或如何得到它?
答案 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。
希望这能回答你的问题