spring boot 通过zxing生成二维码

Spring Boot是一个基于Spring框架的快速开发、便捷部署的微服务框架。而ZXing是一个功能强大的开源库,用于生成和解析二维码。在Spring Boot应用中,您可以整合ZXing库来方便地生成二维码。

接下来,创建一个Spring Boot服务,并编写一个控制器类来生成二维码。以下是一个简单的例子:

@RestController
public class QrController {
   

    @Resource
    private CouponApi couponApi;


    @GetMapping("/qr")
    public ResponseEntity<byte[]> getImageData(CouponRequest request) throws IOException, WriterException {
   

        ResponseEntity<byte[]> result=new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);

        ResponseObject<CouponResponse> res = couponApi.view(request);
        if (res.getCode()!=200){
   
            return result;
        }

        Map<EncodeHintType, Object> hints = new HashMap<>();
        hints.put(EncodeHintType.MARGIN,1);
        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        String data=String.format("http://www.niubaite.com/check?id=%d&code=%s",res.getData().getId(),res.getData().getCouponCode());
        BitMatrix bitMatrix = qrCodeWriter.encode(data, BarcodeFormat.QR_CODE, 300, 300, hints);

        BufferedImage bufferedImage = new BufferedImage(bitMatrix.getWidth(), bitMatrix.getHeight(), BufferedImage.TYPE_INT_RGB);
        for (int x = 0; x < bitMatrix.getWidth(); x++) {
   
            for (int y = 0; y < bitMatrix.getHeight(); y++) {
   
                bufferedImage.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);
            }
        }
        ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
        ImageIO.write(bufferedImage, "png", outputStream);
        byte[] imageData =outputStream.toByteArray();

        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "image/png"); // 设置内容类型为图像

        return new ResponseEntity<>(imageData, headers, HttpStatus.OK);
    }

}

相关推荐

  1. SpringBoot使用Zxing生成

    2024-01-21 21:38:04       12 阅读
  2. spring boot 通过zxing生成

    2024-01-21 21:38:04       33 阅读
  3. SpringBootZXing 完美结合,轻松生成

    2024-01-21 21:38:04       27 阅读
  4. Unity利用ZXing生成和识别

    2024-01-21 21:38:04       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-21 21:38:04       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-21 21:38:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-21 21:38:04       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-21 21:38:04       20 阅读

热门阅读

  1. 【AI】深度学习在图像编码中的应用(1)

    2024-01-21 21:38:04       37 阅读
  2. ARP相关

    ARP相关

    2024-01-21 21:38:04      25 阅读
  3. 短剧剪辑思路

    2024-01-21 21:38:04       66 阅读
  4. nginx 搭建docker 似有hub仓库

    2024-01-21 21:38:04       24 阅读
  5. 归并排序与逆序对

    2024-01-21 21:38:04       24 阅读
  6. Vue中使px自动转rem配置 (h5适配问题)

    2024-01-21 21:38:04       33 阅读
  7. PiflowX组件-OracleCdc

    2024-01-21 21:38:04       33 阅读