zxing 二维码的生成与解析

来源:互联网 发布:商城html源码下载 编辑:程序博客网 时间:2024/05/29 04:34

1、需要的jar包


maven下载地址 

<!-- 二维码 -->     <!-- https://mvnrepository.com/artifact/com.google.zxing/core --><dependency>    <groupId>com.google.zxing</groupId>    <artifactId>core</artifactId>    <version>2.2</version></dependency><!-- https://mvnrepository.com/artifact/com.google.zxing/javase --><dependency>    <groupId>com.google.zxing</groupId>    <artifactId>javase</artifactId>    <version>2.2</version></dependency>

2、二维码Util

package com.qn.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.HashMap;import java.util.Map;import javax.imageio.ImageIO;import com.google.zxing.BarcodeFormat;import com.google.zxing.BinaryBitmap;import com.google.zxing.DecodeHintType;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatReader;import com.google.zxing.MultiFormatWriter;import com.google.zxing.NotFoundException;import com.google.zxing.WriterException;import com.google.zxing.client.j2se.BufferedImageLuminanceSource;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.HybridBinarizer;import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;/** * 二维码工具类 * @author win 10 * */public class TwoDimensionCodeUtil {private static final Map<EncodeHintType, ErrorCorrectionLevel> encodeMap=new HashMap<EncodeHintType, ErrorCorrectionLevel>();private static final Map<DecodeHintType, ErrorCorrectionLevel> decodeMap=new HashMap<DecodeHintType, ErrorCorrectionLevel>();private static final String charset="UTF-8",format="png";private static final int size=150;private TwoDimensionCodeUtil(){}/** * 生成二维码图片 * @param data * @param file * @throws WriterException  * @throws IOException  * @throws UnsupportedEncodingException  */public static void createQRCode(String data,File file) throws UnsupportedEncodingException, IOException, WriterException{MatrixToImageWriter.writeToFile(new MultiFormatWriter().encode(new String(data.getBytes(charset), charset),BarcodeFormat.QR_CODE, size, size, encodeMap), format, file);}/** * 读取二维码信息 * @param filePath 二维码图片路径 * @return * @throws NotFoundException * @throws FileNotFoundException * @throws IOException */public static String readQRCode(String filePath) throws NotFoundException, FileNotFoundException, IOException{return new MultiFormatReader().decode(new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(ImageIO.read(new FileInputStream(filePath))))),decodeMap).getText();}}
3、测试类 (注意:用@Test会报错)

public static void main(String[] args) {try {TwoDimensionCodeUtil.createQRCode("www.baidu.com", new File("F:\\111.png"));System.out.println("已经生成二维码");String readQRCode = TwoDimensionCodeUtil.readQRCode("F:\\111.png");System.out.println(readQRCode);} catch (IOException  e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (NotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (WriterException e) {// TODO Auto-generated catch blocke.printStackTrace();}}



原创粉丝点击