我有一个黑白的bmp文件。 我使用以下代码在代码中获取位图:
Bitmap bmp = BitmapFactory.decodeFile(path);
我知道位图包含标题,数据本身和其他一些信息。如何仅从我的bmp
变量中获取数据组件?
此外,我很好奇为什么位图的缓冲区大小为width * length * 4
?
答案 0 :(得分:0)
要获取数据,请使用 getPixels :
http://developer.android.com/reference/android/graphics/Bitmap.html#getPixels(int[],int,int,int,int,int,int)
仅当位图具有32位色彩空间时,缓冲区大小为width * height * 4
。在这种情况下,每个颜色通道可以具有范围[0:255](8位= 1字节)的值,因此四个通道(reg,绿色,蓝色,alpha)占用4个字节。
答案 1 :(得分:0)
这是你能做的:
Bitmap bitmap;
ByteBuffer buffer = new ByteBuffer(bitmap.getByteCount());
bitmap.copyPixelsToBuffer(buffer);
希望它有所帮助。
大卫