#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-это просто переменная референса