下载地址:https://github.com/zxing
第一步:点击zxing
第二步:点击releases
第三步:选择最新版本下载
注:由于github上面下载太慢(128M需要三四个小时),10K/s.会出现连接超时.
设置方法参考:http://blog.csdn.net/crazy__qu/article/details/71554276
或者直接从我的云盘中下载:链接: https://pan.baidu.com/s/1jIkggeU 密码: 5d49
第四步:下载解压后目录
第五步:因为zxing没有提供相应的jar包.用myeclipse创建一个java项目,复制"core"文件夹中的com文件夹和"javase"中的com文件夹.到新创建的java项目中,会出现下面提示,直接yes
第六步:复制好之后里面会有报错信息,忽略.直接导出jar包. 如果感觉上面步骤麻烦,可以直接下载我做好的jar.
链接: https://pan.baidu.com/s/1jIkggeU 密码: 5d49
maven项目:
直接搜索repository,进入maven仓库中搜索zxing,然后选择相应的版本.拷贝core和javese的依赖
JAVA项目生成二维码
package com.crazy_qu.zxing;
import java.io.File;
import java.io.IOException;
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.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
/**
* 生成二维码
* @author crazy
*
*/
public class CreateQRCode {
public static void main(String[] args) {
int width = 300;//图片的宽度
int height = 300;//图片的高度
String format = "png";//图片的格式
String contents = "www.baidu.com";//图片的内容,即网址链接
//定义二维码的参数
HashMap map = new HashMap();
map.put(EncodeHintType.CHARACTER_SET, "utf-8");//字符集
map.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);//纠错等级LMQH,一般用M
map.put(EncodeHintType.MARGIN, 2);//边距
//生成二维码
try {
BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, width, height, map);
Path file = new File("D:/img.png").toPath();
MatrixToImageWriter.writeToPath(bitMatrix, format, file);
} catch (Exception e) {
e.printStackTrace();
}
}
}
JAVA读取所生成的二维码
package com.crazy_qu.zxing;
import java.awt.image.BufferedImage;
import java.io.File;
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;
/**
* 读取二维码的内容
* @author crazy
*
*/
public class ReadQRCode {
public static void main(String[] args) {
try {
MultiFormatReader formatReader = new MultiFormatReader();
//读取文件识别成一个图片
File file = new File("D:/img.png");
BufferedImage image = ImageIO.read(file);
/*
BufferedImageLuminanceSource source = new BufferedImageLuminanceSource(image);
HybridBinarizer binarizer = new HybridBinarizer(source);
BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);
*/
BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
//定义二维码的参数
HashMap map = new HashMap();
map.put(EncodeHintType.CHARACTER_SET, "utf-8");//字符集
Result result = formatReader.decode(binaryBitmap, map);
System.out.println("解析结果:"+result.toString());
System.out.println("二维码格式:"+result.getBarcodeFormat());
System.out.println("二维码文本内容:"+result.getText());
} catch (Exception e) {
e.printStackTrace();
}
}
}