Java中生成二维码

代码如下:


import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class QR_java {
    //这是main方法,程序的入口
    public static void main(String[] args) throws WriterException, IOException {
        //1.利用Zxing.jar里面提供的一个工具类来帮我生成码:
        //2,创建工具类的对象:---》m
        MultiFormatWriter m = new MultiFormatWriter();
        //3.利用m对象来创建二维码:--》动作---》方法:
        /*
        想要使用encode()需要传入5个参数:
        String var1, BarcodeFormat var2, int var3, int var4, Map<EncodeHintType, ?> var5
        String var1 : 内容
        BarcodeFormat var2 : 告知你想画一维码还是二维码
        int var3 : 接收二维码的宽
        int var4 :接收二维码的高
        Map<EncodeHintType, ?> var5 :存放键值对
        二维码的其他信息:
         */
        //内容
        String str = "春风万里";
        //告知你想画一维码还是二维码:
        BarcodeFormat b = BarcodeFormat.QR_CODE; //二维码
        //定义二维码的宽,高:
        int width = 500;
        int height = 500;
        /*
        二维码的其他信息:
        (1)纠错能力 :
        L low  7%
        M middle  15%
        Q quartered  25%
        H high 30%
        (2)设置编码
        (3)设置留白:
         */
        Map map = new HashMap();
        map.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
        map.put(EncodeHintType.CHARACTER_SET,"UTF-8");
        map.put(EncodeHintType.MARGIN,2);
        //调用方法,传入5个参数:
        BitMatrix encode = m.encode(str, b, width, height, map);//encode代表的是二维码的对象 --》内存

        //encode代表的是二维码的对象 --》内存 ---->转成图片对象
        BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
        //就是将二维码对象中的有效数据展示出来:
        for (int x = 0; x < width; x++) {
            for (int y = 0; y < height; y++) {
                image.setRGB(x,y,encode.get(x,y)? Color.WHITE.getRGB():Color.BLACK.getRGB());
            }
        }

        //图片对象 ---> 在内存:--》写入硬盘:
        File file = new File("测试.png");
        //将image对象以png后缀写入file中去:
        boolean flag = ImageIO.write(image, "png", file);
        //根据flag进行后续的判断:
        if (flag){
            System.out.println("二维码生成成功!");
        }else{
            System.out.println("二维码生成失败!");
        }
    }
}

原文链接:https://www.cnblogs.com/runweitian/p/17326052.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中生成二维码 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • maven assembly打包生成Java应用启动脚本bat和sh的方法

    下面是详细讲解“maven assembly打包生成Java应用启动脚本bat和sh的方法”的完整攻略。 1. 简介 Maven 是一个基于项目对象模型(POM),可以通过一小段描述文件来管理项目的构建、报告和文档的工具。Maven assembly插件为开发者提供了制作可独立运行的发行版(Distribution)的能力,可以通过配置在项目构建时产生必要的…

    Java 2023年5月20日
    00
  • IO中flush()函数的使用代码示例

    下面是关于IO中flush()函数的详细讲解和使用代码示例的攻略,希望对您有所帮助。 什么是flush函数? 在IO流中,当我们向输出流中写入数据时,并不是每写一个字节就直接进入输出流中,而是先放进一个内部缓冲区中,当缓冲区被填满或者手动调用flush()函数,才会将数据真正地输出到目的地。 flush()函数就是用来手动清空缓冲区,强制将缓冲区中的内容输出…

    Java 2023年5月26日
    00
  • Win7系统下tomcat7.0配置教程

    下面是Win7系统下tomcat7.0的配置教程的完整攻略: 安装jdk 首先需要安装并配置好Java Development Kit(JDK),可以从Oracle的官网上下载安装包。安装完成后需要配置系统环境变量,具体参考以下步骤: 在“计算机”上右键点击“属性”; 点击“高级系统设置”; 点击“环境变量”; 在“系统变量”中新增“JAVA_HOME”变量…

    Java 2023年5月19日
    00
  • Spring Boot Logging Level设置为off时的Bug

    为了更好的解释“Spring Boot Logging Level设置为off时的Bug”问题以及解决方案,我们需要先了解以下几个问题: 什么是Logging Level Spring Boot默认的Logging Level设置 Logging Level为off时会出现什么问题 如何避免Logging Level为off导致的问题 现在我们按照这个顺序来…

    Java 2023年5月20日
    00
  • SpringBoot 整合 Lettuce Redis的实现方法

    下面是 SpringBoot 整合 Lettuce Redis 的实现方法的详细攻略。 准备工作 在开始操作之前需要做一些准备工作,包括: 安装 Redis 数据库并启动。 创建 SpringBoot 项目并添加 Lettuce Redis 依赖。 添加 Redis 配置 在 SpringBoot 项目中需要添加 Redis 配置,可以在 applicati…

    Java 2023年5月20日
    00
  • SpringMvc接收参数方法总结(必看篇)

    下面是SpringMVC接收参数方法总结的完整攻略。该攻略旨在介绍SpringMVC中五种常见的接收参数的方法,包括: 接收URL路径中的参数PathVariable 接收请求参数RequestParam 接收JSON参数RequestBody 接收表单参数ModelAttribute 接收文件参数RequestParam 下面我们来详细说明每种方法。 接收…

    Java 2023年6月15日
    00
  • Java持久层框架MyBatis简单实例

    我来为你详细讲解如何用Java持久层框架MyBatis实现数据操作。在本次攻略中,我将提供如下步骤。 步骤1:创建一个Java项目 首先,我们需要创建一个Java项目,并引入MyBatis的相关依赖。 <dependency> <groupId>org.mybatis</groupId> <artifactId&gt…

    Java 2023年5月20日
    00
  • Java批量转换文件编码格式的实现方法及实例代码

    下面是详细的攻略: 1. 什么是文件编码格式 文件编码格式是指文本文件中字符的编码方式,它决定了计算机如何读取和处理该文本文件。常见的文件编码格式有UTF-8、GBK、GB2312等。 2. 批量转换文件编码格式的步骤 Java实现批量转换文件编码格式的主要步骤如下: 获取需要转换编码格式的文件夹路径 遍历该文件夹中所有文本文件 读取文本文件内容并转换编码格…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部