android - 位图大小大于宽度和高度

标签 android memory bitmap

我正在尝试将一张图片 (PNG) 加载到 ImageView。 此 PNG 文件的文件大小为 390.6KB。

将此 PNG 文件解码为位图后,位图大小为 >9MB。 但是位图的宽度和高度分别是 1920 和 1280。

为什么位图的大小>(bitmap.width * bitmap.height)? 9MB 对于我的应用程序来说已经很多了,它会加载许多其他像这样的图像。

当我尝试通过给定样本大小 (2/4) 对该图像进行采样时,图像的宽度和高度会随着位图的大小而变化。

如何在内存大小中缩放此图像,但保留图像的宽度和高度?

最佳答案

PNG 最多可以有 4 个 channel (ARGB),因此您的实际内存消耗将为 width*height*4,因为每个像素需要 4 个内存空间。

您可以对几乎任何其他图像格式进行类似的计算:width*height*channels

关于android - 位图大小大于宽度和高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16499352/

相关文章:

c - 如何使用 uint64_t 数据类型在 C 中实现位图数组?

java - 如何在android中从不同形状的位图中切出一个圆圈

c++ - 如何实现可变大小的缓存对象以减少 C++ 中的内存分配?

线性内存缓冲区的 C++ 接口(interface)

android - Volley 使用 StringRequest 和 RequestFuture 进行阻塞同步调用

android - Xamarin Android 与 MvvmCross 冲突

c++ - 使用 C++ 在 Arduino 上编写复杂的程序。如何正确使用对象或更好地使用普通 C?

C# 绘图,奇怪的行为

java - 本示例中使用的 Android Java 对象/类语法

Android - 递归地删除布局中的 View