java生成和解析二维码

完整的项目下载地址

http://download.csdn.net/download/weixin_39549656/10235029

java生成二维码(运用的ZXing技术)

完整的目录结构
这里写图片描述
查看ZXing网址 https://github.com/zxing
将下面2个文件夹打jar包
这里写图片描述
CreateQRCode.java

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 CreateQRCode {
    //查看ZXing网址 https://github.com/zxing
    public static void main(String[] args) {
        int width=300;//生成二维码的宽度
        int height=300;//生成二维码高度
        String formate="png";//生成二维码的格式
        String content="www.cuichongdong.com";//二维码中包含的内容

        //定义二维码参数
        HashMap hints = new HashMap();
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");//二维码包含内容的 个字符集
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);//二维码大小,通常我们用M,Q比M小,L是最小的
        hints.put(EncodeHintType.MARGIN, 2);//二维码到外框的边距,默认是5,这里选择2

        //生成二维码
        try {
            BitMatrix bitMatrix=new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height,hints);
            Path file=new File("D:/img.png").toPath();
            MatrixToImageWriter.writeToPath(bitMatrix, formate, file);//这里是存放到路径中,writeToStream()是将图片放入流中
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

Java解析二维码

ReadQRCode.java

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 {
    //查看ZXing网址 https://github.com/zxing

    public static void main(String[] args) throws Exception {

        MultiFormatReader multiFormatReader = new MultiFormatReader();

        File file = new File("D:/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 = multiFormatReader.decode(binaryBitmap, hints);

        System.out.println("解析结果: "+result.toString());
        System.out.println("二维码格式类型: "+result.getBarcodeFormat());
        System.out.println("二维码文本内容: "+result.getText());
    }
}

成功如下

这里写图片描述
这里写图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐