我的 SD 卡上有一个 2448x3264 的图像,消耗 1,667,072 字节,但是当我将它作为位图加载并使用 getRowBytes()*getHeight()
计算其大小时,我最终得到 15,980,544 字节。
为什么会发生这种情况,如何计算文件的实际大小?
最佳答案
这是因为图像在磁盘上时会被压缩(以 JPG、PNG 或类似格式存储)。一旦将图像加载到内存中,它就不再被压缩并占用所有像素所需的内存(对于 RGBA_8888,通常为宽 * 高 * 4,对于 RGB_565,通常为宽 * 高 * 2)。
关于android - 为什么位图大小在内存中大于 Android 中的磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461061/