首页 > 开发 > Java > 正文

Java技巧:实例讲解Servlet的图象处理

2024-07-13 09:55: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

}

}

,欢迎访问网页设计爱好者web开发。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表