[JAVA] java二维码生成

3274 2
123456789qwe 2022-11-13 17:01:09 | 显示全部楼层 |阅读模式
使用技术

    jdk       >=1.8
    maven  >=3.0
    springboot

准备工作
   创建springboot工程
      导入pom依赖
<!-- 生成二维码依赖 -->
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.4.0</version>
</dependency>
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>javase</artifactId>
    <version>3.4.0</version>
</dependency>
使用
生成二维码
   public static void create_code() {
      //宽
      int width = 300;            
      //高
      int height = 300;            
      //图片格式
      String format = "png";        
      //内容
      String content = "ID:1234567890123456";
      //文件路径

      HashMap<EncodeHintType, Comparable> hm = new HashMap<EncodeHintType, Comparable>();

        //1设置编码格式
        hm.put(EncodeHintType.CHARACTER_SET, "UTF-8");        
        //2设置四周的边:0-7个等级
        hm.put(EncodeHintType.MARGIN, 2);                    
        //纠错等级(容错率):Q、M、L、H
        hm.put(EncodeHintType.ERROR_CORRECTION,    ErrorCorrectionLevel.M);   

        //产生二维码
        try {
            BitMatrix bm =  new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hm);
            Path file = new File("D:\\QRCodeImage\\qr.png").toPath();
            MatrixToImageWriter.writeToPath(bm, format, file);
            System.out.println("二维码创建成功!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
解析二维码
   private static void readZxing() throws IOException, NotFoundException {
        MultiFormatReader read = new MultiFormatReader();
        File file = new File("D:\\QRCodeImage\\qr.png");

        BufferedImage image = ImageIO.read(file);
        Binarizer binarizer = new HybridBinarizer(new BufferedImageLuminanceSource(image));
        BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);
        Result res = read.decode(binaryBitmap);

        System.out.println(res.toString());
        System.out.println(res.getBarcodeFormat());
        System.out.println(res.getText());
    }

123456789qwe 2022-11-13 21:48:04 | 显示全部楼层

我发你源码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

123456789qwe

初入联盟

关注
  • 5
    主题
  • 0
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行