二维码也不需要解释,就直接贴代码吧,这个用的应该是谷歌的生成二维码,
我用的是mybatis,应该是直接引入下边的就行,如果还不行,就百度一下缺什么,加什么。
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.2.0</version>
</dependency>
生成二维码的方式
public class GenerateQRCode {
/**
* 日志对象
*/
protected Logger log = LoggerFactory.getLogger(getClass());
private static final int BLACK = 0xff000000;
private static final int WHITE = 0xFFFFFFFF;
private static final GenerateQRCode instance = new GenerateQRCode();
private GenerateQRCode(){
}
public static GenerateQRCode getInstance() {
return instance;
}
/**
*
* 创建日期:2015年11月29日
* @author rookie
* @param assentName 文件名前缀
* @param params 二维码信息
* @param path 二维码图片存放位置
* @param width 图片宽度
* @param height 图片高度
* @throws IOException
*/
public String generate(String assentName,String params,String path,int width,int height) throws Exception{
log.info("start generate code");
File file = new File(path);
if(!file.exists()){
file.mkdirs();
}
// 二维码图片名称
String fileName = assentName.concat(".png");
// 二维码图片存放路径
path = path.concat(fileName);
log.info("the qrcode's path is:" + path);
file = new File(path);
if (!file.exists()) {
file.createNewFile();
}
Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
BitMatrix bmt = new MultiFormatWriter().encode(params, BarcodeFormat.QR_CODE, width, height);
int widthImage = bmt.getWidth();
int heightImage = bmt.getHeight();
BufferedImage image = new BufferedImage(widthImage, heightImage,
BufferedImage.TYPE_INT_ARGB);
for (int x = 0; x < widthImage; x++) {
for (int y = 0; y < heightImage; y++) {
image.setRGB(x, y, bmt.get(x, y) == true ? BLACK : WHITE);
}
}
ImageIO.write(image, "png", file);
return fileName;
}
//测试使用,不会的话,下边的这个可以使用,当然你有你的方法,那就此处略过
public static void main(String[] args) {
try {
System.out.println(getInstance().generate("dddddd", "cccccccc", "e:\\dd\\", 150, 150));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}