需要引入jar包:https://yunpan.cn/c6LwuxpKwDDN4 访问密码 1709
package com.oraclewdp.qrcode;
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.datamatrix.encoder.ErrorCorrection;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.util.HashMap;
/**
* Created by Mr Gui on 2016/7/30.
*/
public class CreateCode {
public static void main(String[] args) {
String content="http://guiliangzhou.com:8080/YZSPT";
new CreateCode().createCode(300,300,content);
}
/**
* QRcode是公开专利的支持中文的,我们这里使用的Zxing是谷歌开源的项目
* @param width 二维码的宽
* @param height 二维码的高
* @param content 二维码的内容
*/
public void createCode(int width,int height,String content){
//定义生成二维码图片的格式
String suffix="png";
//定义二维码配置的参数,这里的参数使用map注入
HashMap hits=new HashMap();
//设置二维码的编码格式为UTF-8,支持中文
hits.put(EncodeHintType.CHARACTER_SET,"utf-8");
//设置二维码的纠错等级
hits.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
//设置二维码图片的边距(默认是5,显得过大,这里我们设置2)
hits.put(EncodeHintType.MARGIN,2);
//下面生成二维码
try {
BitMatrix bitMatrix=new MultiFormatWriter().encode(content,BarcodeFormat.QR_CODE,width,height,hits);
String codePath="D:\\code\\code."+suffix;
File file=new File(codePath);
if(!file.exists()){
file.mkdirs();
}
Path code=file.toPath();
//这里我们将二维码图片存放在文件中,当然如果在网页中显示我们可以写入到流中。
MatrixToImageWriter.writeToPath(bitMatrix,suffix,code);
} catch (WriterException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}