jiannywang
2019-11-16 10:07
采纳率: 66.7%
浏览 526
已采纳

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条回答 默认 最新

相关推荐 更多相似问题