posts - 22,comments - 35,trackbacks - 0
板桥里人 http://www.jdon.com

IBM已经有一篇文章介绍动态图文结合输出的文章, 由于此篇文章中使用了SUN的JPEG特殊类:com.sun.image.codec.jpeg.*;我个人认为通用性不好,利用jdk1.4的新特点,也完全可以作到:

现将本人实践的动态图文结合javabeans的核心公布如下:

 1import java.io.*;
 2import java.util.*;
 3import java.awt.image.BufferedImage;
 4import java.awt.Image;
 5import java.awt.image.AffineTransformOp;
 6import javax.imageio.ImageIO;
 7import java.awt.geom.AffineTransform;
 8import java.awt.Graphics2D;
 9import java.awt.Color;
10import java.awt.Font;
11
12..
13
14//生成BufferedImage实例,这是不需要真正显示时经常使用的类
15BufferedImage Bi = ImageIO.read(F);
16
17
18// 利用Graphics2D的新特性.
19Graphics2D g2D = Bi.createGraphics(); 
20
21
22//定义字体(楷体或宋体等) 及其大小
23Font myfont=new Font("\u5b8b\u4f53",Font.PLAIN,20);
24g2D.setFont(myfont);
25//字体颜色为黑
26g2D.setColor(Color.BLACK);
27
28
29//需要写在图片上文字 注意:中文需要操作系统支持中文 如中文window,
30// linux下要安装中文字库,并使jdk1.4支持这个中文
31String strs="hello everyone 中 文";
32
33
34//在离顶部 和左边各为20处 写入文字,该处使用了对中文处理的getBytes功能.
35g2D.drawString(new String(strs.getBytes("ISO8859_1")),20,20);
36
37//必须使用,表示完成 
38g2D.dispose(); 
39
40try {
41//使用ImageIO写入图片 
42ImageIO.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) {
51throw 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 阅读(250) 评论(0)  编辑  收藏 所属分类: java

只有注册用户登录后才能发表评论。


网站导航: