QrCode的实现二维码功能

简介:

下面开始写代码

package com.wmsDemo.QRCode;

 

import java.awt.Color;

import java.awt.Graphics2D;

import java.awt.image.BufferedImage;

import java.io.File;

import java.text.SimpleDateFormat;

import java.util.Date;

 

import javax.imageio.ImageIO;

 

import com.swetake.util.Qrcode;

 

public class QRCodeEncoderHandler {

public void encoderQRCode(String content, String imgPath) { 

       try { 

           Qrcode qrcodeHandler = new Qrcode(); 

        // 设置二维码排错率,可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小 

           qrcodeHandler.setQrcodeErrorCorrect('H'); 

           qrcodeHandler.setQrcodeEncodeMode('B'); 

           qrcodeHandler.setQrcodeVersion(5); 

           System.out.println(content); 

//            int imgSize = 67 + 12 * (size - 1);

           byte[] contentBytes = content.getBytes("gb2312"); 

           BufferedImage bufImg = new BufferedImage(115, 115, 

                   BufferedImage.TYPE_INT_RGB); 

           Graphics2D gs = bufImg.createGraphics(); 

           gs.setBackground(Color.WHITE); 

           gs.clearRect(0, 0, 115, 115); 

           // 设定图像颜色> BLACK 

           gs.setColor(Color.BLACK); 

           // 设置偏移量 不设置可能导致解析出错 

           int pixoff = 2; 

           // 输出内容> 二维码 

           if (contentBytes.length > 0 && contentBytes.length < 800) { 

               boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes); 

               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.err.println("QRCode content bytes length = " 

                       + contentBytes.length + " not in [ 0,120 ]. "); 

           } 

           gs.dispose(); 

           bufImg.flush(); 

           File imgFile = new File(imgPath); 

           // 生成二维码QRCode图片 

           ImageIO.write(bufImg, "png", imgFile); 

       } catch (Exception e) { 

           e.printStackTrace(); 

       } 

   } 

   /**

 

    * @param args the command line arguments

 

    */ 

 

   public static void main(String[] args) { 

    //取当前时间为图片名称 带毫秒的

    SimpleDateFormat sdf =   new SimpleDateFormat("yyyyMMddHHmmssSSS" );

Date d=new Date();

String str=sdf.format(d);

       String imgPath = "D:/QRCode/twocode/"+str+".png"; 

       String content= "这是测试";

       QRCodeEncoderHandler handler = new QRCodeEncoderHandler(); 

       handler.encoderQRCode(content, imgPath); 

       System.out.println("imgPath:"+imgPath);

       System.out.println("encoder QRcode success"); 

   } 

相关文章
IF
|
小程序
支付宝小程序my.tradePay支付成功后不跳回当前小程序
my.tradePay支付成功后不跳回当前小程序
IF
1119 0
支付宝小程序my.tradePay支付成功后不跳回当前小程序
|
编解码 安全 算法
全双工通信 | 带你读《5G系统关键技术详解》之三
本书深入介绍了 5G 无线网络的协议、网络架构和技术,包括无线接入网络、移动边 缘计算、全双工、大规模 MIMO、毫米波、NOMA、物联网、M2M 通信、D2D 通信、 移动数据分流、干扰抑制技术、无线资源管理、可见光通信和智能数据定价等关键主题。
全双工通信  | 带你读《5G系统关键技术详解》之三
|
8月前
|
数据可视化 JavaScript 前端开发
从Postman到Apipost:我的动态参数测试实战踩坑记
作为一名全栈开发工程师,在开发用户中心模块时,我遇到了复杂参数API测试的挑战。最初使用Postman时,发现其在生成动态参数(如邮箱、手机号和日期)时存在诸多问题,导致测试效率低下甚至出错。例如,随机生成的邮箱格式无效等 后来,CTO推荐了Apipost,它提供了更智能的参数生成方式:支持真实邮箱、符合规范的手机号以及合法日期范围,极大提升了测试效率和准确性。通过对比,Apipost在处理复杂动态参数方面明显优于Postman,减少了维护成本并提高了团队协作效率。现在,我们已全面切换到Apipost,并利用其「参数组合测试」功能发现了多个边界条件bug。
|
8月前
|
运维 BI 调度
|
网络安全
阿里云Could not connect to SITP host: smtp.163.com,port: 25;
阿里云Could not connect to SITP host: smtp.163.com,port: 25;
680 1
|
语音技术 网络架构
首个支持普通话和方言混说的TTS大模型:河南话、上海话、粤语说得溜
【9月更文挑战第6天】近年来,人工智能技术的进步推动了文本到语音(TTS)系统的高质量语音生成能力。针对现有TTS系统在中文方言生成上的不足,研究人员开发了Bailing-TTS模型。此模型利用大规模数据集与连续半监督学习方法,结合特定的Transformer架构及多阶段训练流程,实现了自然流畅的方言语音合成。实验结果显示,Bailing-TTS在客观和主观测试中均能生成接近真实的人类发音,并具备零样本学习能力。尽管仍面临复杂方言质量和多样性等挑战,但Bailing-TTS为中文方言语音合成提供了新的可能,并有望在未来技术发展中发挥更大作用。
1438 1
|
存储 算法 数据挖掘
技术经验解读:二维码(QRcode)基本知识
技术经验解读:二维码(QRcode)基本知识
4276 0
|
Java Spring
SpringBoot获取不到用户真实IP怎么办
通过以上方法,你可以在Spring Boot应用中获取用户的真实IP地址。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
609 5
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的水果销售系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的水果销售系统的详细设计和实现
188 0