zoukankan      html  css  js  c++  java
  • zxing生成二维码和读取二维码

    当然,首先要导入zxing的jar包。

    生成二维码代码:

    package com.imooc.zxing;
    
    import java.io.File;
    import java.nio.file.Path;
    import java.util.HashMap;
    
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.MultiFormatWriter;
    import com.google.zxing.client.j2se.MatrixToImageWriter;
    import com.google.zxing.common.BitMatrix;
    import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
    
    /**
     * java代码生成二维码<br>
     * 
     * @author Administrator
     *
     */
    public class CreateQRCode {
    
        public static void main(String[] args) {
            int width = 300;
            int height = 300;
            String format = "png";
            String content = "http://www.hupu.com";
    
            // 定义二维码参数
            HashMap hints = new HashMap();
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");// 字符集
            hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);// 纠错级别
            hints.put(EncodeHintType.MARGIN, 2);// 空白
    
            try {
                BitMatrix bitMatrix = new MultiFormatWriter().encode(content,
                        BarcodeFormat.QR_CODE, width, height, hints);
                Path file = new File("E:/code/img.png").toPath();
    
                MatrixToImageWriter.writeToPath(bitMatrix, format, file);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    
    }

     生成二维码如下:

     读取二维码:

    package com.imooc.zxing;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.util.HashMap;
    
    import javax.imageio.ImageIO;
    
    import com.google.zxing.BinaryBitmap;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.MultiFormatReader;
    import com.google.zxing.Result;
    import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
    import com.google.zxing.common.HybridBinarizer;
    
    public class ReadQRCode {
    
        public static void main(String[] args) {
            try {
                MultiFormatReader formatReader = new MultiFormatReader();
                File file = new File("E:/code/img.png");
                BufferedImage image = ImageIO.read(file);
    
                BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(
                        new BufferedImageLuminanceSource(image)));
    
                HashMap hints = new HashMap();
                hints.put(EncodeHintType.CHARACTER_SET, "utf-8");// 字符集
    
                Result result = formatReader.decode(binaryBitmap, hints);
    
                System.out.println("解析之后的结果:" + result.toString());
                System.out.println("二维码格式类型:" + result.getBarcodeFormat());
                System.out.println("二维码文本内容:" + result.getText());
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    
    }

    代码运行结果:

  • 相关阅读:
    物料描述不可更新(分配组织后)
    完工任务不允许更改需求
    作业需求更改,限制车间人员只允许修改子库
    只允许更改**类型的任务需求
    车间任务移动完工时检验倒冲子库
    有库存不能停用子库存
    不允许修改标准作业需求
    PHP关于重写与重载
    面向对象的三个基本特征 封装 继承 多态
    PHP中的面向对象 中的类(class)
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/7256507.html
Copyright © 2011-2022 走看看