Spring Boot项目使用Graphics2D 生成二维码海报图片流返回给前端

前言

需求是生成二维码分享海报,作为学生加入班级的一个方式,本来想着用前端canvas来实现,生成想要的图片,可视化比较好。后来改为后端生成固定格式的海报图片,只是班级信息发生改变。就想着由前端传入响应的参数,后端根据参数使用Graphics2D 画一张海报,然后通过图片流的方式返回给前端。

生成图片最后效果(省略公司logo)

图片大小是750*1334的

代码

ctroller层接口方法:

@RequestMapping(value = "/getClassQr")
    public void getClassQr(@RequestBody Map<String, String> request, HttpServletResponse response) {
   
        try {
   
            // 设置响应流信息
            response.setContentType("image/jpg");
            response.setHeader("Pragma", "no-cache");
            response.setHeader("Cache-Control", "no-cache");
            response.setDateHeader("Expires", 0);
            //海报的宽高
            int pic_width = 750;
            int pic_height = 1334;
            BufferedImage bufferedImage = new BufferedImage(pic_width, pic_height, BufferedImage.TYPE_INT_RGB);
            OutputStream stream = response.getOutputStream();
            bufferedImage = getClassQr(request, bufferedImage);
            //以流的形式输出到前端
            ImageIO.write(bufferedImage, "jpg", stream);
        } catch (IOException e) {
   
            e.printStackTrace();
        }
    }

核心方法:

    public BufferedImage getClassQr(Map<String, String> request, BufferedImage bufferedImage) {
   
        String className = request.get("className");
        String kdgtName =
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值