首页 > 编程语言 >java 生成 二维码

java 生成 二维码

时间:2024-08-09 23:26:20浏览次数:14  
标签:google java zxing 二维码 new import 生成 com

ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。
导入对应的jar 包

<dependency>
	<groupId>com.google.zxing</groupId>
	<artifactId>core</artifactId>
	<version>3.4.1</version>
</dependency>

<dependency>
	<groupId>com.google.zxing</groupId>
	<artifactId>javase</artifactId>
	<version>3.4.1</version>
</dependency>

对应的 Utils 实现生成或者解析对应的二维码信息

package com.ruoyi.common.utils;

import com.google.zxing.*;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.QRCodeWriter;

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

/**
 * 生成二维码 填充信息
 */
package com.ruoyi.common.utils;

import com.google.zxing.*;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.QRCodeWriter;

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

/**
 * 生成二维码 填充信息
 */
public class QrCodeUtils {

    /**
     *
     * @param text 对应的信息
     * @param width 图片宽度
     * @param height 图片高度
     * @param filePath 存放位置
     * @throws WriterException
     * @throws IOException
     */
    public static void generateQRCodeImage(String text, int width, int height, String filePath) // Generate QR Code image
            throws WriterException, IOException {
        QRCodeWriter qrCodeWriter = new QRCodeWriter(); // Create QR Code writer
        Map<EncodeHintType, Object> hints = new HashMap<>(); // Set QR Code encoding hints
        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); // Set character set to UTF-8
        BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height, hints);
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String number = format.format(date);
        File qrCodeFile = new File(filePath + "/" + number+ ".png");
        MatrixToImageWriter.writeToPath(bitMatrix, "PNG", qrCodeFile.toPath());
    }


    public static void analysisQRCodeImage() throws IOException, NotFoundException {
        File file = new File("D://path/20240717143149228.png");
        BufferedImage bufferedImage = ImageIO.read(file);
        LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage);
        BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

        Result result = new MultiFormatReader().decode(bitmap);
        System.out.println("QR Code content: " + result.getText());
    }
}

具体调用

QrCodeUtils.generateQRCodeImage("12321", 350, 350, "D://path");
QrCodeUtils.analysisQRCodeImage();

标签:google,java,zxing,二维码,new,import,生成,com
From: https://blog.csdn.net/ling_zhi_xin/article/details/141025730

相关文章

  • Java学习进度汇报
    在学习Java编程的过程中,运算符的理解与应用对我来说非常重要。运算符是编程语言的基本组成部分,帮助我们进行数据处理和逻辑判断。首先,算术运算符(如加、减、乘、除和取余)使我能够进行各种数学计算。通过编写计算器程序,我掌握了如何利用这些运算符进行实时计算,增强了对数值处理的理......
  • java流程控制之顺序结构
    java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。顺序结构是最简单的算法结构。语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一种算法都离不开的一种基本算法结构由于我idea使用过期,目前还没......
  • Java计算机毕业设计基本微信小程序的大学生自习室预约系统
    文末获取资源,收藏关注不迷路文章目录前言主要功能:主要使用技术研究内容核心代码文章目录前言随着互联网技术的发发展,计算机技术广泛应用在人们的生活中,逐渐成为日常工作、生活不可或缺的工具,高校各种管理系统层出不穷。高校作为学习知识和技术的高等学府,信息......
  • java毕业设计基于微信小程序的鲜花销售系统Vue+uniapp技术
    文末获取资源,收藏关注不迷路文章目录前言开发意义功能介绍主要使用技术研究内容核心代码文章目录前言在当今社会,随着移动互联网技术的飞速发展和智能手机的普及,人们的消费习惯正在发生深刻的变化。微信作为中国最大的社交媒体平台之一,不仅改变了人们的沟通方式,也深......
  • 【JavaEE初阶】线程安全的集合类
    ......
  • JAVA毕设项目II精准扶贫管理系统
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。源码联系请查看文末一、前言"在全面打赢脱贫攻坚战的背景下,精准扶贫管理系统......
  • javaDoc生成文档
    1.新建一个项目,完成结构以及模型的设置2.建立一个包(将其命名为com.zhiShi.base)3.在base中新建一个java(命名为Doc)4.输入指定代码(publicStringtest(){}以及returnname;)5.右键文件Doc点击openinexplorer6.点击explorer进入文件夹在文件位置处输入cmd空格回车......
  • Javascript(turfjs)等值线图绘制
    Javascript(turfjs)等值线图绘制舍瓦温 2020-04-07阅读 5 分钟14 使用气象、环境类空间数据绘制等值线通常是由NCL、Python来做,在一些场景中:你只是想在WEB端做一些简单的绘制你的后端只有Node.js环境你纯粹是个前端工程师你也许需要......
  • 基于Springboot的仿淘宝系统(有报告)。Javaee项目,springboot项目。
    演示视频:基于Springboot的仿淘宝系统(有报告)。Javaee项目,springboot项目。项目介绍:采用M(model)V(view)C(controller)三层体系结构,通过Spring+SpringBoot+Mybatis+Vue+Maven来实现。MySQL数据库作为系统数据储存平台,实现了基于B/S结构的Web系统。界面简洁,操作简单。......
  • [软件工具]随机地址生成工具极速版使用教程
    【极速版随机地址生成器】——您的便捷生活小助手!在快节奏的生活中,无论是填写问卷、注册账号还是保护个人隐私,一个安全、快速的地址生成工具都是不可或缺的。我们精心打造的“极速版随机地址生成器”,一键快速生成随机地址,支持导出TXT或者excel格式,可以方便后续处理和二次加工......