Java技巧:实例讲解Servlet的图象处理
我们在处理数据的时候,有时候希望用图像来直观的表达。这里有一个巧妙的方法,可以方便快捷的实现一些简单的图形(不能称之为图像),比如条形图。我们不必使用java来生成和显示图像(java生成图像非常慢)。我们能做到的。先把它作为一个图形工具,做成你需要的小图像,然后根据你正在处理的数据量实时拉长,这样就可以得到你想要的表达。比如我们在数据库中得到一组数据,根据比较列设置我们找出的那一个的标签的长度,其他数据图可以和它比较得到长度,这样就出来一个简单的条形图。但是有时候一些简单的图形并不能解决我们遇到的实际情况,比如图形就不能这么用。这时,我们需要生成java映像。可能大家都用过小程序这样的程序。如果访问次数很少,实时性能很特殊(比如股票系统),就必须这样使用。但实际上我们大部分的web程序都是分为前台和后台,前台浏览和后台维护的。这样我们就可以在后台使用servlet实时动态定时生成图片文件,而前台只看静态图片,比使用applet动态生成图片快很多倍。因为小程序动态生成图片需要时间,一是数据库查询时间,二是小程序自身生成图片速度慢。这里有一个简单的例子来说明如何生成和编写一个图像文件。这个例子集中在如何写一个图像文件。相信写过applet的朋友会生成更美的图像。
以下为报价片段:
包测试;
导入javax . servlet . *;
导入javax . servlet . http . *;
导入Java . io . *;
导入Java . util . *;
导入Java . awt . image . buffered image;
导入com . sun . image . codec . JPEG . *;
导入Java . awt . image . *;
导入Java . awt . *;
公共类Servlet2扩展HttpServlet {
公共void init(ServletConfig config)引发ServletException {
super.init(配置);
}
public void doGet(http servlet request请求,HttpServletResponse响应)
抛出ServletException,IOException {
string sFileName = " e:/temp/name . jpg ";
尝试{
文件输出流fos =新
file output stream(sFileName);
BufferedImage my image = new buffered image(225,225,buffered image。TYPE _ INT _ RGB);
graphics g = my image . get graphics();
g . set color(color . white);
g.fillRect(0,0,225,225);
g . set color(color . black);
g.drawString(“财务余额汇总”,40,15);
g .拉带(“主”,90,30);
g . set color(color . dark gray);
&g.fillRect(15,193,7,7);
g . set color(color . black);
g .拉带(" %操作",25,200);
g . set color(color . yellow);
g.fillRect(130,193,7,7);
g . set color(color . black);
g .拉带(" % Term ",140,200);
g . set color(color . light gray);
g.fillRect(15,213,7,7);
g . set color(color . black);
g.drawString("% Mortgage ",25,220);
g . set color(color . green);
g.fillRect(130,213,7,7);
g . set color(color . black);
g .拉绳(" % Lease ",140,220);
JPEGImageEncoder jpg =
JPEG codec . createjpegencoder(fos);
jpg . encode(myImage);
}catch(异常e){
string exception trown = e . tostring();
string source of exception = " Method ";
System.out.println("引发原始异常:"+
exception rown+' \ r '+' \ n ');
System.out.println("原始异常源:"+
sourceOfException+' \ r '+' \ n ');
} // CatchStatementEnd
}
}
位律师回复
0条评论