java后台Graphics生成图片,如何用<img>在jsp页面显示出来?

利用Graphics能够进行绘图,但是这个图形怎么才能够用标识在jsp网页显示出来呢?当前我尝试和相关说明如下:
(1)我的图形用JFreeChart不好生成,所以用Graphics类绘制,图能够绘制出来;
(2)网上说了用BufferedImage,倒是能够在jsp页面显示图片,但是整个页面就显示了这样的一个图片,背景全是黑色的(代码和显示结果如下所示)。我希望生成的就是一个图片显示在网页中,就是说只将中间白色背景的图片显示出来,而黑色的背景不要显示,同时将网页中“Hello World”等元素正常显示。如何实现呢?

<%-- 
    Document   : testImg
    Created on : 2019-11-15, 21:43:37
    Author     : Administrator
--%>

<%@page import="java.io.File"%>
<%@page import="java.awt.Graphics2D"%>
<%@page import="java.awt.Transparency"%>
<%@page import="javax.imageio.ImageIO"%>
<%@page import="java.awt.Color"%>
<%@page import="java.awt.Graphics"%>
<%@page import="java.awt.image.BufferedImage"%>
<%@page contentType="text/html" pageEncoding="GB2312"%>
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
    <title>JSP Page</title>
  </head>
  <body>
    <h1>Hello World!</h1>   
    <%
      BufferedImage image=new BufferedImage(500,200,BufferedImage.TYPE_INT_RGB);     
      Graphics2D g=image.createGraphics();      
      g.setColor(Color.WHITE); 
      g.fillRect(0, 0, 500,200);
      g.setColor(Color.GREEN);
      g.fillRect(5, 5, 100, 150);
      g.dispose();
      response.reset();
      ServletOutputStream o = response.getOutputStream();
      // 输出图象到页面
      ImageIO.write(image, "JPEG",o);
      o.flush();
      o.close();
      o = null ;
      response.flushBuffer();
      out.clear();
      out = pageContext.pushBody();   
    %>
<p><font color="#FF0000">网页页面显示</font></p>
  </body>
</html>

显示的结果如下:
图片说明

1个回答

jiannywang
jiannywang 谢谢解答,虽然最后没能通过你的回答解决问题,为了关闭这个问题,还是采纳你的答案了。个人解决方案为:https://blog.csdn.net/jiannywang/article/details/103105584
7 个月之前 回复
jiannywang
jiannywang 这个帖子的问题同我对servlet实现我所要实现功能的问题差不多,https://bbs.csdn.net/topics/391952403?list=lz
7 个月之前 回复
jiannywang
jiannywang servlet是可以显示图像的,但是我真正要达成的目的是:传入数据、计算获得结果数据、根据结果数据生成图形;客户端显示结果数据并同时显示图像。我看servlet好像只能显示一种类型的结果:或者html的网页;或者图像输出流。能不能在servlet的service方法中既能显示数据(double型数组),又能显示图像?谢谢。
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐