使用zxing生成和识别二维码

maven

        
            com.google.zxing
            core
            3.3.0
        

        
        
            com.google.zxing
            javase
            3.3.0
        

生成二维码

public static void generateQrCode(OutputStream out,String content, int width, int height, String format) throws WriterException, IOException {
        //format="png"
        Map hints = new HashMap();
        // 设置QR二维码的纠错级别(H为最高级别)具体级别信息
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
        // 内容所使用编码
        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
        // 设置图片的边距
        hints.put(EncodeHintType.MARGIN,1);
        // 生成矩阵
        BitMatrix bitMatrix = new MultiFormatWriter().encode(content,
                BarcodeFormat.QR_CODE, width, height, hints);
        // 输出图像
        MatrixToImageWriter.writeToStream(bitMatrix,format,out);
    }

识别二维码

public static Result decodeQrCode(InputStream inputStream) throws IOException, NotFoundException {
        BufferedImage image = ImageIO.read(inputStream);
        LuminanceSource source = new BufferedImageLuminanceSource(image);
        Binarizer binarizer = new HybridBinarizer(source);
        BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);
        Map hints = new HashMap();
        hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");
        Result result = new MultiFormatReader().decode(binaryBitmap, hints);// 对图像进行解码
        return result;
    }

doc

  • 二维码的生成细节和原理

  • QR码的信息量和版本

  • 缺了一块的二维码,为什么也能扫描出来?

  • 二维码的基础原理是什么?

你可能感兴趣的:(zxing)