为什么Bitmap的内存大于Android中的磁盘?

时间:2012-07-12 21:35:30

标签: android memory bitmap size heap-memory

我的SD卡上有一个2448x3264图像,占用1,667,072字节,但当我将其作为位图加载并使用getRowBytes()*getHeight()计算其大小时,我最终得到了15,980,544字节。

为什么会发生这种情况?如何计算文件的实际大小?

1 个答案:

答案 0 :(得分:40)

这是因为图像在磁盘上时会被压缩(以JPG,PNG或类似格式存储)。将图像加载到内存后,它不再被压缩,占用所有像素所需的内存(通常为RGBA_8888的宽度*高度* 4,或RGB_565的宽度*高度* 2)。