现在随处可见二维码扫一扫,我们也可以用java来完成制作我们的自定义二维码
那么什么是二维码呢?
是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。
本实例主要说明如何在后端开发,使用java生成二维码
1,首先我们需要下载生成二维码所需要的jar包 QRcode.jar 您可以点击下面的连接下载
将该jar包导入到我们的项目中
2,创建工具类QrcodeUtil
里面有一个静态的方法,之所以用静态的方法,其中一个好处就是在我们使用的时候不需要实例化了
工具类如下:
public static void Qrcodeimg(String context,String imgPath){
int width = 140;
int height = 140;
try {
//实例化Qrcode
Qrcode qrcode = new Qrcode();
//设置二维码的排错率
//L:7%;M:15%;Q:25%;H:30%(4个可选值)
//二维码容错率即是指二维码图标被遮挡多少后,仍可以被扫描出来的能力。
//容错率越高,则二维码图片能被遮挡的部分越多。
qrcode.setQrcodeErrorCorrect('Q');
//模版
qrcode.setQrcodeEncodeMode('8');
//二维码尺寸,取值范围(1-40)
qrcode.setQrcodeVersion(7);
//设置图片尺寸
BufferedImage bufimg = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
//绘制
Graphics2D gs = bufimg.createGraphics();
//设置二维码的背景颜色
gs.setBackground(Color.WHITE);
//设置二维码的矩形区域
gs.clearRect(0, 0, width, height);
//设置二维码的颜色
gs.setColor(Color.RED);
//获取内容的字节数组,设置编码集
byte[] contextbytes = context.getBytes("UTF-8");
// 偏移量
int pixoff = 2;
//输出二维码,不能打印120个字符,二维码的容量决定
if(contextbytes.length > 0 && contextbytes.length < 120){
boolean[][] codeOut = qrcode.calQrcode(contextbytes);
for(int i = 0;i < codeOut.length;i++){
for(int j = 0;j < codeOut.length;j++){
if(codeOut[j][i]){
gs.fillRect(j*3+pixoff, i*3+pixoff, 3, 3);
}
}
}
}else{
System.out.println("出错了,可能是您的内容太长了");
}
//生成二维码的图片
File imgfile = new File(imgPath);
ImageIO.write(bufimg, "png", imgfile);
System.out.println("生成二维码成功");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
工具类我已经写出了比较详细的注释。大家可以修改测试下。
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情