java生成二维码

java生成二维码:

第一步创建一个Mavean工程(本文springboot+mavean)
    创建mavean工程在这里就不多做介绍,默认大家都会
第二步导入mavea依赖:
   <!--生成二维码-->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.3.0</version>
        </dependency>
第三步编写二维码生成工具类:
**
 * oauth:xiaowang
 * java生成二维码
 * */
public class QrCodeUtils {

    /**
     * @param text 加密文本
     * @param width 宽度
     * @param height 高度
     * @param filePath 文件输出目录
     *这个是以文件的方式写入到本地磁盘
     * */
    public static void generateQRCodeImage(String text, int width, int height, String filePath)
            throws WriterException, IOException {

        QRCodeWriter qrCodeWriter = new QRCodeWriter();

        BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);

        Path path = FileSystems.getDefault().getPath(filePath);

        MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path);
    }

	/*
	 * @param condContent 加密文本
     * @param width 宽度
     * @param height 高度
     * @param outputStream 响应输出流
     *这个是以输出流的方式响应给浏览器
	* */
    public static void createCodeToOutputStream(String condContent,int with,int height,OutputStream outputStream){

        if (condContent==null||"".equals(condContent.trim())){
            return;
        }
        condContent=condContent.trim();

        MultiFormatWriter multiFormatWriter = new MultiFormatWriter();

        try {
            BitMatrix encode = multiFormatWriter.encode(condContent, BarcodeFormat.QR_CODE,with,height);

            MatrixToImageWriter.writeToStream(encode,"PNG",outputStream);

        } catch (Exception e) {
            e.printStackTrace();
        }


    }
	//这里是输出到文件测试
    public static void main(String[] args) {
        String path="F:\\workspeck\\qrcode\\src\\main\\resources\\static\\1.png";
        try {
            generateQRCodeImage("hello",500,300,path);
        } catch (WriterException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

第四步编写控制层Controller:
@Controller
public class QrCodeController {
    @ResponseBody
    @RequestMapping(value = "/qrcode/{code}")
    public void Qrcode(@PathVariable("code")String code, HttpServletRequest request, HttpServletResponse response){

        try {
            QrCode.createCodeToOutputStream(code,500,300,response.getOutputStream());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
第五步启动项目测试结果;
浏览器地址栏输入:http://localhost:8848/qrcode/xiaowang979578444

最终效果图如下:
在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小王979578444

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值