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

?2

?3

?4

?5

?6

?7

?8

?9

10

11

12





13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40



41

42

43

44

45

46

47

48

49

50



51

52

53

只要jsp將相關參數通知這個bean,就會輕松產生自己的圖文,下圖我自己在linux上調試的結果,由于linux沒有安裝字庫,所以下圖中文不正常顯示,不過該程序我在中文win2000下調試正常通過:
原圖:
效果圖
?
關于使用Servlet/Jsp輸出圖片或圖像,見網址:
相關文章: