java advanced image_关于Java Advanced Imaging(JAI)的一点积累 | 学步园
JAI的确是个不错的东东,图形渲染上提供了比较好的类封装以及跨平台性。不知道为何JAI就在2006年止步在1.1.3的版本下了,莫非Sun(Oracle)真的去做Java 2D的丰富去了。暂时还没有看到Java 2D方面的资料,先把JAI的内容贴出来。
引了一段《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();
int height = image2.getHeight();
ScrollingImagePanel panel = new ScrollingImagePanel(image2,width,height);
Frame window = new Frame("JAI Sample Program");
window.add(panel);
window.pack();
window.show();
}
}
确实面向对象的封装比较好。
贴出来分享一下。
java advanced image_关于Java Advanced Imaging(JAI)的一点积累 | 学步园相关推荐
- 关于Java Advanced Imaging(JAI)的一点积累
JAI的确是个不错的东东,图形渲染上提供了比较好的类封装以及跨平台性.不知道为何JAI就在2006年止步在1.1.3的版本下了,莫非Sun(Oracle)真的去做Java 2D的丰富去了.暂时还没有看 ...
- java调c++代码_Java中调用C++代码的实现 | 学步园
JNI为 Java Native Interface 即Java本地接口,使用此种方式可以对C/C++代码进行调用,其在本质上是对C/C++生成的动态库进行调用而不是直接对C/C++代码进行调用 J ...
- java线程interrupt用法_Java线程中interrupt那点事 | 学步园
1.先看一下例子程序: import java.io.IOException; import java.net.ServerSocket; import javax.rmi.CORBA.Tie; /* ...
- java配置jndi连接数_JavaWeb:Tomcat下配置数据源(JNDI)连接数据库 | 学步园
---------------------------------------------------------------------------------------------------- ...
- java httpget 设置参数_java 模拟HTTP doPost请求 设置参数 | 学步园
请求模拟 package org.zlex.commons.net; import java.io.DataInputStream; import java.io.DataOutputStream; ...
- Java里氏转换_里氏代换原则、依赖倒转原则 | 学步园
里氏代换原则 面向对象设计的重要原则是创建抽象化,并且从抽象化导出具体化,具体化也就是给出不同的实现. 继承关系就是一种从抽象化到具体化的导出. 里氏代换原则:如果对每一个类型为T1的对象o1,都有类 ...
- java实现魔方_闲来无事,用java写了一个魔方小程序。附源码 | 学步园
闲来无事,用java写了一个魔方小程序.附源码 使用三维数组.相对来说还是简单.呵呵. import java.util.ArrayList; import java.util.List; impor ...
- java 校验文件类型_java如何判断一个文件的类型 | 学步园
用文件头判断.直接读取文件的前几个字节. 常用文件的文件头如下: JPEG (jpg),文件头:FFD8FF PNG (png),文件头:89504E47 GIF (gif),文件头:47494638 ...
- java applet 文本框_Java Applet 文本框 TextField 小例 | 学步园
一个Java Applet程序中必须有一个类是Applet类的子类,成为该子类是Java Applet的主类, 并且必须 是public class. Applet类是包java.applet中的一个 ...
最新文章
- linux --- 进程调度
- 【校招面试 之 C/C++】第15题 C 回调函数
- linux最初配置( vimrc设置 、tab键设置 inputrc、中文输入法等等)
- linux sed命令的常用方法
- 界址点号_界址点及四至优化
- 中断下半部机制-softirq-Tasklet-工作队列
- 他为华裔写了几封信......
- Spring Boot2.0之 原理—创建内置Tomcat容器
- (C++)wchar_t 转 string / TCHAR转为char/判断是否进程运行/获得目标进程的入口
- 基于Udp的Socket网络编程聊天程序
- 软件工程之需求说明书
- 蓝色配色灵感 | 解读蓝色
- iphone型号表_iPhone12各版本有什么区别 苹果12四款机型配置表一览
- android怎么监听多点触摸_android 手势监听和多点触摸 笔记
- 南阳oj入门题-阶乘因式分解(一)
- 1.27(Bomb Game)
- vue-amap的使用
- CodeForces 1389G Directing Edges 边联通分量缩点+树形dp+rerooting technique
- python模拟seo_百度统计原理分析-利用Python实现模拟访问
- Unity-音频播放
热门文章
- 通过物联网网关如何进行三菱PLC的远程程序上下载?
- 架构可细分为业务架构、应用架构、技术架构
- 四、GCJ02坐标系
- .关机助手,很好用的Windows桌面关机小工具(免费版)
- python爬取百度地图数据_Python利用百度地图爬取商家信息
- Android5.1.+ getRunningAppProcesses()获取运行中进程(第三方开源库)
- 无盘服务器虚拟盘内存不足,网吧技术 无盘虚拟内存正确设置分析
- 使用fontawesome字体
- Linux网络服务(中)FTP服务配置
- 惠普台式计算机配置,hp台式机bios设置方法