Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15908185
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:50:09

下载本文示例代码
  我们在处理数据时,有时希望能用图象直观的表述,在这里有一个巧方法,能方便快捷的实现一些简单的图形(不能称之图象),比如条形图,我们不必去用 java来生成并显示图象,(java生成图象很慢),我们可以这样来作,先用作图工具作一个很小的你需要的图片,再根据你所处理的数据量来实时的加长它,就可以得到所要表述的图例。比如我们在数据库中得到了一组数据,我们从中找出最大的那一个,按比列设定其标签的长度,其它的数据图形则可与它相比,得到的长度,这样,一个简简单单的条形图就出来。但有时一些简单的图形已经不能解决我们实际遇到的情况,比如曲线图就不能用这种方法,这时我们需要生成java图象,也许大家都用过applet这样的程序吧,若访问量不大,而实时性又很特殊时(比如股票系统),必须这样用它。但事实上,我们web程序大多有前后台之分,前台浏览,后台维护。这样我们可以在后台用servlet实时动态定时地生成图象文件,而前台只是查看静态图片,这比你用applet来动态产生图象的速度快了不知多少倍,因为applet来动态产生图象,有两个地方很费时,一是数据库查询时间,二是applet本身生成图象就很慢。下面我以一个简单的例子来说明一下怎样生成并写入图象文件,本例注重的是怎样写入图象文件,相信写过applet的朋友会生成更加漂亮的图象。 以下是引用片段:package test; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import java.awt.image.BufferedImage; import com.sun.image.codec.jpeg.*; import java.awt.image.*; import java.awt.*; public class Servlet2 extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String sFileName = "e:/temp/name.jpg"; try{ FileOutputStream fos = new FileOutputStream(sFileName); BufferedImage myImage = new BufferedImage(225, 225,BufferedImage.TYPE_INT_RGB); Graphics g = myImage.getGraphics(); g.setColor(Color.white); g.fillRect(0,0,225,225); g.setColor(Color.black); g.drawString("Finance Balance Summary", 40, 15); g.drawString("Primary", 90, 30); g.setColor(Color.darkGray); &g.fillRect(15,193,7,7); g.setColor(Color.black); g.drawString("% Operating", 25, 200); g.setColor(Color.yellow); g.fillRect(130,193,7,7); g.setColor(Color.black); g.drawString("% Term", 140, 200); g.setColor(Color.lightGray); g.fillRect(15,213,7,7); g.setColor(Color.black); g.drawString("% Mortgage", 25, 220); g.setColor(Color.green); g.fillRect(130,213,7,7); g.setColor(Color.black); g.drawString("% Lease", 140, 220); JPEGImageEncoder jpg = JPEGCodec.createJPEGEncoder(fos); jpg.encode(myImage); }catch (Exception e){ String exceptionThrown = e.toString(); String sourceOfException = " Method"; System.out.println("Origional Exception Thrown: " exceptionThrown '\r' '\n'); System.out.println("Origional SourceOfException: " sourceOfException '\r' '\n'); } // CatchStatementEnd } } 阅读关于 Java 技巧 实例 Servlet 图象处理 的全部文章   我们在处理数据时,有时希望能用图象直观的表述,在这里有一个巧方法,能方便快捷的实现一些简单的图形(不能称之图象),比如条形图,我们不必去用 java来生成并显示图象,(java生成图象很慢),我们可以这样来作,先用作图工具作一个很小的你需要的图片,再根据你所处理的数据量来实时的加长它,就可以得到所要表述的图例。比如我们在数据库中得到了一组数据,我们从中找出最大的那一个,按比列设定其标签的长度,其它的数据图形则可与它相比,得到的长度,这样,一个简简单单的条形图就出来。但有时一些简单的图形已经不能解决我们实际遇到的情况,比如曲线图就不能用这种方法,这时我们需要生成java图象,也许大家都用过applet这样的程序吧,若访问量不大,而实时性又很特殊时(比如股票系统),必须这样用它。但事实上,我们web程序大多有前后台之分,前台浏览,后台维护。这样我们可以在后台用servlet实时动态定时地生成图象文件,而前台只是查看静态图片,这比你用applet来动态产生图象的速度快了不知多少倍,因为applet来动态产生图象,有两个地方很费时,一是数据库查询时间,二是applet本身生成图象就很慢。下面我以一个简单的例子来说明一下怎样生成并写入图象文件,本例注重的是怎样写入图象文件,相信写过applet的朋友会生成更加漂亮的图象。 以下是引用片段:package test; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import java.awt.image.BufferedImage; import com.sun.image.codec.jpeg.*; import java.awt.image.*; import java.awt.*; public class Servlet2 extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String sFileName = "e:/temp/name.jpg"; try{ FileOutputStream fos = new FileOutputStream(sFileName); BufferedImage myImage = new BufferedImage(225, 225,BufferedImage.TYPE_INT_RGB); Graphics g = myImage.getGraphics(); g.setColor(Color.white); g.fillRect(0,0,225,225); g.setColor(Color.black); g.drawString("Finance Balance Summary", 40, 15); g.drawString("Primary", 90, 30); g.setColor(Color.darkGray); &g.fillRect(15,193,7,7); g.setColor(Color.black); g.drawString("% Operating", 25, 200); g.setColor(Color.yellow); g.fillRect(130,193,7,7); g.setColor(Color.black); g.drawString("% Term", 140, 200); g.setColor(Color.lightGray); g.fillRect(15,213,7,7); g.setColor(Color.black); g.drawString("% Mortgage", 25, 220); g.setColor(Color.green); g.fillRect(130,213,7,7); g.setColor(Color.black); g.drawString("% Lease", 140, 220); JPEGImageEncoder jpg = JPEGCodec.createJPEGEncoder(fos); jpg.encode(myImage); }catch (Exception e){ String exceptionThrown = e.toString(); String sourceOfException = " Method"; System.out.println("Origional Exception Thrown: " exceptionThrown '\r' '\n'); System.out.println("Origional SourceOfException: " sourceOfException '\r' '\n'); } // CatchStatementEnd } } 阅读关于 Java 技巧 实例 Servlet 图象处理 的全部文章 下载本文示例代码


Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理Java技巧:实例讲解Servlet的图象处理
阅读(696) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~