网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.怎样在APPLET中发EMAIL javamail.
.JavaSocket编程(二)Java面向连.
.Java的类专题整理.
.使用.net Remtoing并行计算.
.开源技术:JUnit常用断言方法.
.Java的基本数据类型与流.
.Redhat9下的java中文问题解决.
.给JAVA设计开发新手一些建议和意.
.JAVA初学常见问题.
.给你个比较全的关于时间的操作的.
.一个简单的Timer Service.
.基于角色的内容管理权限管理模型.
.Rational Rose 2001安装手册.
.利用JavaSwing实现游戏开发.
.使用Java蓝牙无线通讯技术API(第.
.Effective java学习笔记8.
.试试看把XML转成PDF的有效工具:.
.SCJP:“菜鸟”也能玩Java.
.安全高效的使用PNG图.
.正确地封装Java类.

用JAI扩展Java的图像处理能力

发表日期:2008-1-5



  Java的图像处理能力不断地在增长,但是将一个如PNG或者JPEG格式的文件写入磁盘或从磁盘读取这样的操作仍然是一种巫术。解决方案是使用Java Advanced Imaging(JAI)API。JAI可以在Sun的Java网站下载,在JDK1.4的javax.imageio包里已经包括了它。
有针对Windows平台的exe格式的JAI安装文件可以下载, 但是没有针对UNIX和Linux的安装文件。尽管JAI可以在纯Java模式下运行,但它也为Windows、Linux、UNIX提供了本地库,使用它们可以提高运行速度。

下面的例子是安装在Apple机的OS X系统上的,因此我们选择了纯Java模式。为了安装JAI,你需要一个jai tar.gz文件。把三个重要的jar文件mlibwrapper_jar.jar、jar_codec.jar和jar_core.jar移到你的classpath环境变量指定的目录下。我们推荐把它们放到你的JDK的jre/lib/ext目录下。

实际上JAI是Java中的一个临时系统。这里只有一个名为JAI的顶层类和很少的几个辅助方法,而没有很多方法让人去学习。这些方法里的第一个参数是操作名,所以代码象这样:

src = JAI.create("fileload", .. );
JAI.create("extrema", src, ...);
JAI.create("histogram", src, ...);
这样的系统在使它与你自己的或者第三方的功能可以很轻易结合在一起的同时也使得类型间的耦合更松散,这进而使得在这之下的开发更困难。

将一个AWT图形转换成一个PNG文件需要下列的代码片断:

import java.awt.Image;
import java.awt.image.renderable.ParameterBlock;

import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;

.....

Image img = ....
OutputStream out = ....
ParameterBlock pb = new ParameterBlock().add(img);
PlanarImage src = (PlanarImage) JAI.create("awtImage", pb);
JAI.create("encode", src, out,"PNG", null);
以上的例子演示了两种给create方法传参数的方法,其中较新的方法是使用一个包含了所有参数的ParameterBlock,我们在对awtImage的操作中是这么做的。旧的方法使用的是一个重载的方法,它现在是deprecated(即被替代的旧方法,不推荐使用的)方法,但在这个例子中,我们为encode操作使用了它。

上面的代码会将一个图像按PNG格式编码并写到OutputStream中去。假如你想对JAI进行进一步的了解,我们强烈推荐你去读JAI指南。
上一篇:用JAR发布JAVA应用程序 人气:1238
下一篇:用Java编写的记事本程序 人气:1266
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐