程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java技巧:實例講解Servlet的圖象處理

Java技巧:實例講解Servlet的圖象處理

編輯:JAVA編程入門知識

  我們在處理數據時,有時希望能用圖象直觀的表述,在這裡有一個巧方法,能方便快捷的實現一些簡單的圖形(不能稱之圖象),比如條形圖,我們不必去用 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 + ' ' + ' ');
  
  System.out.println("Origional SourceOfException: " +
  
  sourceOfException + ' ' + ' ');
  
  } // CatchStatementEnd
  
  }
  
  }


 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved