板橋里人 http://www.jdon.com
IBM已經有一篇文章介紹動態圖文結合輸出的文章, 由于此篇文章中使用了SUN的JPEG特殊類:com.sun.image.codec.jpeg.*;我個人認為通用性不好,利用jdk1.4的新特點,也完全可以作到:
現將本人實踐的動態圖文結合javabeans的核心公布如下:
?1
import?java.io.*;
?2
import?java.util.*;
?3
import?java.awt.image.BufferedImage;
?4
import?java.awt.Image;
?5
import?java.awt.image.AffineTransformOp;
?6
import?javax.imageio.ImageIO;
?7
import?java.awt.geom.AffineTransform;
?8
import?java.awt.Graphics2D;
?9
import?java.awt.Color;
10
import?java.awt.Font;
11
12



..
13
14
//生成BufferedImage實例,這是不需要真正顯示時經常使用的類
15
BufferedImage?Bi?=?ImageIO.read(F);
16
17
18
//?利用Graphics2D的新特性.
19
Graphics2D?g2D?=?Bi.createGraphics();?
20
21
22
//定義字體(楷體或宋體等)?及其大小
23
Font?myfont=new?Font("\u5b8b\u4f53",Font.PLAIN,20);
24
g2D.setFont(myfont);
25
//字體顏色為黑
26
g2D.setColor(Color.BLACK);
27
28
29
//需要寫在圖片上文字?注意:中文需要操作系統支持中文?如中文window,
30
//?linux下要安裝中文字庫,并使jdk1.4支持這個中文
31
String?strs="hello?everyone?中?文";
32
33
34
//在離頂部?和左邊各為20處?寫入文字,該處使用了對中文處理的getBytes功能.
35
g2D.drawString(new?String(strs.getBytes("ISO8859_1")),20,20);
36
37
//必須使用,表示完成?
38
g2D.dispose();?
39
40
try?
{
41
//使用ImageIO寫入圖片?
42
ImageIO.write(Bi,?ext,?ThF);
43
44
//原來是使用com.sun.image.codec.jpeg.*的功能,如下.需要下載com.sun.image.codec.jpeg
45
//?FileOutputStream?out?=?new?FileOutputStream(ThF);
46
//?JPEGImageEncoder?encoder?=?JPEGCodec.createJPEGEncoder(out);
47
//?encoder.encode(Bi);
48
//?out.close();
49
50
}catch?(Exception?ex)?
{
51
throw?new?Exception("?ImageIo.write?error?in?CreatThum.:?"+ex.getMessage());?
52
}
53
只要jsp將相關參數通知這個bean,就會輕松產生自己的圖文,下圖我自己在linux上調試的結果,由于linux沒有安裝字庫,所以下圖中文不正常顯示,不過該程序我在中文win2000下調試正常通過:
原圖:

效果圖

?
關于使用Servlet/Jsp輸出圖片或圖像,見網址:
http://www.mullassery.com/
相關文章:
軟件最大的追求是什么?
初學者如何開發出一個高質量的J2EE系統?
數據庫時代的終結
狀態對象:數據庫的替代者
Java/J2EE中文問題終極解決之道
posted on 2006-05-29 16:26
kelven 閱讀(254)
評論(0) 編輯 收藏 所屬分類:
java