Java中进行图像I/O(即读图片和写图片,不涉及到复杂图像处理)有三个方法:
1. Java Image I/O API,支持常见图片,从Java 2 version 1.4.0开始就内置了。
主页:http://java.sun.com/javase/6/docs/technotes/guides/imageio/index.html
2. JAI 中的 Image I/O Tools,支持更多图片类型,例如JPEG-LS, JPEG2000, 和 TIFF。
主页:https://jai-imageio.dev.java.net/。JAI 是一个关于图像处理的框架,很庞大,
其中仅仅jai-imageio是关于图像I/O的,其他的可以不看。
3. JAI的com.sun.media.jai.codec 也有一定的图像解码能力
当然,还有众多的java开源工具包可以读写图像,例如JIMI, JMagic等,但JDK目前本身能
够读写图片,就用JDK的,开发和部署方便,不需要额外下载jar包。
由于JAI是Java新加入的,很多组件不是正式规范,JDK不自带,因此开发和部署需要额外
安装,安装文件在官网https://jai.dev.java.net/下载得到。
如果你仅仅想读取常见格式的图片,不需要用JAI这么高级这么庞大的东西,
用Java Image I/O API即可。
下面重点介绍 Java Image I/O API。
Java Image I/O API 主要在 javax.imageio 下面。JDK已经内置了常见图片格式的插件,
但它提供了插件体系结构,第三方也可以开发插件支持其他图片格式。
下面这段代码可以展示,JDK内置支持的图片格式。
import javax.imageio.*;
import java.util.Arrays;
public class HelloWorld {
public static void main(String args[]) {
String readFormats[] = ImageIO.getReaderFormatNames();
String writeFormats[] = ImageIO.getWriterFormatNames();
System.out.println(“Readers: ” + Arrays.asList(readFormats));
System.out.println(“Writers: ” + Arrays.asList(writeFormats))