hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); //设置空白边距的宽度 hints.put(EncodeHintType.MARGIN, 2);
//default is 4 // 图像数据转换,使用了矩阵转换 BitMatrix bitMatrix =
new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, widthPix, heightPix, hints); int[] pixels =
new int[widthPix *
heightPix]; // 下面这里按照二维码的算法,逐个生成二维码的图片, // 两个for循环是图片横列扫描的结果 for (
int y = 0; y < heightPix; y++
) { for (
int x = 0; x < widthPix; x++
) { if (bitMatrix.get(x, y)) { pixels[y * widthPix + x] = 0xff000000
; } else { pixels[y * widthPix + x] = 0xffffffff
; } } } // 生成二维码图片的格式,使用ARGB_8888 Bitmap bitmap =
Bitmap.createBitmap(widthPix, heightPix, Bitmap.Config.ARGB_8888); bitmap.setPixels(pixels, 0, widthPix, 0, 0
, widthPix, heightPix); if (logoBm !=
null) { bitmap =
addLogo(bitmap, logoBm); } //必须使用compress方法将bitmap保存到文件中再进行读取。直接返回的bitmap是没有任何压缩的,内存消耗巨大! return bitmap !=
null && bitmap.compress(Bitmap.CompressFormat.JPEG, 100,
new FileOutputStream(filePath)); } catch (WriterException |
IOException e) { e.printStackTrace(); } return false; }②在二维码中间添加Logo图案
2/9 首页 上一页 1 2 3 4 5 6 下一页 尾页