1.配置maven,jar包
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.0</version>
</dependency>
2.代码
package other;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.Binarizer;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.EncodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.NotFoundException;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
/**
* 二维码生成工具
*
* @author Administrator
*
*/
public class QRCode {
/**
* 二维码生成
*/
public static void create() {
String str = "ceshi 测试,hello dsadsadsadasffsdaaaaaaffesfsfsdfsdfsdfvxcvzxzcdsadsadsadasffsdaaaaaaffesfsfsdfsdfsdfvxcvzxdsadsadsadasffsdaaaaaaffesfsfsdfsdfsdfvxcvzxdsadsadsadasffsdaaaaaaffesfsfsdfsdfsdfvxcvzxdsadsadsadasffsdaaaaaaffesfsfsdfsdfsdfvxcvzxdsadsadsadasffsdaaaaaaffesfsfsdfsdfsdfvxcvzxdsadsadsadasffsdaaaaaaffesfsfsdfsdfsdfvxcvzxdsadsadsadasffsdaaaaaaffesfsfsdfsdfsdfvxcvzxdsadsadsadasffsdaaaaaaffesfsfsdfsdfsdfvxcvzxcworld";// 二维码内容
String path = "d:\\hhs3.png";
BitMatrix byteMatrix;
try {
Hashtable<EncodeHintType, Integer> hints = new Hashtable<EncodeHintType, Integer>();
hints.put(EncodeHintType.MARGIN, 1); // 设置二维码空白边框的大小 1-4,1是最小
// 4是默认的国标
byteMatrix = new MultiFormatWriter().encode(
new String(str.getBytes("UTF-8"), "iso-8859-1"),
BarcodeFormat.QR_CODE, 200, 200, hints);
File file = new File(path);
MatrixToImageWriter.writeToFile(byteMatrix, "png", file);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 二维码读取
*/
public static void read() {
String filePath = "D://hhs3.png";
BufferedImage image;
try {
image = ImageIO.read(new File(filePath));
LuminanceSource source = new BufferedImageLuminanceSource(image);
Binarizer binarizer = new HybridBinarizer(source);
BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);
Map<DecodeHintType, Object> hints = new HashMap<DecodeHintType, Object>();
hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");
Result result = new MultiFormatReader().decode(binaryBitmap, hints);// 对图像进行解码
System.out.println(result.getText());
} catch (IOException e) {
e.printStackTrace();
} catch (NotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
create();
read();
}
}