Java 生成在线二维码 以Base64返回前端、或者写入到本地磁盘 |
您所在的位置:网站首页 › java生成二维码到前端 › Java 生成在线二维码 以Base64返回前端、或者写入到本地磁盘 |
思路
现阶段遇到这样一个问题,在原有的产品上加入线下优惠券模式,用户领取优惠券以后,获取到一个唯一的ID作为领取凭证,但是在线下用扫码枪进行扫码的时候,总不能让人手动输入吧 于是乎就想出了一个办法,后端提供一个接口,前端请求发起后,将需要加入的字符生成出二维码,然后用Base64进行编码后返回,前台直接展示即可
本地写入二维码就采用字节流的方式,将二维码直接写入到磁盘即可。 Maven依赖 com.google.zxing core 3.3.0 com.google.zxing javase 3.3.0这里依赖的jar包主要是Google 的zxing 进行二维码的生成 代码 QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode("622921", BarcodeFormat.QR_CODE, 600, 600); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); MatrixToImageWriter.writeToStream(bitMatrix, "PNG", outputStream); Base64.Encoder encoder = Base64.getEncoder(); String text = encoder.encodeToString(outputStream.toByteArray()); System.out.println(text);说明:需要在二维码里面展现的内容就是字符串622921 参数600*600 表示的就是生成后二维码的宽高,单位px 像素 这里我们使用的是Java自带Base64工具类进行生成的base64编码 生成后的base64如下所示 ![]() ![]() 注意:这里编码后的base64字符串没有带有前端img标签解析时候的格式字符,需要在字符串前拼接:data:image/png;base64, 方可正常显示!! 检验 在线验证:http://imgbase64.duoshitong.com/ 只需要修改部分关键代码即可实现,通过字节流的方式进行写入到磁盘,这里使用字节流直接操作的是文件对象,可以不用关闭流。 File file = new File("H:/test/456.png"); if (!file.exists()) { file.createNewFile(); } FileOutputStream outputStream = new FileOutputStream(file); MatrixToImageWriter.writeToStream(bitMatrix, "PNG", outputStream);小结 学的东西要善于总结,这样才容易记忆与回顾,简单的一个生成二维码的方式,希望帮到你们! |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |