笔记-谷歌Zxing二维码,用数据流输出到页面显示

来源:互联网 发布:开源电商系统 java 编辑:程序博客网 时间:2024/05/14 09:02

笔记,谷歌Zxing二维码,用数据流输出到页面显示

二维码一直都很流行,今日实践了一下,需求是针对不同的参数生成地址链接二维码,并展示在页面上,如果采用生成图片保存本地再返回相对路径,会产生一堆垃圾图片文件,还要后期清除实在是麻烦,想起登录时的校验码可以直接将流输出到页面,故就异曲同工吧,少废话直接上代码。

项目是SpringMVC,maven管理
先导入谷歌的二维码pom文件Zxing的依赖关系

  <!-- 二维码 -->    <dependency>      <groupId>com.google.zxing</groupId>      <artifactId>core</artifactId>      <version>3.2.0</version>    </dependency>    <dependency>      <groupId>com.google.zxing</groupId>      <artifactId>javase</artifactId>      <version>3.2.0</version>    </dependency>

页面jsp显示二维码处:

<img class="q_code" src="${path}/tv/getQ?id=${id}" />

java controller代码

    @RequestMapping(value = "/getQ", method = { RequestMethod.POST, RequestMethod.GET })    public void getqcode(HttpServletResponse resp, String id) throws IOException {        String url = "要生成二维码的地址"+id;        if (url != null && !"".equals(url)) {            ServletOutputStream stream = null;            try {                int width = 200;//图片的宽度                int height = 200;//高度                stream = resp.getOutputStream();                QRCodeWriter writer = new QRCodeWriter();                BitMatrix m = writer.encode(url, BarcodeFormat.QR_CODE, height, width);                MatrixToImageWriter.writeToStream(m, "png", stream);            } catch (WriterException e) {                e.printStackTrace();            } finally {                if (stream != null) {                    stream.flush();                    stream.close();                }            }        }    }

最后当页面加载的时候会去执行img标签内的src请求返回图片流并展示。
这里写图片描述

1 0
原创粉丝点击