你在ImageView(android)中加载图像,如何为它分配内存?
分配的内存是1D数组还是2D数组? (就像素而言)
哪个更适合用于图像处理的BufferedImage或Bitmap?
PS - 它不是this.
的副本答案 0 :(得分:0)
ImageView
没有为它显示的图像分配内存,图像就是这样做的。最有可能是Bitmap
。那些在本机环境中分配内存(一些malloc
),因此Java的垃圾收集器无法清理已分配的内存,如果不注意,则会定期失败。
分配的内存是1D内存块,可能逐行逐行存储(2D访问是一个简单的计算)。图像以未压缩的方式存储,因此100kb的.jpg文件可能会使用几MB的数据。每个像素最多占用4个字节(_8888模式下的R,G,B,A)
Bitmap
的实际实施(分配)应该在skia - SkBitmap的某处。
我不知道BufferedImage
是什么,但是对图像处理的好读是:
http://developer.android.com/training/displaying-bitmaps/index.html