java创建二维码并赋予url链接的功能实现

 更新时间:2021年06月23日 15:03:12   作者:小小的码农哥  
这篇文章给大家分享java创建二维码并赋予url链接的功能实现,需要获取要赋值给二维码的链接后缀,通过设置二维码的访问路径等一系列操作,具体实现代码跟随小编一起看看吧

首先在pom文件中导入有关依赖

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

工具类

public class YmtUtil {
   public static byte[] getQRCodeImage(String text, int width, int height) throws 
        WriterException, IOException {
        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, 
        height);
        ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
        MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream);
        byte[] pngData = pngOutputStream.toByteArray();
        return pngData;
}

功能实现

此处是写在service中的代码,调用过后就可以在指定的存储位置中找到对应的二维码

//获取要赋值给二维码的链接后缀如 192.168.0.21/erweima
String url = erweima;
 
//获取本机ip地址,也可以找一指定ip地址写死
InetAddress localhost = StrUtil.getLocalHostExactAddress();
 
//设置二维码访问路径
String URL= "http://localhost"+ url;
 
//设置二维码流
qrcode = YmtUtil.getQRCodeImage(URL, 360, 360);
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_PNG);
 
//设置生成的二维码存储地址 linux路径:(/root/D:/opt/upFiles)  window路径(D:/opt/upFiles)此处使用的是linux路径
File path = new File("/root/D:/opt/upFiles", 二维码名称 + ".jpg");
 
//将二进制数组转为文件
ByteArrayInputStream inputStream = new ByteArrayInputStream(qrcode);
MockMultipartFile file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
file.transferTo(path);

以上就是java创建二维码并赋予url链接的详细内容,更多关于java创建二维码的资料请关注脚本之家其它相关文章!

相关文章

  • 特殊数据结构之使用Java实现单调栈示例

    特殊数据结构之使用Java实现单调栈示例

    这篇文章主要为大家介绍了特殊数据结构之使用Java实现单调栈示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Java连接Mysql数据库详细代码实例

    Java连接Mysql数据库详细代码实例

    这篇文章主要介绍了Java连接Mysql数据库详细代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • ResponseBodyAdvice的使用原理源码解析

    ResponseBodyAdvice的使用原理源码解析

    这篇文章主要为大家介绍了ResponseBodyAdvice的使用原理源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Java实例讲解动态代理

    Java实例讲解动态代理

    动态代理指的是,代理类和目标类的关系在程序运行的时候确定的,客户通过代理类来调用目标对象的方法,是在程序运行时根据需要动态的创建目标类的代理对象。本文将通过案例详细讲解一下动态代理,需要的可以参考一下
    2022-06-06
  • Java高级之HashMap中的entrySet()方法使用

    Java高级之HashMap中的entrySet()方法使用

    这篇文章主要介绍了Java高级之HashMap中的entrySet()方法使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 详解springboot整合ehcache实现缓存机制

    详解springboot整合ehcache实现缓存机制

    这篇文章主要介绍了详解springboot整合ehcache实现缓存机制,ehcache提供了多种缓存策略,主要分为内存和磁盘两级,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 半小时实现Java手撸网络爬虫框架(附完整源码)

    半小时实现Java手撸网络爬虫框架(附完整源码)

    最近在做一个搜索相关的项目,需要爬取网络上的一些链接存储到索引库中,自己写了一个简单的网络爬虫,感兴趣的可以了解一下
    2021-06-06
  • 详细SpringBoot生命周期接口的使用

    详细SpringBoot生命周期接口的使用

    本文主要介绍了SpringBoot生命周期接口的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • JMeter连接Mysql数据库的实现步骤

    JMeter连接Mysql数据库的实现步骤

    本文主要介绍了JMeter操作Mysql数据库,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Java数据类型Integer与int的区别详细解析

    Java数据类型Integer与int的区别详细解析

    这篇文章主要介绍了Java数据类型Integer与int的区别详细解析,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null,int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比,需要的朋友可以参考下
    2023-12-12

最新评论