您的位置:首页 > 其它

zxing 生成二维码

2016-09-30 14:40 148 查看

一、zxing介绍

  zxing是google提供生成、解析一维码、二维码的开源库。

二、使用

2.1 maven pom 配置

<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.0.0</version>
</dependency>


2.2 二维码生成

/**
* 编码
*
* @param contents
* @param width
* @param height
* @param imgPath
*/
public static void encode(String contents, int width, int height, String imgPath) {
try {
BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, width, height);

MatrixToImageWriter.writeToFile(bitMatrix, "png", new File(imgPath));

} catch (Exception e) {
e.printStackTrace();
}
}


/**
* @param args
*/
public static void main(String[] args) {
String imgPath = "/Users/xupengwei/tool/yuanmeng/zxing.png";
String contents = "http://taobao.com";
int width = 300, height = 300;
QrCode.encode(contents, width, height, imgPath);
}


结果



2.3 二维码解码

/**
* @param imgPath
* @return String
*/
public static String decode(String imgPath) {
BufferedImage image = null;
Result result = null;
try {
image = ImageIO.read(new File(imgPath));
LuminanceSource source = new BufferedImageLuminanceSource(image);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

result = new MultiFormatReader().decode(bitmap);
return result.getText();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}


public static void main(String[] args) {

String imgPath = "/Users/xupengwei/tool/yuanmeng/zxing.png";
String decodeContent = QrCode.decode(imgPath);
System.out.println(decodeContent);
}


结果:

http://taobao.com


三、参考文献

1、https://github.com/zxing/zxing

2、API 文档 : https://zxing.github.io/zxing/apidocs/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: