admin管理员组

文章数量:1641964

java通过QRcode生成二维码

一、介绍

java生成二维码的方式常见的技术有两种:zxing和QRcode。但小编用的比较多的是QRcode,今天小编给大家介绍的也是QRcode。

二、用到的包

点击下载QRcode包
密码:a3ag

二、java代码
package com.kejizhentan.qrcode;


import com.google.zxing.qrcode.encoder.QRCode;
import com.swetake.util.Qrcode;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Date;


/**
 * @author xiaosi
 * @date 2020-12-28 下午09:22
 */
public class QrcodeDemo {
    public void encoderQRCode(String content,String imgPath){
        try {
            Qrcode qrcodeHander =  new Qrcode();
            //设置二维码排错率,可选L(7%),M()k,Q(),H(),排错率越高可存储的信息越少,但对二维码清晰度的要求越少
            qrcodeHander.setQrcodeErrorCorrect('M');
            //编码模式:Numberic 数字,Binary二进制 ,Kanji 汉字,Alphanumeric 英文字母
            qrcodeHander.setQrcodeEncodeMode('B');
            qrcodeHander.setQrcodeVersion(5);
            byte[] contentBytes = content.getBytes();
            //设置画布大小和颜色格式
            BufferedImage bufImg =  new BufferedImage(600,600,BufferedImage.TYPE_INT_RGB);
            //创建画笔--2D
            Graphics2D gs = bufImg.createGraphics();
            //设置背景色为白色
            gs.setBackground(Color.WHITE);
            //设置画笔从那个坐标开始画
            gs.clearRect(0,0,600,600);
            //设置图像的颜色为黑色
            gs.setColor(Color.BLACK);
            //设置偏移量,及手机可以偏移多少角度扫描(不设置会导致解析错误)
            int pixoff = 2;
            //输出内容 二维码
            if(contentBytes.length > 0 && contentBytes.length < 800){
                boolean[][] codeOut = qrcodeHander.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*16+pixoff,i*16+pixoff,16,16);
                        }
                    }

                }
            }
            //画笔扔掉
            gs.dispose();
            bufImg.flush();
            File imgFile = new File(imgPath);
            //生成二维码QRCode图片
            ImageIO.write(bufImg,"png",imgFile);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        QrcodeDemo qrcodeDemo = new QrcodeDemo();
        qrcodeDemo.encoderQRCode("http://kejizhentan/","E:\\"+"112"+".png");
        System.out.println("二维码生成成功");
    }
}

今天就介绍到这里,欢迎大家留言补充。再见~

本文标签: 二维码JavaQRcode