利用zxing生成二维码方式+两个核心jar包

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

二维码的生成

package com.epoch.ccpayment.utils;

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;


public class CreateQR {
   public static void main(String[] args) {
        create_code();
    }

   public static void create_code() {
      //宽
      int width = 300;            
      //高
      int height = 300;            
      //图片格式
      String format = "png";        
      //内容
      String content = "http://www.epoch.cn/";


      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();
        }
    }
}

解析二维码的内容

package com.epoch.ccpayment.utils;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.google.zxing.Binarizer;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.NotFoundException;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;

public class ReadQR {
    public static void main(String[] args) throws NotFoundException, IOException {
        readZxing();
    }

 
    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());
    }
}

 


zxing的两个核心jar包,一个是core-3.3.2第二个是javase-3.3.2,亲测可用

zxing核心jar包
zxing核心jar包

core3.3.2   点击此处直接获取core-3.3.2核心jar包

<!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.3.2</version>
</dependency>

javase3.3.2    点击此处直接获取javase-3.3.2核心jar包

<!-- https://mvnrepository.com/artifact/com.google.zxing/javase -->
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>javase</artifactId>
    <version>3.3.2</version>
</dependency>

猜你喜欢

转载自blog.csdn.net/u012431703/article/details/93620677
今日推荐