`
jiaoxujin
  • 浏览: 63382 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

利用JAVA绘图动态生成图片发送到客户端IE

阅读更多
package com.gepower.ps.eps.topissuesadmin.common;
import java.awt.*;
import java.awt.geom.Line2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.IIOException;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import org.apache.commons.lang.NumberUtils;
/**
*
* <p>
* Title: TIMT
* </p>
* <p>
* Description: 2008-03
* </p>
* <p>
* Copyright: Copyright (c) 2006
* </p>
* <p>
* Company: TCS
* </p>
*
* @author Xujin.Jiao
* @version 4.0
*/
public class CinScoreImgServlet extends HttpServlet {
public static final long serialVersionUID = 123888839L;
    public CinScoreImgServlet() {
    }
    public void init() throws ServletException {
        super.init();
    }
    public void destroy() {
        super.destroy();
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException, IOException {
        process(request, response);
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException, IOException {
        process(request, response);
    }
    protected void process(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException, IOException {
     boolean drawTriangle = true;
  int width = TopIssueAdminConstants.CIN_IMAGE_WIDTH;
  int height = TopIssueAdminConstants.CIN_IMAGE_HEIGHT;
        int halfTrag = (int)Math.round(height / Math.sqrt(3d));
  int axisWidth = width - halfTrag;
  int cinScore = 0;
  int tragXpos = axisWidth;
  String cinScoreStr = request.getParameter("cinScore");
  if (null != cinScoreStr && cinScoreStr.trim().length() > 0) {
   try {
    if (!NumberUtils.isNumber(cinScoreStr)) {
     drawTriangle = false;
    } else if (Integer.parseInt(cinScoreStr) < 0) {
     drawTriangle = false;
    } else {
        cinScore = Integer.parseInt(cinScoreStr);
        tragXpos = axisWidth - (int)Math.round((cinScore * axisWidth) / TopIssueAdminConstants.MAX_CIN_SCORE);
    }
   } catch (Exception e) {
    drawTriangle = false;
    EPSLogger.debug("process() : Error in CinScoreImgServlet : "+ e.getMessage());
   }
  }
  BufferedImage bi = new BufferedImage(width, height,
                                 BufferedImage.TYPE_INT_RGB);
  Graphics2D g2 = (Graphics2D)bi.getGraphics();
  g2.setBackground(Color.WHITE);
  g2.clearRect(0, 0, width, height);
     g2.setColor(Color.black);
     g2.drawLine(0, 0, 0, height);
     g2.drawLine(axisWidth / 2, 0, axisWidth / 2, height);
     g2.drawLine(axisWidth, 0, axisWidth, height);
     float dashes[] = {10, 2};
     g2.setPaint(Color.black);
     g2.setStroke(new BasicStroke(1, BasicStroke.CAP_BUTT,
                            BasicStroke.JOIN_MITER,
                                  10, dashes, 0 ));
     g2.draw(new Line2D.Double(0, height / 2, axisWidth, height / 2));
     if (drawTriangle) {
   int xValues[] = {tragXpos, tragXpos + halfTrag, tragXpos - halfTrag};
   int yValues[] = {0, height, height};
   g2.setColor(Color.CYAN);
   g2.fillPolygon(xValues, yValues, 3);
     }
        response.setContentType("image/jpg");
        try {
      ImageIO.write(bi, "jpg", response.getOutputStream());
        } catch(IIOException ex) {
         EPSLogger.debug("process() : Error in CinScoreImgServlet : "+ ex.getMessage());
        }
    }
}


在web.xml中加上这个:
==================================================================
<servlet>
    <servlet-name>DisplayCinImage</servlet-name>
    <servlet-class>com.gepower.ps.eps.topissuesadmin.common.CinScoreImgServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>DisplayCinImage</servlet-name>
    <url-pattern>/servlet/DisplayCinImage</url-pattern>
</servlet-mapping>


JSP中这样使用:
===============================================================
<td align="center">
  <img src="<%=request.getContextPath()%>/servlet/DisplayCinImage?cinScore=<%=roundOff(tMB.getCinScore())%>" alt="CIN Score=<%=roundOff(tMB.getCinScore())%>" />
</td>

效果图:
  • 大小: 33.7 KB
分享到:
评论

相关推荐

    java使用Servlet动态生成图片

    Java 使用 Servlet 动态生成图片 在 Web 应用中,经常需要动态生成图片,如实时股市行情、各种统计图等等。这种情况下,图片只能在服务器内存中动态生成并发送给用户,然后在浏览器中显示出来。本质上,浏览器向...

    java动态生成图片 并把当前时间写在图片上

    Java动态生成图片并把当前时间写在图片上是一项常见的需求,比如用于生成验证码、日志记录或者自定义的报告。这个任务涉及到Java图形处理、日期时间处理以及IO操作等多个方面。下面将详细介绍如何实现这个功能。 ...

    java图片生成器

    在Java中实现图片生成器涉及到对Java 2D API、AWT和Swing库的深入理解。 Java 2D API是Java平台的标准部分,提供了丰富的功能来处理二维图形和图像。它支持基本的绘图操作,如绘制线、形状、文本和位图。开发者可以...

    java 生成图片

    在Java编程语言中,生成图片是一项常见的任务,尤其在数据可视化、报告生成或者网页动态内容制作等场景。这里我们将深入探讨如何使用Java根据配置文件批量生成图片。 首先,要生成图片,我们需要理解Java中的图像...

    java动画、图形和极富客户端效果开发(中文)+源码

    总的来说,Java动画、图形和极富客户端效果开发是一个涵盖广泛的技术领域,涉及到组件使用、图形绘制、动画原理、事件处理等多个方面。通过学习和实践,开发者可以利用Swing创造出各种生动、直观的用户界面,提升...

    使用页面动态生成图片实例

    在网页开发中,有时我们需要根据用户的操作或者服务器端的数据动态生成图片并展示在页面上,这种技术在报表、图表、验证码、数据可视化等方面广泛应用。本实例将深入探讨如何实现页面动态生成图片,主要包括以下几个...

    java后台生成echarts图表

    然而,在某些场景下,我们可能需要在Java后台生成这些图表,而不是在前端直接渲染,比如用于报表生成、邮件发送或PDF文档嵌入等。 `echarts-java` 是一个专为 Java 开发者设计的工具库,它允许我们在 Java 后台生成...

    利用java生成图片

    在Java编程语言中,生成图片是一项常见的任务,可以用于数据可视化、动态图像生成或作为应用程序的一部分。本篇文章将深入探讨如何使用Java来创建和处理图片。 首先,Java提供了丰富的库来支持图像处理,如Java AWT...

    java生成图片

    在Java编程环境中,生成图片是一项常见的任务,尤其在数据可视化、报表生成或Web应用中。本文将深入探讨如何使用Java来生成图片,并结合打印功能,为开发者提供详细的实践指南。 首先,Java提供了多种库来帮助我们...

    java文字转图片

    在Java编程领域,将文字转换为图片是一种常见的需求,它广泛应用于验证码生成、文本水印、数据可视化等领域。本文将详细讲解如何利用Java实现这一功能,主要涉及以下几个知识点: 1. **Graphics2D API** Java中的`...

    Java语言后台生成word图表

    注意,上述代码中涉及到的`chart.png`是生成图表后的图像文件,因为Apache POI在当前版本中并不直接支持将图表绘制到Word文档,而是先将图表生成为图片,再将图片插入到Word文档中。这可能会导致生成的图表质量受限...

    java (bean) 生成图片

    在Java编程语言中,生成图片是一项常见的任务,特别是在数据可视化、报表生成或动态图像处理的场景下。这里的“java (bean) 生成图片”是指利用Java的类库和设计模式,如JavaBeans,来创建和操作图像。我们将深入...

    实战HTTP Handler (3) -- 动态生成图片 源码

    在本实战教程中,我们将深入探讨HTTP Handler的概念,特别是如何利用HTTP Handler动态生成图片。HTTP Handler是.NET Framework中处理HTTP请求的一种方式,它允许我们自定义HTTP请求的生命周期,为特定的任务提供高度...

    java生成水印图片

    本文将详细讲解如何利用Java实现这一功能,包括如何动态设置水印的文字大小、颜色以及水印的倾斜角度。 首先,我们需要一个基础的图像处理库,如Java的`java.awt`和`java.awt.image`包,它们提供了处理图像的基本...

    网页手写签名生成图片

    网页手写签名生成图片是一种常见的交互式功能,尤其在电子商务和法律文档签署中,它允许用户在网页上通过鼠标或其他输入设备模拟手写签名,并将其转换为图像进行保存或集成到文档中。这个Java实现的技术栈主要涉及...

    java本地及网络图片重新生成

    标题“java本地及网络图片重新生成”与描述“java本地重新绘制生成到本地,及网络图片重新绘制生成Base64为字符串”所指向的知识点主要涵盖了在Java环境下,如何实现对本地图片的读取、编辑与保存,以及如何对网络...

    Java动画、图形和极富客户端效果开发源码

    通过研究这些源码,开发者不仅可以掌握Java Swing的基本用法,还能学习到如何利用Java实现专业级的动画和图形效果。这些源码实例为学习者提供了一个实战演练的平台,有助于提升开发技能,创建出引人入胜的桌面应用。

    JAVA动态生成验证码的JAVA实现的代码

    在JAVA编程语言中,我们可以实现动态生成验证码的机制,以提供安全的用户验证体验。下面将详细介绍如何在JAVA中实现验证码的生成。 首先,验证码通常由一组随机字符(包括字母、数字)组成,它们被扭曲、旋转或添加...

    java极富客户端效果开发pdf附图片和源码

    《Java 极富客户端效果开发》是一本深入探讨如何在Java平台上构建富客户端应用的专业书籍。这本书的内容主要围绕着如何利用Java技术实现图形用户界面(GUI)的高级效果,为用户提供更加丰富、交互性更强的体验。PDF...

Global site tag (gtag.js) - Google Analytics