Andriod 实现操作 蓝牙打印机 打印二维码
合乎但是 2016-03-16 09:08:44 1.使用的是 毕索龙R200ll 蓝牙打印机,通过在手机端输入 字符内容 ,点击打印,实现在蓝牙打印机打印出相应的二维码。
2.现在已经实现:在手机上可以根据输入内容,成功生成相应二维码。
3.问题是:我试着将生成的二维码图片转换成bite[]数组,输出给蓝牙打印机打印,出现了问题。
4.请各位大神帮忙解决下这个问题,谢谢。
以下是我将二维码转换成bite[]数组的方法:
public static byte[] draw2PxPoint(Bitmap bit) {
byte[] data = new byte[16290];
int k = 0;
for (int j = 0; j < 15; j++) {
data[k++] = 0x1B;
data[k++] = 0x2A;
data[k++] = 33; // m=33时,选择24点双密度打印,分辨率达到200DPI。
data[k++] = 0x68;
data[k++] = 0x01;
for (int i = 0; i < 360; i++) {
for (int m = 0; m < 3; m++) {
for (int n = 0; n < 8; n++) {
byte b = px2Byte(i, j * 24 + m * 8 + n, bit);
data[k] += data[k] + b;
}
k++;
}
}
data[k++] = 10;
}
return data;
}
public static byte px2Byte(int x, int y, Bitmap bit) {
byte b;
int pixel = bit.getPixel(x, y);
int red = (pixel & 0x00ff0000) >> 16; // 取高两位
int green = (pixel & 0x0000ff00) >> 8; // 取中两位
int blue = pixel & 0x000000ff; // 取低两位
int gray = RGB2Gray(red, green, blue);
if ( gray < 128 ){
b = 1;
} else {
b = 0;
}
return b;
}
private static int RGB2Gray(int r, int g, int b){
int gray = (int) (0.29900 * r + 0.58700 * g + 0.11400 * b); //灰度转化公式
return gray;
}