java实现二维码生成功能

这篇具有很好参考价值的文章主要介绍了java实现二维码生成功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、由来:

由于现在对二维码的使用比较多,正好我在项目里面也使用到了,所以写篇博客记录一下。

2、引入依赖:

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

3、生成二维码

这里我是将我博客主页的url生成二维码,微信扫一扫可以看到我的博客主页(欢迎骚扰)

QrCodeUtil.generate("https://blog.csdn.net/liulangzhezhang?spm=1000.2115.3001.5343", 300, 300, FileUtil.file("D:\\QRCode\\qrcode.jpg"));

4、带参数的

4.1、设置参数

上面这个只是简单的生成二维码,接下来说说自定义参数的方式生成,如长、宽、二维码的颜色、背景颜色、边距等参数,下面是代码和效果图:

QrConfig config = new QrConfig(300, 300);
        // 设置边距,既二维码和背景之间的边距
        config.setMargin(3);
        // 设置前景色,既二维码颜色(青色)
        config.setForeColor(Color.CYAN.getRGB());
        // 设置背景色(灰色)
        config.setBackColor(Color.GRAY.getRGB());
        // 生成二维码到文件,也可以到流
        QrCodeUtil.generate("https://blog.csdn.net/liulangzhezhang?spm=1000.2115.3001.5343", config, FileUtil.file("D:/qrcode.jpg"));
java实现二维码生成功能

4.2、附带logo小图标

QrCodeUtil.generate(//
                "https://blog.csdn.net/liulangzhezhang?spm=1000.2115.3001.5343", //二维码内容
                QrConfig.create().setImg("C:\\Users\\jlz\\Pictures\\Camera Roll\\zy.jpg"), //附带logo
                FileUtil.file("D:\\excel\\QRCode\\qrcode.jpg")//写出到的文件
        );

4.3、调整纠错级别

很多时候,二维码无法识别,这时就要调整纠错级别。纠错级别使用zxing的ErrorCorrectionLevel枚举封装,包括:L、M、Q、H几个参数,由低到高。低级别的像素块更大,可以远距离识别,但是遮挡就会造成无法识别。高级别则相反,像素块小,允许遮挡一定范围,但是像素块更密集。

    QrConfig config = new QrConfig();
        // 高纠错级别
        config.setErrorCorrection(ErrorCorrectionLevel.H);
        QrCodeUtil.generate("https://blog.csdn.net/liulangzhezhang?spm=1000.2115.3001.5343", config, FileUtil.file("D:\\excel\\QRCode\\qrcode1.jpg"));
java实现二维码生成功能

5、识别二维码

String decode = QrCodeUtil.decode(FileUtil.file("D:\\excel\\QRCode\\qrcode.jpg"));

6、实际可用

在项目中我还加了生成二维码名称,是根据日期和时间生成的唯一名称,这就解决了名称可能重复的问题,下面是完整代码:

package com.yang.zhang.QrCode;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Value;

import java.io.File;
import java.util.Date;

/**
 * 二维码生成
 *
 * @Author zhangzhongqing
 * @Date 2022/12/14 13:56
 */
@RestController
@RequestMapping("/qrCode")
@Api(tags = "二维码生成")
public class QrCode {
    @Value("${file.local.filePath}")
    private String filePath;
    @PostMapping("/qrCode1")
    @ApiOperation(value="二维码生成")
    public void QrCode() {
        //二维码里面的信息
        String message = "https://blog.csdn.net/liulangzhezhang?spm=1000.2115.3001.5343" ;

        // 生成二维码
        String picUrl = generateQRCode(message);
        System.out.println(picUrl);
    }
    // 生成二维码并返回地址  message二维码中内容,name文件名
    private String generateQRCode(String message) {
        String newFilePath = getUploadFilePath(".jpg");
        String localPath = filePath + "/" + "QRCode" + "/" + newFilePath;
        File newFile = new File(localPath);
        if (!newFile.getParentFile().exists()) {
            newFile.getParentFile().mkdirs();
        }
        // 生成二维码
        QrCodeUtil.generate(message, 300, 300, FileUtil.file(localPath));
        return "/files" + newFilePath;
    }
    // 生成文件的路径和文件名  如 jpg/2022-05-20/14_50_39_1.jpg
    private String getUploadFilePath(String suffix) {
        Date nowDate = new Date();
        String dateStr = DateUtil.formatDate(nowDate);
        String timeStr = DateUtil.format(nowDate, "HH_mm_ss");
        String newFilePath ="/" + dateStr + "/" + timeStr + suffix;
        return newFilePath;
    }
}

7、总结

这就是简单的生成二维码的方法,欢迎讨论与指正!!!文章来源地址https://www.toymoban.com/news/detail-512408.html

到了这里,关于java实现二维码生成功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java生成微信小程序二维码,5种实现方式,一个比一个简单

    先介绍一下 项目场景 ,主要是通过微信小程序二维码 裂变分享 ,每个账号有专属邀请二维码,分享出去,有新人扫码入驻,就可以得到现金奖励或红包奖励。当然,产品设计会更丰富,不止有裂变模式,还有渠道推广模式,还有各种奖励规则,但核心实现都是生成二维码。

    2024年02月03日
    浏览(35)
  • vue3-pc端生成微信二维码、扫码支付监听支付回调(WebSocket)功能实现

    项目场景:后台系统中采购订单列表需要支持微信扫描支付功能,支付成功需要返回到订单列表。 调用接口接收后端返回数据, npm install qrcode --save 安装插件,处理返回数据生成二维码。 1. 后端接口返回数据如下: 2. 前端代码如下: 3. 效果图如下: 生成二维码功能到这就完

    2024年02月12日
    浏览(30)
  • 【支付系统】java springboot 生成二维码,二维码中文乱码

            支付系统必不可少的就是生成二维码,有时我们会需要将支付链接转换为二维码.用户通过移动设备扫描二维码调起支付. 该篇文章主要使用的是hutool自带的二维码生成功能.  1. 引入依赖(hutool 可以按需引入这里就直接使用all了) 2. hutool的官方已经有很详细的生成方式

    2024年02月11日
    浏览(29)
  • Qrcode前端生成二维码,列表循环,可以下载分享,附加功能

    前言:          项目需求,原型列表要求展示二维码,然后后端那边因为某种原因没有给我返回这个参数,无奈只好前端自己来做,于是乎便有了下面的操作,这篇文章来整理下。         主要功能:                 1.生成二维码                 2.渲染列表        

    2024年02月03日
    浏览(49)
  • 免费插件-illustrator-Ai插件-印刷功能-二维码生成

    本文介绍一款免费插件,加强illustrator使用人员工作效率,进行二维码生成。首先从下载网址下载这款插件 https://download.csdn.net/download/m0_67316550/87890501,经过测试,这款插件在CC 2018之后都可以使用。 点击安装按钮即可以完成安装,如下图所示: 打开illustrator之后,通过窗口扩

    2024年02月13日
    浏览(33)
  • Android studio 实现生成二维码和扫描二维码

    效果图 build.gradle(:app)添加依赖 Manifests.xml activity_main.xml MainActivity ScanActivity

    2024年02月10日
    浏览(33)
  • 教你简单搞定小程序扫一扫以及生成普通二维码功能

    在生活中时常需要用小程序扫描识别相应的二维码(不包含小程序二维码),通过进入到相应的小程序,然后调起手机的相机进行扫一扫。那么将会更加方便简单的实现相应的功能。生成普通的二维码用weapp-qrcode.js来实现,识别二维码用wx.scanCode()或camera来实现,下面下面将

    2024年02月07日
    浏览(27)
  • HarmonyOS学习路之开发篇—AI功能开发(二维码生成及文字识别)

    为应用提供丰富的AI(Artificial Intelligence)能力,支持开箱即用。开发者可以灵活、便捷地选择AI能力,让应用变得更加智能。 已开放的AI能力如下表所示: 能力 简介 二维码生成 根据开发者给定的字符串信息和二维码图片尺寸,返回相应的二维码图片字节流。调用方可以通过

    2024年02月11日
    浏览(48)
  • Java便捷生成二维码并使用Excel

    第一步生成图片字节数组输出流 第二步字节数组输出流存入excel 使用的是easyexcel和hutool工具便捷快速开发 导出类信息 @ContentRowHeight(100) @ColumnWidth(100/6) 这两个注解是条件excel行列大小,可以自行调整 EasyExcel 会根据这个实体类来生成表格,可以去官网查看注解注释掉其中的某

    2024年02月09日
    浏览(23)
  • Java生成二维码(前后端分离项目实战)

    📍 本文代码已放置 github:Mr-Write/SpringbootDemo: 各种demo案例 (github.com) ZXing(Zebra Crossing)是一个开源的条码扫描和生成库,用于读取和生成各种类型的条码和二维码。它由 Google 开发并发布,目前由一群开源社区维护。 ZXing 支持多种常见的条码格式,包括一维条码(如EAN-13、

    2024年02月10日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包