java生成二维码程序

注意:需要下载QRCode.jar包
下载地址:链接:https://pan.baidu.com/s/1xasgAYZ20bcMm2Tr0C614A 密码:gmd0【百度网盘】

代码

package com.tz.util;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

import javax.imageio.ImageIO;

public class Qrcode {

    // 创建一个生成二维码的方法
    public static void getQrcodeImg(String content, String imgPath) {
        /*
         * 二维码基本信息设置
         */
        // 实例化一个对象
        com.swetake.util.Qrcode qrcode = new com.swetake.util.Qrcode();
        // 设置二维码的排错率,M15%的空间用于存放错误信息的,Q25% L7% H30%
        qrcode.setQrcodeErrorCorrect('M');
        // 编码
        qrcode.setQrcodeEncodeMode('B');
        // 二维码的版本
        qrcode.setQrcodeVersion(15);

        /*
         * 开始绘制二维码
         */
        // 创建画板
        int width = 235;
        int height = 235;

        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D gs = image.createGraphics();
        // 设置背景色
        gs.setBackground(Color.white);
        // 设置绘制区域
        gs.clearRect(0, 0, width, height);
        // 设置画笔的颜色
        gs.setColor(Color.black);

        // 开始绘制

        try {
            // 将信息存储在数组里
            byte[] codeOut;
            codeOut = content.getBytes("utf-8");
            boolean[][] code = qrcode.calQrcode(codeOut);
            // 拿到二维数组里面的内容
            for (int i = 0; i < code.length; i++) {
                for (int j = 0; j < code.length; j++) {
                    if (code[j][i]) {// 判断信息真假,如果为真,绘制
                        gs.fillRect(j * 3 + 2, i * 3 + 2, 3, 3);

                    }
                }
            }

            gs.dispose();// 释放资源
            image.flush();

            // 保存
            try {
                ImageIO.write(image, "png", new File(imgPath));
                System.out.println("二维码生成成功!");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    // 主函数 程序入口
    public static void main(String[] args) {
        getQrcodeImg("hello world!", "D:\\test.png");
    }
}

运行结果:
这里写图片描述

也可以将getQrcodeImg(String content, String imgPath) content写成url,
如“http://www.baidu.com
这里写图片描述
扫描二维码就会进入百度首页。

也可以写成图片的地址,访问后就会看到图片。

https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1535522209&di=703c8aa08d175d5b0ba98e264efc34ac&src=http://club2.autoimg.cn/album/g14/M0A/54/A9/userphotos/2016/04/13/12/500_wKgH5FcNyzKAYD8UAAGEvCGaNuU884.jpg

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_41251963/article/details/82182123