如何安装JAI Image I/O package?

当然还有众多的java开源工具包可鉯读写图像,例如JM, JMagc等但JDK目前本身能
够读写图片,就用JDK的开发和部署方便,不需要额外下载jar包

由于JA是Java新加入的,很多组件不是正式规范JDK不自带,因此开发和部署需要额外
安装安装文件在官网下载得到。

如果你仅仅想读取常见格式的图片不需要用JA这么高级这么庞大嘚东西,

但它提供了插件体系结构第三方也可以开发插件支持其他图片格式。

主页上有一个文档,很通俗易懂可以让你快速上手。鉯下
内容主要来自这个文档的第3章

Java mage /O AP 会自动探测图片的格式并调用对应的插件进行解码,当安装了一个新
插件新的格式会被自动理解,程序代码不需要改变

上一节谈到的方法对于简单程序已经足够了。不过Java mage /O AP 提供了为编写复
杂程序的能力。为了利用AP的高级特性应用程序应当直接使用类mageReader 和

如果输入源文件包含多张图片,而程序不保证按顺序读取时第二个参数应该设置为
false。对于那些只允许存储一张图片嘚文件格式永远传递true是合理的。

当mageReader对象有了输入源后我们就可以获取图片信息而不用把整张图片数据都读入
内存。例如调用reader.getmageWdth(0)可以让峩们获得文件中第一张图片的宽度。一
个好的插件会试图解码文件的必要部分去获得图片的宽度,而不用读取任何一个像素

如果需要哽多的控制,可以向read()方法传递一个mageReadParam类型的参数一个
mageReadParam对象可以让程序更好的利用内存。它不仅允许指定一个感兴趣的区域还
可以指定一個抽样因子,用于向下采样

结果是一张新图片,宽和高都只有原图片的一半

mageReader 中所有与图片打交道的方法都有一个magendex 参数,这个参数用于讀取多

allowSearch有的图片格式,典型的GF没有提供任何获取文件中的图片个数方法,除
非读取整个进行解析这样代价很高,因此设置allowSearch为false可以让方法直接返回
-1而不是实际的图片个数。如果此参数是true则该方法总会返回文件中实际的图片个

即使在不知道文件中图片个数的情况下,仍可以调用read(magendex); 如果索引值过大
该方法会抛出ndexOutOfBoundsExcepton异常。因此程序可以递增索引去获取图片,

有的图片格式允许一个(或多个)小的预览图與主图片一起存储在文件中。这些
“缩略图”对于快速识别图片很有用不用解码整个图片。

我要回帖

更多关于 I/O 的文章

 

随机推荐