Как преобразовать изображение в массив байтов 1bpp в растровом изображении Android

#android #binary #android-bitmap

Вопрос:

У меня есть изображение, которое нужно распечатать по Bluetooth. Поэтому мне нужно преобразовать изображение в массив байтов 1bpp, значения которого равны 0 или 1 байту. Приведенный ниже код предназначен для преобразования, и его ожидаемый результат не такой, как я хочу.

 public static byte[] convert(Bitmap var0) {  int var4 = var0.getWidth();  int var5 = var0.getHeight();  int var6 = var4 * var5 / 8;  byte[] var7 = new byte[var6];  byte var8 = 0;  int var9 = 7;  int var10 = 0;  int[] var11 = new int[var4 * var5];  var0.getPixels(var11, 0, var4, 0, 0, var4, var5);   for(int var12 = 0; var12 lt; var11.length;   var12) {  int gray = 0;  int var3 = Color.red(var11[var12]);  int var2 = Color.green(var11[var12]);  int var1 = Color.blue(var11[var12]);  var3 = (int)(0.21D * (double)var3   0.71D * (double)var2   0.07D * (double)var1);   if (var3 == 0) {  var8 = a(var8, var9);  }   if (var3 gt; 128) {  gray = 255;  } else{  gray = 0;  }   if (var9 == 0) {  var9 = 7;  // var7[var10  ] = var8;  var7[var10  ] = (byte)gray;  var8 = 0;  } else {  --var9;  }  }   return var7;  }   private static byte a(byte var0, int var1) {  return (byte)(var0 | 1 lt;lt; var1);  }  

Комментарии:

1. Что было бы бпп?

2. И вы начинаете не с изображения, а с растрового изображения?

3. Это довольно нечитаемый код с переменными от 0 до 12.

4. bpp означает бит на пиксель

5. от var0 до var12-это просто переменная референса