Java技巧:執行個體講解Servlet的圖象處理

來源:互聯網
上載者:User
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

}

}



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.