关于Java Advanced Imaging(JAI)的一点积累
JAI的确是个不错的东东,图形渲染上提供了比较好的类封装以及跨平台性。不知道为何JAI就在2006年止步在1.1.3的版本下了,莫非Sun(Oracle)真的去做Java 2D的丰富去了。暂时还没有看到Java 2D方面的资料,先把JAI的内容贴出来。
下载JAI可以去这里 http://download.java.net/media/jai/builds/release/1_1_3/
想要了解它的安装,可以去这里查看各操作系统的安装方法 http://download.java.net/media/jai/builds/release/1_1_3/INSTALL.html
引了一段《Programming in Java Advanced Imaging》pdf中的一段代码。这篇pdf可以从这里下到 http://dlc.sun.com/pdf/806-5413-10/806-5413-10.pdf
import java.awt.Frame;
import java.awt.image.renderable.ParameterBlock;
import java.io.IOException;
import javax.media.jai.Interpolation;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
import javax.media.jai.widget.ScrollingImagePanel;
import com.sun.media.jai.codec.FileSeekableStream;
public class JAISampleProgram {
/**
* @param args
*/
public static void main(String[] args) {
if(args.length!=1){
System.out.println("Usage: java JAISampleProgram input image_filename");
System.exit(-1);
}
FileSeekableStream stream = null;
try {
stream = new FileSeekableStream(args[0]);
} catch (IOException e) {
e.printStackTrace();
System.exit(0);
}
RenderedOp image1=JAI.create("stream", stream);
Interpolation interp = Interpolation.getInstance(Interpolation.INTERP_BILINEAR);
ParameterBlock params = new ParameterBlock();
params.addSource(image1);
params.add(2.0F);
params.add(2.0F);
params.add(0.0F);
params.add(0.0F);
params.add(interp);
RenderedOp image2 = JAI.create("scale", params);
int width = image2.getWidth()
相关文档:
在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、 Burlap、Hessian、SOAP、EJB和JMS 等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果 ......
【转】Java中的位运算符
原作者:Rosen Jiang 出处:http://www.blogjava.net/rosen
移位运算符
包括:
“>> 右移”;“<< 左移”;“>>> 无符号右移”
例子:
-5>>3=-1
1111 1111 1111 1111 1111 1111 1111 ......
在Java5中提供了变长参数,也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如:print("hello");print("hello","lisi");print("hello","张三");下面介绍如何定义可变长参数以及如何使用可变长参数。
1、可变长参数方法的定义
使用...表示可变长参数,例如
print(String... args ......