首页 > 其他分享 >生成二维码

生成二维码

时间:2023-05-29 22:02:49浏览次数:37  
标签:google text zxing 二维码 outputStream import 生成 com

依赖

<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>

 

service

import com.google.zxing.*;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import org.springframework.stereotype.Service;

import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.HashMap;

@Service
public class QRCodeService {

    public BufferedImage generateQRCode(String text, int width, int height) throws WriterException, IOException {
        QRCodeWriter qrCodeWriter = new QRCodeWriter();

        // 设置二维码参数
        HashMap<EncodeHintType, Object> hints = new HashMap<>();
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
        hints.put(EncodeHintType.MARGIN, 1);

        BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height, hints);
        return MatrixToImageWriter.toBufferedImage(bitMatrix);
    }
}

 

controller

package boot.controller;

import boot.service.QRCodeService;
import com.google.zxing.WriterException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

@RestController
public class QRCodeController {

    @Autowired
    private QRCodeService qrCodeService;

    @GetMapping(value = "/qrcode/{text}", produces = MediaType.IMAGE_PNG_VALUE)
    public byte[] getQRCode(@PathVariable("text") String text,
                            @RequestParam(defaultValue = "200") int width,
                            @RequestParam(defaultValue = "200") int height) throws IOException, WriterException {
        BufferedImage qrcodeImage = qrCodeService.generateQRCode(text, width, height);

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        ImageIO.write(qrcodeImage, "PNG", outputStream);
        return outputStream.toByteArray();
    }

    @PostMapping(value = "/qrcode2", produces = MediaType.IMAGE_PNG_VALUE)
    public byte[] getQRCode2(@RequestBody String text,
                             @RequestParam(defaultValue = "200") int width,
                             @RequestParam(defaultValue = "200") int height) throws IOException, WriterException {
        BufferedImage qrcodeImage = qrCodeService.generateQRCode(text, width, height);

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        ImageIO.write(qrcodeImage, "PNG", outputStream);
        return outputStream.toByteArray();
    }
}

 

测试

 

标签:google,text,zxing,二维码,outputStream,import,生成,com
From: https://www.cnblogs.com/ixtao/p/17441771.html

相关文章

  • 2021级《软件工程》 开发技能测试试卷题目-河北宏志大学学生成绩管理系统
    2021级《软件工程》开发技能测试试卷(180分钟)河北宏志大学学生成绩管理系统(卷面成绩40分)河北宏志大学学生成绩管理系统1、项目需求:学生管理是各大院校的管理工作中尤为重视的一项工作,它一直以来是学校管理的一项重要的衡量指标。学生管理系统的应用解决了学校日常学生管理工......
  • 中间代码生成器 修改
    #include<stdio.h>#include<stdlib.h>#include<iostream>#include<string>#include<map>#include<sstream>usingnamespacestd;pair<string,string>words[100];//词法分析结果,每个pair的first如"identifier",second如&......
  • EBS: FORM窗体开发使用VIEW模式开发,plsql DEVELOPER 自动生成PLSQL脚本
    FORM窗体开发使用VIEW模式开发,plsqlDEVELOPER自动生成PLSQL脚本,CREATEORREPLACEPACKAGEAPPS.HAND_PLSQL_AUTOCREATEAUTHIDCURRENT_USERAS/*$Header:HDPLSATC.pls115.12004/09/0215:33:09pkmship$*/PROCEDUREregist_table(p_table_nameINVARCHAR2,......
  • 自动生成作文的软件分享,ai写作软件推荐!​
    自动生成作文的软件分享,自动化技术的快速发展,已经深刻地改变了我们的生活,随着人工智能的崛起,各种自动化工具和机器人正在逐渐取代人类的工作,其中智能写作就是一个新时代的产物,可以帮助我们自动生成作文,下面感兴趣的小伙伴一起来看看哪些软件可以进行生成吧!选择:FUNAIFUNAI是一款......
  • 颠覆性新工具:瞬间生成相似图片!
    根据给定图片生成类似的图片,如果有这样的工具就太方便了。比如你是一名设计师,给客户设计了一张图,如果能快速生成几张类似的图片,是不是就给客户提供了更大的选择空间。再比如你平时写文章、做PPT,需要用到配图,使用网上的图片会有什么问题?可不可以用这个工具呢?可以发挥自己想象力......
  • idea新文件怎么自动生成用户名
    在创建java类后,自动生成定制的注释:设置过程点击File->Settings->Editor->FileandCodeTemplates在FileHeader中输入想要设置的信息如:/**文件名:${NAME}*创建者:yourname*创建时间:${DATE}${TIME}*描述:这是一个示例*/当然也可以参考下方的Description选择......
  • 图书机读目录MARC简介,ISO格式目录数据生成
    一、简介机读目录(Machine-ReadableCatalogue,MARC),是利用计算机读取和处理书目信息,是计算机编目的产品。它以代码形式和特定的结构将书目信息记录在计算机的存储载体上,能够被计算机识别并编辑输出书目信息。MARC起源于美国国会图书馆于1965年1月提出的“标准机器可读目录记录款......
  • C++模板元编程:用代码生成代码的黑科技
    介绍模板元编程在C++中使用模板元编程示例一:元函数示例二:元数据计算示例三:元编程递归总结让我们开始吧。介绍模板元编程在C++编程中,元编程是一种特殊的技术,所谓的元编程就是在编写代码时,使用代码来生成代码。与传统的程序设计思路不同,元编程充分利用了C++模板的特性。采用元编程技......
  • iOS MachineLearning 系列(20)—— 训练生成CoreML模型
    iOSMachineLearning系列(20)——训练生成CoreML模型本系列前面的文章详细的介绍了在iOS中与AI能力相关的API的使用,也介绍了如何使用训练好的CoreML模型来实现更强大的AI能力。然而,无论是成熟的API提供的能力,还是各种各样的三方模型,有时候都并不能满足某一领域内的定制化需求。当我......
  • 05]ApiMateRadStudio.exe上传xls,自动生成pacsal代码
    ApiMateRadStudio.exe链接:https://pan.baidu.com/s/1Sd-teDIRX9ZV48j6Jgc_wQ提取码:7nk4 procedureTForm4.Button1Click(Sender:TObject);varxls:TXlsFile;beginxls:=TXlsFile.Create(true);tryCreateExcelFile(xls);//将文件保存为XLSifO......