现在随处可见二维码扫一扫,我们也可以用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/天,具体规则查看活动详情