android - 为什么位图大小在内存中大于 Android 中的磁盘?

标签 android memory bitmap size heap-memory

我的 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/

相关文章:

android - Spring resttemplate 中 START_ARRAY token 中的对象

python - 在 python 中迭代写入 XML 节点

java - 为什么有时位图是相同的对象?

java - 从 url 加载位图

android - 对于 SwipeRefreshLayout 使用颜色整数,而不是颜色资源整数?

android - 在 Android 中将 cookie 设置为 webView

swift - C 中的 offsetof(struct, member) 在 Swift 中的等价物是什么?

javascript - Angular:垃圾收集组件

android - Android 的大堆选项是否适用于升级到 ICS 的旧手机?

Android Volley : POST request - req. NodeJS REST API 内部为空