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

代码
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 =
最低0.47元/天 解锁文章
1338

被折叠的 条评论
为什么被折叠?



