java 使用ZXing生成二维码

来源:互联网 发布:不以 乎 句式 编辑:程序博客网 时间:2024/05/22 16:43

Zxing是Google提供的关于条码(一维码、二维码)的解析工具,提供了二维码的生成与解析的方法。

1 下载 zxing 类库

zxing开发包
github地址

2 生成二维码简单实例

import java.io.File;import java.io.IOException;import java.util.Hashtable;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.WriterException;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.BitMatrix;/** * 类名称:Encoder   * 描述:  二维码生成 * 创建人:wangql * 创建时间:2017-3-14 */public class Encoder {    public static void main(String[] args) {        String contents = "生成一个二维码";        Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();        hints.put(EncodeHintType.CHARACTER_SET, "GBK");        BitMatrix matrix = null;        try {            matrix = new MultiFormatWriter().encode(contents,BarcodeFormat.QR_CODE, 300, 300, hints);        } catch (WriterException e) {            e.printStackTrace();        }        File file = new File("D://qrcodeImage.png");        try {            MatrixToImageWriter.writeToFile(matrix, "png", file);            System.out.println("二维码生成成功");        } catch (IOException e) {            System.out.println("二维码生成失败");            e.printStackTrace();        }    }}

生成二维码图片
这里写图片描述

3 解析二维码简单实例

import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.Hashtable;import javax.imageio.ImageIO;import com.google.zxing.BinaryBitmap;import com.google.zxing.DecodeHintType;import com.google.zxing.LuminanceSource;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;/** *  * 类名称:Decoder   * 描述:  解析二维码 * 创建人:wangql  * 创建时间:2017-3-14 */public class Decoder {    public static void main(String[] args) {        File file = new File("D://qrcodeImage.png");        BufferedImage bufferedImage = null;        try {            bufferedImage = ImageIO.read(file);        } catch (IOException e) {            e.printStackTrace();        }        LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage);        BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));        Hashtable<DecodeHintType, String> hints = new Hashtable<DecodeHintType, String>();        hints.put(DecodeHintType.CHARACTER_SET, "GBK");        Result result = null;        try {            result = new MultiFormatReader().decode(bitmap, hints);        } catch (NotFoundException e) {            e.printStackTrace();        }        System.out.println(result.toString());    }}
0 0