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

Saq*_*qib 17 memory size android bitmap heap-memory

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

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

Dev*_*red 41

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