Java 如何在android中将黑白图像转换为0-1字节数组

Java 如何在android中将黑白图像转换为0-1字节数组,java,android,arrays,bitmap,bit,Java,Android,Arrays,Bitmap,Bit,我正在尝试将.BMPpic转换为byte[]或byte[][]。我已经尝试了两种解决方案,结果很奇怪 第一: Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.qr); int bytes = bitmap.getByteCount(); ByteBuffer buffer = ByteBuffer.allocate(bytes); bitmap.copyPixelsToBuffer(buffer); b

我正在尝试将
.BMP
pic转换为
byte[]
byte[][]
。我已经尝试了两种解决方案,结果很奇怪

第一:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.qr);
int bytes = bitmap.getByteCount();
ByteBuffer buffer = ByteBuffer.allocate(bytes);
bitmap.copyPixelsToBuffer(buffer);
byte[] byt = buffer.array();
byt
中,我得到了一个超过36000个元素的数组,所有数组都有
-1

我的第二次尝试是:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.qr);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100,stream);
byte[] byteArrat = stream.toByteArray();
但现在我有了1200多个元素的数组,这些元素看起来是随机的(值形式为-180到100)

是否有可能将bmp图像化为0表示白色,1表示黑色的数组?我已经没钱了,不知道该怎么办。知情同意书:


PNG是一种编码格式,因此将其作为数组进行分析并不简单,所以请根据您的直觉进行分析

此图像为210x210,因此您应该期望44100个不同的颜色值。Android不知道它是黑白的,所以你要得到每个像素的全色值,需要将它们转换成简单的0和1

请参阅对于您的用例可能更直接的方法。它会将像素颜色转储到
int[]
argb数组中,然后您可以将其简化为黑白