public final class ImageIO extends Object
ImageReader s和
ImageWriter s,并执行简单的编码和解码。
| Modifier and Type | Method and Description |
|---|---|
static ImageInputStream |
createImageInputStream(Object input)
返回一个
ImageInputStream ,将从给定的
Object获取其输入。
|
static ImageOutputStream |
createImageOutputStream(Object output)
返回一个
ImageOutputStream ,将其输出发送给给定的
Object 。
|
static File |
getCacheDirectory()
返回当前值设置由
setCacheDirectory ,或
null ,如果没有明确的设定已经取得进展。
|
static ImageReader |
getImageReader(ImageWriter writer)
返回一个
ImageReader对应于给定的
ImageWriter ,如果有一个,或
null如果这个插件为
ImageWriter没有指定相应的
ImageReader ,或者如果给定的
ImageWriter没有注册。
|
static Iterator<ImageReader> |
getImageReaders(Object input)
返回一个
Iterator包含所有当前注册的
ImageReader s,声称能够解码提供的
Object ,通常为
ImageInputStream 。
|
static Iterator<ImageReader> |
getImageReadersByFormatName(String formatName)
返回一个
Iterator包含所有当前注册的
ImageReader ,声称能够解码命名格式。
|
static Iterator<ImageReader> |
getImageReadersByMIMEType(String MIMEType)
返回一个
Iterator包含所有当前已注册的
ImageReader ,声称能够解码具有给定MIME类型的文件。
|
static Iterator<ImageReader> |
getImageReadersBySuffix(String fileSuffix)
返回一个
Iterator包含所有当前注册的
ImageReader ,声称能够使用给定的后缀来解码文件。
|
static Iterator<ImageTranscoder> |
getImageTranscoders(ImageReader reader, ImageWriter writer)
返回一个
Iterator包含所有当前注册的
ImageTranscoder s,声称能够在给定的
ImageReader和
ImageWriter的元数据之间进行
ImageReader
ImageWriter 。
|
static ImageWriter |
getImageWriter(ImageReader reader)
返回一个
ImageWriter对应于给定的
ImageReader ,如果有一个,或
null如果这个
ImageReader的插件没有指定相应的
ImageWriter ,或者如果给定的
ImageReader没有注册。
|
static Iterator<ImageWriter> |
getImageWriters(ImageTypeSpecifier type, String formatName)
返回一个
Iterator包含所有当前注册的
ImageWriter s,声称能够以给定格式对给定布局(使用
ImageTypeSpecifier )的图像进行编码。
|
static Iterator<ImageWriter> |
getImageWritersByFormatName(String formatName)
返回一个
Iterator包含所有当前注册的
ImageWriter ,声称能够对命名格式进行编码。
|
static Iterator<ImageWriter> |
getImageWritersByMIMEType(String MIMEType)
返回一个
Iterator包含所有当前注册的
ImageWriter s,声称能够使用给定的MIME类型对文件进行编码。
|
static Iterator<ImageWriter> |
getImageWritersBySuffix(String fileSuffix)
返回一个
Iterator所有当前注册的ImageWriter的
ImageWriter ,声称能够使用给定的后缀对文件进行编码。
|
static String[] |
getReaderFileSuffixes()
返回一个
String的数组,列出与当前注册读者集合所理解的格式相关联的所有文件后缀。
|
static String[] |
getReaderFormatNames()
返回一个
String的数组,
String列出了当前注册读者集所理解的所有非正式格式名称。
|
static String[] |
getReaderMIMETypes()
返回一个
String的数组,
String列出了当前注册读者集所理解的所有MIME类型。
|
static boolean |
getUseCache()
返回当前值设置由
setUseCache ,或
true ,如果没有明确的设定已经取得进展。
|
static String[] |
getWriterFileSuffixes()
返回一个
String的数组,
String列出了与当前注册作者集合所理解的格式相关联的所有文件后缀。
|
static String[] |
getWriterFormatNames()
返回一个
String的数组,
String列出了当前注册作者集所理解的所有非正式格式名称。
|
static String[] |
getWriterMIMETypes()
返回一个
String的数组,
String列出了当前注册作者集所理解的所有MIME类型。
|
static BufferedImage |
read(File input)
返回
BufferedImage作为供给的解码结果
File与
ImageReader选自目前登记的那些自动选择。
|
static BufferedImage |
read(ImageInputStream stream)
返回
BufferedImage作为供给的解码结果
ImageInputStream与
ImageReader选自目前登记的那些自动选择。
|
static BufferedImage |
read(InputStream input)
返回
BufferedImage作为供给的解码结果
InputStream与
ImageReader选自目前登记的那些自动选择。
|
static BufferedImage |
read(URL input)
返回
BufferedImage作为供给的解码结果
URL与
ImageReader选自目前登记的那些自动选择。
|
static void |
scanForPlugins()
扫描应用程序类路径上的插件,加载其服务提供者类,并为每个发现的
IIORegistry注册一个服务提供者实例。
|
static void |
setCacheDirectory(File cacheDirectory)
设置要创建缓存文件的目录。
|
static void |
setUseCache(boolean useCache)
设置一个标志,指示在创建
ImageInputStream s和
ImageOutputStream时是否应使用基于磁盘的缓存文件。
|
static boolean |
write(RenderedImage im, String formatName, File output)
使用支持给定格式的任意
ImageWriter写入图像到
File 。
|
static boolean |
write(RenderedImage im, String formatName, ImageOutputStream output)
使用支持给定格式的任意
ImageWriter写入图像到
ImageOutputStream 。
|
static boolean |
write(RenderedImage im, String formatName, OutputStream output)
使用支持给定格式的任意
ImageWriter写入图像到
OutputStream 。
|
public static void scanForPlugins()
IIORegistry注册一个服务提供程序实例。
需要这种方法,因为应用程序类路径在理论上可以改变,或者额外的插件可能变得可用。 API的每次调用不会重新扫描类路径,而是仅在第一次调用时自动扫描类路径。 客户端可以调用此方法来提示重新扫描。 因此,该方法只需要由复杂的应用程序调用,这些应用程序可以在运行时动态创建新的插件。
所述getResources上下文的方法ClassLoader被用于定位包含文件的JAR文件名为META-INF/services/javax.imageio.spi. 类名 , 类名 ,其中是一个ImageReaderSpi , ImageWriterSpi , ImageTranscoderSpi , ImageInputStreamSpi ,或ImageOutputStreamSpi ,沿着应用程序类路径。
找到的文件的内容指示实现上述服务提供商接口的实际实现类的名称; 然后使用默认的类加载器来加载这些类中的每一个,并实例化每个类的实例,然后将其放入注册表中以备以后检索。
搜索的位置的确切位置取决于Java运行时环境的实现。
public static void setUseCache(boolean useCache)
ImageInputStream和ImageOutputStream时是否应使用基于磁盘的缓存文件。
当从标准InputStream读取时,可能需要将先前读取的信息保存在缓存中,因为底层流不允许重新读取数据。 类似地,当写入标准OutputStream时,可以使用高速缓存来允许改变先前写入的值,然后将其刷新到最终目的地。
高速缓存可能驻留在主内存或磁盘上。 将此标志设置为false不允许将磁盘用于未来的流,这在使用小图像时可能是有利的,因为删除了创建和销毁文件的开销。
启动时,值设置为true 。
useCache - 一个
boolean指示是否应使用缓存文件,如果是可选的。
getUseCache()
public static boolean getUseCache()
setUseCache ,或
true ,如果没有明确的设定已经取得进展。
ImageInputStream s和
ImageOutputStream s,
ImageOutputStream 。
setUseCache(boolean)
public static void setCacheDirectory(File cacheDirectory)
null表示要使用系统相关的默认临时文件目录。
如果getUseCache返回false,则忽略此值。
cacheDirectory - 一个
File目录的File。
SecurityException - 如果安全管理员拒绝对目录的访问。
IllegalArgumentException - 如果
cacheDir是非
null但不是一个目录。
File.createTempFile(String, String, File) ,
getCacheDirectory()
public static File getCacheDirectory()
setCacheDirectory ,或
null ,如果没有明确的设定已经取得进展。
File指示将创建高速缓存文件的目录,或
null以指示系统相关的默认临时文件目录。
setCacheDirectory(java.io.File)
public static ImageInputStream createImageInputStream(Object input) throws IOException
ImageInputStream ,它将从给定的Object输入。
对IIORegistry类ImageInputStreamSpi一组ImageInputStreamSpi s进行了查询,第一个能够从提供的对象输入的数据用于创建返回的ImageInputStream 。
如果没有合适的ImageInputStreamSpi ,返回null 。
getUseCache和getCacheDirectory的当前缓存设置将用于控制缓存。
input -一个
Object被用作输入源,如
File ,可读
RandomAccessFile ,或
InputStream 。
ImageInputStream或
null 。
IllegalArgumentException - 如果
input是
null 。
IOException - 如果需要缓存文件但无法创建。
ImageInputStreamSpi
public static ImageOutputStream createImageOutputStream(Object output) throws IOException
ImageOutputStream ,将其输出发送给给定的Object 。
该组ImageOutputStreamSpi与注册的小号IIORegistry类查询和对应的第一个是能够从所提供的对象发送输出被用来创建返回的ImageOutputStream 。
如果没有合适的ImageOutputStreamSpi ,返回null 。
getUseCache和getCacheDirectory的当前缓存设置将用于控制缓存。
output -一个
Object被用作输出目的地,如
File ,可写
RandomAccessFile ,或
OutputStream 。
ImageOutputStream或
null 。
IllegalArgumentException - 如果
output是
null 。
IOException - 如果需要缓存文件但不能创建。
ImageOutputStreamSpi
public static String[] getReaderFormatNames()
String的数组,
String列出了当前注册读者集所理解的所有非正式格式名称。
String的阵列。
public static String[] getReaderMIMETypes()
String的数组,列出了当前注册读者集所理解的所有MIME类型。
String的数组。
public static String[] getReaderFileSuffixes()
String的数组,列出与当前注册读者集合所理解的格式相关联的所有文件后缀。
String的阵列。
public static Iterator<ImageReader> getImageReaders(Object input)
Iterator包含所有当前注册的ImageReader s,声称能够解码提供的Object ,通常为ImageInputStream 。
在从该方法退出时,流位置保留在其先前位置。
input - 包含编码图像数据的
ImageInputStream或其他
Object 。
Iterator包含
ImageReader s。
IllegalArgumentException - 如果
input是
null 。
ImageReaderSpi.canDecodeInput(java.lang.Object)
public static Iterator<ImageReader> getImageReadersByFormatName(String formatName)
Iterator包含所有当前注册的
ImageReader s,声称能够解码命名格式。
formatName - 一个
String格式的非正式名称(
例如 “jpeg”或“tiff”)的
String 。
Iterator包含
ImageReader的。
IllegalArgumentException - 如果
formatName是
null 。
ImageReaderWriterSpi.getFormatNames()
public static Iterator<ImageReader> getImageReadersBySuffix(String fileSuffix)
Iterator所有当前注册的ImageReader的
ImageReader ,声称能够使用给定的后缀解码文件。
fileSuffix - 包含文件后缀(
例如 “jpg”或“tiff”)的
String 。
Iterator包含
ImageReader s。
IllegalArgumentException - 如果
fileSuffix是
null 。
ImageReaderWriterSpi.getFileSuffixes()
public static Iterator<ImageReader> getImageReadersByMIMEType(String MIMEType)
Iterator包含所有当前注册的
ImageReader s,声称能够解码具有给定MIME类型的文件。
MIMEType - 包含文件后缀(
例如 “image / jpeg”或“image / x-bmp”)的
String 。
Iterator包含
ImageReader s。
IllegalArgumentException - 如果
MIMEType是
null 。
ImageReaderWriterSpi.getMIMETypes()
public static String[] getWriterFormatNames()
String的数组,
String列出了当前注册作者集所理解的所有非正式格式名称。
String的数组。
public static String[] getWriterMIMETypes()
String的数组,
String列出了当前注册作者集所理解的所有MIME类型。
String的数组。
public static String[] getWriterFileSuffixes()
String的数组,
String列出了与当前注册的作者集合所理解的格式相关联的所有文件后缀。
String的数组。
public static Iterator<ImageWriter> getImageWritersByFormatName(String formatName)
Iterator包含所有当前已注册的
ImageWriter ,声称能够对命名格式进行编码。
formatName - 一个
String格式的非正式名称(
例如 “jpeg”或“tiff”)的
String 。
Iterator包含
ImageWriter s。
IllegalArgumentException - 如果
formatName是
null 。
ImageReaderWriterSpi.getFormatNames()
public static Iterator<ImageWriter> getImageWritersBySuffix(String fileSuffix)
Iterator所有当前注册的ImageWriter的
ImageWriter ,声称能够使用给定的后缀对文件进行编码。
fileSuffix - 包含文件后缀(
例如 “jpg”或“tiff”)的
String 。
Iterator包含
ImageWriter s。
IllegalArgumentException - 如果
fileSuffix是
null 。
ImageReaderWriterSpi.getFileSuffixes()
public static Iterator<ImageWriter> getImageWritersByMIMEType(String MIMEType)
Iterator包含所有当前已注册的
ImageWriter ,声称能够使用给定的MIME类型对文件进行编码。
MIMEType - 包含文件后缀的
String (
例如 ,“image / jpeg”或“image / x-bmp”)。
Iterator包含
ImageWriter s。
IllegalArgumentException - 如果
MIMEType是
null 。
ImageReaderWriterSpi.getMIMETypes()
public static ImageWriter getImageWriter(ImageReader reader)
ImageWriter对应于给定的ImageReader ,如果有一个,或null如果这个ImageReader的插件没有指定相应的ImageWriter ,或者如果给定的ImageReader没有注册。
该机制可用于获得ImageWriter ,该ImageWriter将了解由ImageReader生成的非像素元数据(由IIOMetadata对象编码)的内部ImageReader 。
通过从获得该数据ImageReader并将其传递到ImageWriter用这种方法获得的,客户端程序可以读取图像,修改它以某种方式,再写回同时保留所有的元数据,而无需了解有关任何结构的元数据,甚至关于图像格式。
请注意,此方法返回“首选”作者,它是由javax.imageio.spi.ImageReaderSpi.getImageWriterSpiNames()返回的列表中的第一个。
reader - 注册的一个实例
ImageReader 。
ImageWriter ,或null。
IllegalArgumentException - 如果
reader是
null 。
getImageReader(ImageWriter) ,
ImageReaderSpi.getImageWriterSpiNames()
public static ImageReader getImageReader(ImageWriter writer)
ImageReader对应于给定的ImageWriter ,如果有一个,或null如果这个ImageWriter的插件没有指定相应的ImageReader ,或者如果给定的ImageWriter没有注册。
该方法主要用于与getImageWriter(ImageReader)对称。
请注意,此方法返回“首选”阅读器,它是javax.imageio.spi.ImageWriterSpi返回的列表中的第一个。
getImageReaderSpiNames() 。
writer - 注册的一个实例
ImageWriter 。
ImageReader ,或null。
IllegalArgumentException - 如果
writer是
null 。
getImageWriter(ImageReader) ,
ImageWriterSpi.getImageReaderSpiNames()
public static Iterator<ImageWriter> getImageWriters(ImageTypeSpecifier type, String formatName)
Iterator包含所有当前已注册的
ImageWriter ,声称能够以给定格式对给定布局(使用
ImageTypeSpecifier )的图像进行编码。
type -
ImageTypeSpecifier要写入的图像的布局的ImageTypeSpecifier。
formatName - 非正式名称的
format 。
Iterator包含
ImageWriter s。
IllegalArgumentException - 如果任何参数是
null 。
ImageWriterSpi.canEncodeImage(ImageTypeSpecifier)
public static Iterator<ImageTranscoder> getImageTranscoders(ImageReader reader, ImageWriter writer)
Iterator包含所有当前注册的
ImageTranscoder s,声称能够在给定的
ImageReader和
ImageWriter的元数据之间进行
ImageReader
ImageWriter 。
reader -
ImageReader 。
writer - 一个
ImageWriter 。
Iterator包含
ImageTranscoder s。
IllegalArgumentException - 如果
reader或
writer是
null 。
public static BufferedImage read(File input) throws IOException
BufferedImage作为供给的解码结果File与ImageReader选自目前登记的那些自动选择。
File被包裹在一个ImageInputStream 。
如果没有注册的ImageReader声称能够读取结果流,则返回null 。
getUseCache和getCacheDirectory的当前缓存设置将用于在创建的ImageInputStream中控制缓存。
请注意,没有read方法将文件名称为String ; 在从文件名创建File后,使用此方法。
此方法不试图定位ImageReader s表示可直接从读File ; 这可以使用IIORegistry和ImageReaderSpi 。
input - a
File要阅读。
BufferedImage包含输入的解码内容,或
null 。
IllegalArgumentException - 如果
input是
null 。
IOException - 读取时是否发生错误。
public static BufferedImage read(InputStream input) throws IOException
BufferedImage作为供给的解码结果InputStream与ImageReader选自目前登记的那些自动选择。
InputStream包裹在一个ImageInputStream 。
如果没有注册的ImageReader声称能够读取结果流,则返回null 。
getUseCache和getCacheDirectory的当前缓存设置将用于在创建的ImageInputStream中控制缓存。
此方法不试图定位ImageReader s表示可以直接从读取InputStream ; 这可以使用IIORegistry和ImageReaderSpi 。
读取操作InputStream后,此方法不关闭提供的InputStream; 如果需要,呼叫者有责任关闭流。
input - 一个
InputStream读取。
BufferedImage包含输入的解码内容,或
null 。
IllegalArgumentException - 如果
input是
null 。
IOException - 读取时是否发生错误。
public static BufferedImage read(URL input) throws IOException
BufferedImage作为供给的解码结果URL与ImageReader选自目前登记的那些自动选择。
一个InputStream从得到的URL ,其被包裹在一个ImageInputStream 。
如果没有注册的ImageReader声称能够读取结果流,则返回null 。
getUseCache和getCacheDirectory的当前缓存设置将用于在创建的ImageInputStream中控制缓存。
此方法不试图定位ImageReader s表示可直接从读URL ; 这可以使用IIORegistry和ImageReaderSpi 。
input - a
URL读取。
BufferedImage包含输入的解码内容,或
null 。
IllegalArgumentException - 如果
input是
null 。
IOException - 读取时是否发生错误。
public static BufferedImage read(ImageInputStream stream) throws IOException
BufferedImage作为供给的解码结果ImageInputStream与ImageReader选自目前登记的那些自动选择。
如果没有注册ImageReader声称能够读取流,则返回null 。
与此类中的大多数其他的方法,这种方法并关闭提供ImageInputStream读操作完成后,除非null返回,在这种情况下,该方法不会关闭该流。
stream - 一个
ImageInputStream要阅读。
BufferedImage包含输入的解码内容,或
null 。
IllegalArgumentException - 如果
stream是
null 。
IOException - 读取时是否发生错误。
public static boolean write(RenderedImage im, String formatName, ImageOutputStream output) throws IOException
ImageWriter写入图像到ImageOutputStream 。
图像将从当前流指针开始写入ImageOutputStream ,如果存在,则从该点向前覆盖现有流数据。
此方法不会关闭提供ImageOutputStream写操作后已完成; 如果需要,呼叫者有责任关闭流。
im - a
RenderedImage待写。
formatName - 一个
String格式的非正式名称的String。
output -
ImageOutputStream 。
false如果没有找到合适的作家。
IllegalArgumentException - 如果任何参数是
null 。
IOException - 写入时是否发生错误。
public static boolean write(RenderedImage im, String formatName, File output) throws IOException
ImageWriter写入图像到File 。
如果已经存在File ,其内容将被丢弃。
im - a
RenderedImage待写。
formatName - 一个
String格式的非正式名称的String。
output -
File 。
false如果没有找到合适的作家。
IllegalArgumentException - 如果任何参数是
null 。
IOException - 写入时是否发生错误。
public static boolean write(RenderedImage im, String formatName, OutputStream output) throws IOException
ImageWriter写入图像到OutputStream 。
此方法不会关闭提供OutputStream写操作后已完成; 如果需要,呼叫者有责任关闭流。
getUseCache和getCacheDirectory的当前缓存设置将用于控制缓存。
im - a
RenderedImage待写。
formatName - 一个
String格式的非正式名称的String。
output -
OutputStream 。
false如果没有找到合适的作者。
IllegalArgumentException - 如果任何参数是
null 。
IOException - 写入时是否发生错误。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.