生成二维码图片,并将图片转换成POS机能打印的byte[]类型
来源:互联网 发布:cms二次开发 编辑:程序博客网 时间:2024/06/02 11:02
首先是生成二维码图片:(这里我是用的zxing框架)
/** * 生成二维码 要转换的地址或字符串,可以是中文 * * @param url * @param width * @param height * @return */ public Bitmap createQRImage(String url, final int width, final int height) { try { // 判断URL合法性 if (url == null || "".equals(url) || url.length() < 1) { return null; } Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); // 图像数据转换,使用了矩阵转换 BitMatrix bitMatrix = new QRCodeWriter().encode(url, BarcodeFormat.QR_CODE, width, height, hints); int[] pixels = new int[width * height]; // 下面这里按照二维码的算法,逐个生成二维码的图片, // 两个for循环是图片横列扫描的结果 for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { if (bitMatrix.get(x, y)) { pixels[y * width + x] = 0xff000000; } else { pixels[y * width + x] = 0xffffffff; } } } // 生成二维码图片的格式,使用ARGB_8888 Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); bitmap.setPixels(pixels, 0, width, 0, 0, width, height); return bitmap; } catch (WriterException e) { e.printStackTrace(); } return null; }
然后就是将Bitmap类型的二维码图片转换成byte[]类型:
private static byte[] genBitmapCode(Bitmap bm, boolean doubleWidth, boolean doubleHeight) { int w = bm.getWidth(); int h = bm.getHeight(); if(w > MAX_BIT_WIDTH) w = MAX_BIT_WIDTH; int bitw = ((w+7)/8)*8; int bith = h; int pitch = bitw / 8; byte[] cmd = {0x1D, 0x76, 0x30, 0x00, (byte)(pitch&0xff), (byte)((pitch>>8)&0xff), (byte) (bith&0xff), (byte) ((bith>>8)&0xff)}; byte[] bits = new byte[bith*pitch]; // 倍宽 if(doubleWidth) cmd[3] |= 0x01; // 倍高 if(doubleHeight) cmd[3] |= 0x02; for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { int color = bm.getPixel(x, y); if ((color&0xFF) < 128) { bits[y * pitch + x/8] |= (0x80 >> (x%8)); } } } ByteBuffer bb = ByteBuffer.allocate(cmd.length+bits.length); bb.put(cmd); bb.put(bits); return bb.array(); }
0 0
- 生成二维码图片,并将图片转换成POS机能打印的byte[]类型
- esp-pos打印图片和二维码
- 将byte[] 转换成图片
- Java将byte转换成图片并保存在本地
- 生成二维码并将Bitmap保存成图片
- 如何将图片转换成BYTE
- 将图片打成压缩包,并转换为byte[]
- js将连接生成二维码,并转为图片
- 生成二维码图片并保存图片功能
- Zxing扫描和生成二维码+butterknife8.0之后的引用+将drawable文件夹下的图片转换成Drawable
- Jquery 生成二维码图片 并且局部打印
- java生成图片并打印
- C#将图片转换层RGB32的byte
- ESC POS 指令打印图片
- Unity C#根据路径读取图片并转换成byte
- 利用libqrencode生成二维码并保持成bmp图片
- libqrencode生成二维码并保存成bmp图片
- 使用zxing生成二维码图片,并解析
- 微信公众号项目笔记 二
- 深入学习Oracle分区表及分区索引
- 堆排序
- 使用git将项目上传到github 以及解决“git commit -m”初始化问题
- 函数调用过程:EBP、ESP等栈帧的变化
- 生成二维码图片,并将图片转换成POS机能打印的byte[]类型
- 解决360 兼容模式下问题
- SpringMVC+Shiro权限管理
- clion之解决Clion License Activation问题
- ZOJ 3781 Paint the Grid Reloaded 题解 (dfs缩点+BFS)
- waiting for debugger android studio
- 终极分类器(识别器),一个人工智能的美好愿景
- Windows下安装Vim插件管理Vundle
- 修改 IntelliJ IDEA 模板注释中的 user 内容