java生成二维码,并在前端展示。

java生成二维码,并在前端展示,扫码实现下载功能。

后端生成二维码以流的形式

 这是以流的形式展示二维码。当然也可以以文件的格式,文件格式就是
 Path path = FileSystems.getDefault().getPath("3.png");
 MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path);
释放就行
 //text 扫描二维码展示的内容,width宽度,height长度
        public static String generateQRCodeImage(String text, int width, int height) throws WriterException, IOException {
            QRCodeWriter qrCodeWriter = new QRCodeWriter();

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

            //Path path = FileSystems.getDefault().getPath("3.png");

            ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
         

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

            MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream);
            byte[] pngData = pngOutputStream.toByteArray();
            return Base64.encode(pngData );

        }

前端接收二维码并展示

前端代码展示,前端以base64进行回显后端传输的流。
 <img id="img" src = "image">
   $.ajax({
        url: "${base}/risen/rfb/whglRwgl/qrcode?rfbUuid=${result.rfbUuid!''}",
        type: "post",
        success: function (obj) {
            $("#img").attr("src",'data:image/png;base64,' + obj);
        },
    })
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将Java生成的二维码展示前端,可以通过以下步骤实现: 1. 使用Java生成二维码图片,例如zxing或Qrcode。 2. 将生成的二维码图片转换为Base64编码格式,可以使用Java库将图片转换为Base64字符串。 3. 在Java中将Base64字符串返回给前端,可以使用Spring MVC或其他Web框架将Base64字符串作为响应返回给前端。 4. 在前端中使用JavaScript解码Base64字符串,并将其展示为图片。 以下是一个示例Java代码,用于生成二维码并将其返回给前端: ``` @RequestMapping(value = "/qrcode", produces = MediaType.IMAGE_PNG_VALUE) @ResponseBody public ResponseEntity<byte[]> generateQRCode(@RequestParam("text") String text) throws Exception { // 生成二维码图片 QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, 200, 200); // 将二维码图片转换为BufferedImage BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix); // 将BufferedImage转换为Base64字符串 ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(bufferedImage, "png", baos); byte[] bytes = baos.toByteArray(); String base64Encoded = Base64.getEncoder().encodeToString(bytes); // 将Base64字符串返回给前端 final HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.IMAGE_PNG); return new ResponseEntity<>(Base64.getDecoder().decode(base64Encoded), headers, HttpStatus.CREATED); } ``` 在前端中,可以使用以下JavaScript代码将Base64字符串转换为图片并展示: ``` // 将Base64字符串转换为图片并展示 var img = new Image(); img.src = 'data:image/png;base64,' + base64Encoded; document.getElementById('qrcode').appendChild(img); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值