jiannywang 2019-11-16 10:07 采纳率: 0%
浏览 591
已采纳

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

  • 关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧