公司有个需求,需要画一个图,这个图只有x轴,不需要y轴
这个集合里面放一些参数,我们用作表示呼吸状态,正常或者不正常,对应的状态为0或1,RespColorMap里面存呼吸状态(键):颜色(值)。例子:
RespColorMap.put(0,0xffffff);
最后返回的是一个字符串,将这个字符串放进页面<img src=... />生成图片
static BASE64Encoder encoder = new sun.misc.BASE64Encoder();
public String drawRespImg(List<Integer> list){ String base64 = "data:image/png;base64,"; if (list == null || list.size() == 0) return base64; int len = list.size(); BufferedImage image = new BufferedImage(len, 60, BufferedImage.TYPE_INT_RGB); // 获取Graphics2D Graphics2D g2d = image.createGraphics(); // 画图 g2d.setBackground(new Color(0x444444)); for (int i = 0; i < len; i++) { g2d.setPaint(new Color(RespColorMap.get(list.get(i)))); RoundRectangle2D rect = new RoundRectangle2D.Double(i, 0, i, 60, 4, 4);//创建矩形 g2d.draw(rect); } g2d.dispose(); // 保存文件 try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); File f1 = new File(UUID.randomUUID().toString()); ImageIO.write(image, "jpg", baos); byte[] bytes = baos.toByteArray(); base64 += encoder.encodeBuffer(bytes).trim(); f1.delete(); } catch (IOException e) { e.printStackTrace(); } return base64; }