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

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 docker模式webrtc-streamer 无法播放公网rtsp
  • ¥15 学不会递归,理解不了汉诺塔参数变化
  • ¥15 基于图神经网络的COVID-19药物筛选研究
  • ¥30 软件自定义无线电该怎样使用
  • ¥15 R语言mediation包做中介分析,直接效应和间接效应都很小,为什么?
  • ¥15 Jenkins+k8s部署slave节点offline
  • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题