public abstract class ImageReader extends Object
ImageReader对象通常由特定格式的服务提供商接口(SPI)类实例化。 服务提供商类(例如,ImageReaderSpi的ImageReaderSpi )已注册到IIORegistry ,它们用于格式识别和呈现可用格式的读者和作者。
当设置输入源(使用setInput方法)时,可能将其标记为“仅向前搜索”。 此设置意味着输入源中包含的图像只能按顺序读取,可能允许读取器避免缓存包含与先前读取的图像相关联的数据的输入的部分。
ImageWriter , IIORegistry , ImageReaderSpi
| Modifier and Type | Field and Description |
|---|---|
protected Locale[] |
availableLocales
可用于本地化警告消息的
Locale s阵列,如果不支持本地化,
null null。
|
protected boolean |
ignoreMetadata
true如果当前的输入源已被标记为允许元数据被
setInput忽略。
|
protected Object |
input
ImageInputStream或其他
Object由
setInput和getInput
getInput 。
|
protected Locale |
locale
目前
Locale用于定位,或
null如果没有设置。
|
protected int |
minIndex
读取的最小有效索引,最初为0。
|
protected ImageReaderSpi |
originatingProvider
该
ImageReaderSpi认为这个实例化对象,或
null如果其身份未知或不存在。
|
protected List<IIOReadProgressListener> |
progressListeners
A
List当前注册的
IIOReadProgressListener s,默认
null为
null ,这是一个空的
List 。
|
protected boolean |
seekForwardOnly
true如果当前的输入源已被标记为只允许前向寻找
setInput 。
|
protected List<IIOReadUpdateListener> |
updateListeners
A
List目前注册的
IIOReadUpdateListener s,默认
null为
null ,这是一个空的
List 。
|
protected List<IIOReadWarningListener> |
warningListeners
A
List目前注册的
IIOReadWarningListener s,默认
null为
null ,这是一个空的
List 。
|
protected List<Locale> |
warningLocales
一个
List的
Locale s与每个当前注册的
IIOReadWarningListener联,默认
null为
null ,这是一个空的
List 。
|
| Modifier | Constructor and Description |
|---|---|
protected |
ImageReader(ImageReaderSpi originatingProvider)
构造一个
ImageReader并将其
originatingProvider字段设置为提供的值。
|
| Modifier and Type | Method and Description |
|---|---|
void |
abort()
请求中止任何当前的读取操作。
|
protected boolean |
abortRequested()
返回
true是否已经做出了中止当前读取操作的请求,因为读者被实例化或
clearAbortRequest被调用。
|
void |
addIIOReadProgressListener(IIOReadProgressListener listener)
将
IIOReadProgressListener添加到已注册进度侦听器的列表中。
|
void |
addIIOReadUpdateListener(IIOReadUpdateListener listener)
将
IIOReadUpdateListener添加到已注册的更新监听器列表中。
|
void |
addIIOReadWarningListener(IIOReadWarningListener listener)
将
IIOReadWarningListener添加到已注册警告监听器的列表中。
|
boolean |
canReadRaster()
如果此插件支持只读取 Raster像素数据,则返回true 。
|
protected static void |
checkReadParamBandSettings(ImageReadParam param, int numSrcBands, int numDstBands)
读者可以使用一种实用方法来测试ImageReadParam的源和目标频带设置的
ImageReadParam 。
|
protected void |
clearAbortRequest()
清除任何先前的中止请求。
|
protected static void |
computeRegions(ImageReadParam param, int srcWidth, int srcHeight, BufferedImage image, Rectangle srcRegion, Rectangle destRegion)
计算感兴趣的源区域和感兴趣的目的地区域,考虑源图像的宽度和高度,可选的目标图像和可选的
ImageReadParam 。
|
void |
dispose()
允许释放此对象持有的任何资源。
|
float |
getAspectRatio(int imageIndex)
将给定图像的宽高比(即其宽度除以其高度)返回为
float 。
|
Locale[] |
getAvailableLocales()
返回可用于本地化警告侦听器和压缩设置的
Locale s数组。
|
ImageReadParam |
getDefaultReadParam()
返回适用于此格式的默认
ImageReadParam对象。
|
protected static BufferedImage |
getDestination(ImageReadParam param, Iterator<ImageTypeSpecifier> imageTypes, int width, int height)
返回应写入解码像素数据的
BufferedImage 。
|
String |
getFormatName()
返回一个
String标识输入源的格式。
|
abstract int |
getHeight(int imageIndex)
返回输入源中给定图像的高度(以像素为单位)。
|
abstract IIOMetadata |
getImageMetadata(int imageIndex)
返回一个
IIOMetadata与给定图像,或相关联的对象包含元数据
null如果读取器不支持读取元数据,被设置为忽略元数据,或者,如果没有元数据可用。
|
IIOMetadata |
getImageMetadata(int imageIndex, String formatName, Set<String> nodeNames)
返回一个
IIOMetadata表示与给定图像,或相关联的元数据对象
null如果读取器不支持读取元数据或没有可用的。
|
abstract Iterator<ImageTypeSpecifier> |
getImageTypes(int imageIndex)
返回一个
Iterator ,其中包含可以解码给定图像的可能图像类型,格式为
ImageTypeSpecifiers s。
|
Object |
getInput()
返回
ImageInputStream或其他
Object以前设置为输入源。
|
Locale |
getLocale()
如果没有设置,则返回当前设置的
Locale或
null 。
|
int |
getMinIndex()
返回读取图像,缩略图或图像元数据的最低有效索引。
|
abstract int |
getNumImages(boolean allowSearch)
返回当前输入源可用的图像数量,不包括缩略图。
|
int |
getNumThumbnails(int imageIndex)
返回与给定图像相关联的缩略图预览图像的数量。
|
ImageReaderSpi |
getOriginatingProvider()
返回
ImageReaderSpi这是通过在构造函数中。
|
ImageTypeSpecifier |
getRawImageType(int imageIndex)
返回一个
ImageTypeSpecifier表示
SampleModel和
ColorModel ,其最接近地表示图像的“原始”内部格式。
|
protected static Rectangle |
getSourceRegion(ImageReadParam param, int srcWidth, int srcHeight)
读者可以使用一种实用方法来计算应该读取的源图像的区域,同时考虑到所提供的
ImageReadParam中的任何源区域和子采样偏移设置。
|
abstract IIOMetadata |
getStreamMetadata()
返回一个
IIOMetadata对象,表示与整个输入源相关联的元数据(即,与任何特定图像无关),如果读取器不支持读取元数据,则
null ,被设置为忽略元数据,或者没有元数据可用。
|
IIOMetadata |
getStreamMetadata(String formatName, Set<String> nodeNames)
返回一个
IIOMetadata对象,表示与整个输入源相关联的元数据(即,不与任何特定图像相关联)。
|
int |
getThumbnailHeight(int imageIndex, int thumbnailIndex)
返回由
thumbnailIndex索引的缩略图预览图像的高度,与由
thumbnailIndex索引的图像相关
ImageIndex 。
|
int |
getThumbnailWidth(int imageIndex, int thumbnailIndex)
返回由
thumbnailIndex索引的缩略图预览图像的宽度,与ImageIndex索引的图像相关
ImageIndex 。
|
int |
getTileGridXOffset(int imageIndex)
返回给定图像中瓦片(0,0)左上角的X坐标。
|
int |
getTileGridYOffset(int imageIndex)
返回给定图像中瓦片(0,0)左上角的Y坐标。
|
int |
getTileHeight(int imageIndex)
返回给定图像中图块的高度。
|
int |
getTileWidth(int imageIndex)
返回给定图像中图块的宽度。
|
abstract int |
getWidth(int imageIndex)
返回输入源中给定图像的宽度(以像素为单位)。
|
boolean |
hasThumbnails(int imageIndex)
如果给定的图像具有与其相关联的缩略图预览图像,则返回
true 。
|
boolean |
isIgnoringMetadata()
如果当前输入源已被标记为允许通过
true作为
ignoreMetadata参数传递
setInput方法来忽略元数据,则返回
true 。
|
boolean |
isImageTiled(int imageIndex)
返回
true如果图像被组织成
瓦片 ,也就是等大小的非重叠矩形。
|
boolean |
isRandomAccessEasy(int imageIndex)
如果给定图像的存储格式不会对随机访问像素造成固有的障碍,则返回
true 。
|
boolean |
isSeekForwardOnly()
返回
true如果当前的输入源已经被标记为寻找前进,只能通过
true作为
seekForwardOnly参数为
setInput方法。
|
protected void |
processImageComplete()
通过调用他们的
imageComplete方法,将所读取的图像的完成
IIOReadProgressListener到所有注册的
IIOReadProgressListener 。
|
protected void |
processImageProgress(float percentageDone)
通过调用他们的
imageProgress方法,将目前的图像完成百分比广播到所有注册的
IIOReadProgressListener 。
|
protected void |
processImageStarted(int imageIndex)
通过调用他们的
imageStarted方法,将所读取的图像的开始广播到所有注册的
IIOReadProgressListener 。
|
protected void |
processImageUpdate(BufferedImage theImage, int minX, int minY, int width, int height, int periodX, int periodY, int[] bands)
通过调用他们的
imageUpdate方法,将一组样本的更新广播到所有注册的
IIOReadUpdateListener 。
|
protected void |
processPassComplete(BufferedImage theImage)
通过调用他们的
passComplete方法,将所有已
IIOReadUpdateListener的IIOReadUpdateListener通过循环传递结束。
|
protected void |
processPassStarted(BufferedImage theImage, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)
通过调用他们的
passStarted方法,将所有已注册的
IIOReadUpdateListener的
passStarted 。
|
protected void |
processReadAborted()
通过调用他们的
readAborted方法来广播已读取已被中止到所有注册的
IIOReadProgressListener 。
|
protected void |
processSequenceComplete()
通过调用他们的
sequenceComplete方法,将所有注册的
IIOReadProgressListener的图像读取顺序的完成
IIOReadProgressListener 。
|
protected void |
processSequenceStarted(int minIndex)
通过调用他们的
sequenceStarted方法,将所有注册的
IIOReadProgressListener的图像读取序列的开始
sequenceStarted 。
|
protected void |
processThumbnailComplete()
通过调用他们的
thumbnailComplete方法,将所有注册的
IIOReadProgressListener的缩略图读取完成。
|
protected void |
processThumbnailPassComplete(BufferedImage theThumbnail)
通过调用他们的
thumbnailPassComplete方法,将所有注册的
IIOReadUpdateListener s的缩略图遍历传递结束。
|
protected void |
processThumbnailPassStarted(BufferedImage theThumbnail, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)
通过调用他们的
thumbnailPassStarted方法,将所有注册的
IIOReadUpdateListener s的缩略图遍历通过开始
thumbnailPassStarted 。
|
protected void |
processThumbnailProgress(float percentageDone)
通过调用他们的
thumbnailProgress方法,将所有已
IIOReadProgressListener的IIOReadProgressListener的缩略图完成的当前百分比
thumbnailProgress 。
|
protected void |
processThumbnailStarted(int imageIndex, int thumbnailIndex)
通过调用他们的
thumbnailStarted方法,将所有注册的
IIOReadProgressListener s的缩略图读取开始
thumbnailStarted 。
|
protected void |
processThumbnailUpdate(BufferedImage theThumbnail, int minX, int minY, int width, int height, int periodX, int periodY, int[] bands)
通过调用他们的
thumbnailUpdate方法,将缩略图中的一组样本的更新广播到所有注册的
IIOReadUpdateListener 。
|
protected void |
processWarningOccurred(String warning)
通过调用他们的
warningOccurred方法向所有注册的IIOReadWarningListener
IIOReadWarningListener警告消息。
|
protected void |
processWarningOccurred(String baseName, String keyword)
通过使用从
ResourceBundle的字符串调用其
warningOccurred方法,向所有注册的
IIOReadWarningListener广播本地化警告消息。
|
BufferedImage |
read(int imageIndex)
读取由
imageIndex索引的图像,并将其作为完整的
BufferedImage返回,使用默认值
ImageReadParam 。
|
abstract BufferedImage |
read(int imageIndex, ImageReadParam param)
读取由
imageIndex索引的图像,并将其作为完整的
BufferedImage返回,使用附带的
ImageReadParam 。
|
IIOImage |
readAll(int imageIndex, ImageReadParam param)
读取由索引的图像
imageIndex并返回一个
IIOImage包含图像,缩略图和相关联的图像元数据,使用所提供的
ImageReadParam 。
|
Iterator<IIOImage> |
readAll(Iterator<? extends ImageReadParam> params)
返回一个
Iterator所有图像,缩略图和元数据的
getMinIndex ,从
getMinIndex给出的索引开始,从输入源以
IIOImage对象的形式。
|
RenderedImage |
readAsRenderedImage(int imageIndex, ImageReadParam param)
返回一个
RenderedImage对象,其中包含由
imageIndex索引的图像的内容。
|
boolean |
readerSupportsThumbnails()
如果此阅读器
true的图像格式支持与之相关的缩略图预览图像,则返回
true 。
|
Raster |
readRaster(int imageIndex, ImageReadParam param)
返回包含图像流中的原始像素数据的新的
Raster对象,而不应用任何颜色转换。
|
BufferedImage |
readThumbnail(int imageIndex, int thumbnailIndex)
返回索引缩略图预览图像
thumbnailIndex ,通过索引的图像关联
ImageIndex为
BufferedImage 。
|
BufferedImage |
readTile(int imageIndex, int tileX, int tileY)
读取由
tileX和
tileY参数指示的图块,将其作为
BufferedImage 。
|
Raster |
readTileRaster(int imageIndex, int tileX, int tileY)
返回一个新的
Raster对象,其中包含来自图块的原始像素数据,而不应用任何颜色转换。
|
void |
removeAllIIOReadProgressListeners()
删除所有当前注册的
IIOReadProgressListener对象。
|
void |
removeAllIIOReadUpdateListeners()
删除所有当前注册的
IIOReadUpdateListener对象。
|
void |
removeAllIIOReadWarningListeners()
删除所有当前注册的
IIOReadWarningListener对象。
|
void |
removeIIOReadProgressListener(IIOReadProgressListener listener)
删除一个
IIOReadProgressListener从注册的进度侦听器列表中。
|
void |
removeIIOReadUpdateListener(IIOReadUpdateListener listener)
删除一个
IIOReadUpdateListener从已注册的更新侦听器列表中。
|
void |
removeIIOReadWarningListener(IIOReadWarningListener listener)
删除一个
IIOReadWarningListener从已注册的错误侦听器列表中。
|
void |
reset()
将
ImageReader恢复到初始状态。
|
void |
setInput(Object input)
设置输入源用于给定的
ImageInputStream或其他
Object 。
|
void |
setInput(Object input, boolean seekForwardOnly)
将输入源设置为给定的
ImageInputStream或其他
Object 。
|
void |
setInput(Object input, boolean seekForwardOnly, boolean ignoreMetadata)
设置输入源用于给定的
ImageInputStream或其他
Object 。
|
void |
setLocale(Locale locale)
将此
Locale的当前
ImageReader设置为给定值。
|
protected ImageReaderSpi originatingProvider
ImageReaderSpi化该对象的null如果其身份不知道或不存在, null 。
默认情况下,它被初始化为null 。
protected Object input
ImageInputStream或其他Object通过setInput和由检索getInput 。
默认情况下,它被初始化为null 。
protected boolean seekForwardOnly
true如果当前的输入源已被标记为只允许前向寻找setInput 。
默认值为false 。
protected boolean ignoreMetadata
true如果当前的输入源已被标记为允许元数据被setInput忽略。
默认值为false 。
protected int minIndex
seekForwardOnly是
true ,各种方法可引发
IndexOutOfBoundsException上尝试与具有较低索引的图像来访问数据相关联。
protected Locale[] availableLocales
Locale s阵列,如果不支持本地化,
null null。
protected Locale locale
Locale用于定位,或
null如果没有设置。
protected List<IIOReadWarningListener> warningListeners
List当前注册的
IIOReadWarningListener s,默认
null为
null ,这是一个空的
List 。
protected List<Locale> warningLocales
List所述的
Locale与每个当前已注册相连的S
IIOReadWarningListener ,默认情况下初始化为
null ,其与空同义
List 。
protected List<IIOReadProgressListener> progressListeners
List当前注册的
IIOReadProgressListener s,默认
null为
null ,这是一个空的
List 。
protected List<IIOReadUpdateListener> updateListeners
List当前注册的
IIOReadUpdateListener s,默认
null为
null ,这是一个空的
List 。
protected ImageReader(ImageReaderSpi originatingProvider)
ImageReader并将其originatingProvider字段设置为提供的值。
使用扩展的子类应提供一个带有签名(ImageReaderSpi, Object) ,以检索扩展对象。 如果扩展对象不合适,则应抛出一个IllegalArgumentException 。
originatingProvider -该
ImageReaderSpi即调用此构造,或
null 。
public String getFormatName() throws IOException
String标识输入源的格式。
默认实现返回originatingProvider.getFormatNames()[0] 。 可能没有源服务提供商的实现,或者希望使用不同命名策略的实现应该覆盖此方法。
String 。
IOException - 如果从输入源读取信息发生错误。
public ImageReaderSpi getOriginatingProvider()
ImageReaderSpi这是通过在构造函数中。
请注意,此值可能为null 。
ImageReaderSpi或
null 。
ImageReaderSpi
public void setInput(Object input, boolean seekForwardOnly, boolean ignoreMetadata)
ImageInputStream或其他Object 。
必须在使用任何查询或读取方法之前设置输入源。
如果input是null ,任何当前设置的输入源将被删除。
无论如何, minIndex的值将被初始化为0。
seekForwardOnly参数控制是否读取每个图像(或缩略图或图像元数据)时由getMinIndex返回的值是否增加。 如果seekForwardOnly是真的,那么调用read(index)会抛出一个IndexOutOfBoundsException如果index < this.minIndex ; 否则,值minIndex将被设置为index 。 如果seekForwardOnly是false ,价值minIndex将保持0无论任何读操作。
ignoreMetadata参数,如果设置为true ,则允许读者忽略读取期间遇到的任何元数据。 在后续调用getStreamMetadata种getImageMetadata方法可能会返回null和IIOImage从返回readAll可能返回null从他们getMetadata方法。 设置此参数可能会使读者更有效地工作。 读者可以选择忽略此设置并正常返回元数据。
子类应该注意根据前一个流来删除任何缓存的信息,例如标题信息或部分解码的图像数据。
的一般使用Object比其他ImageInputStream旨在用于直接与捕获设备或图像协议交互的读取器。 这套法律课由读者服务提供者的getInputTypes方法发布; 大多数读者将返回一个仅ImageInputStream.class的单元素数组,表示它们只接受ImageInputStream 。
默认实现检查input对返回的list参数originatingProvider.getInputTypes() ,如果说法是不在列表中的一个类的实例失败。 如果始发提供商设置为null ,则只有在ImageInputStream接受输入。
input -
ImageInputStream或其他
Object用于将来的解码。
seekForwardOnly - 如果
true ,图像和元数据只能从此输入源的升序读取。
ignoreMetadata - 如果
true ,在读取期间元数据可能会被忽略。
IllegalArgumentException - 如果
input不是始发服务提供商的
getInputTypes方法返回的一个类的实例,或者不是
ImageInputStream 。
ImageInputStream , getInput() , ImageReaderSpi.getInputTypes()
public void setInput(Object input, boolean seekForwardOnly)
ImageInputStream或其他Object 。
必须在使用任何查询或读取方法之前设置输入源。
如果input是null ,任何当前设置的输入源将被删除。
在任何情况下, minIndex的值将被初始化为0。
seekForwardOnly参数控制是否读取每个图像(或缩略图或图像元数据)时由getMinIndex返回的值是否增加。 如果seekForwardOnly是真的,那么调用read(index)会抛出一个IndexOutOfBoundsException如果index < this.minIndex ; 否则,值minIndex将被设置为index 。 如果seekForwardOnly是false ,价值minIndex将保持0无论任何读操作。
此方法相当于setInput(input, seekForwardOnly, false) 。
input -
ImageInputStream或其他
Object用于将来的解码。
seekForwardOnly - 如果
true ,图像和元数据只能从此输入源的升序读取。
IllegalArgumentException - 如果
input不是由始发服务提供商的
getInputTypes方法返回的一个类的实例,或者不是
ImageInputStream 。
getInput()
public void setInput(Object input)
ImageInputStream或其他Object的输入源。
必须在使用任何查询或读取方法之前设置输入源。
如果input是null ,任何当前设置的输入源将被删除。
在任何情况下, minIndex的值将被初始化为0。
此方法相当于setInput(input, false, false) 。
input -
ImageInputStream或其他
Object用于将来的解码。
IllegalArgumentException - 如果
input不是始发服务提供商的
getInputTypes方法返回的一个类的实例,或者不是
ImageInputStream 。
getInput()
public Object getInput()
ImageInputStream或其他Object 。
如果输入源尚未设置,则返回null 。
Object将被用于未来解码,或
null 。
ImageInputStream , setInput(java.lang.Object, boolean, boolean)
public boolean isSeekForwardOnly()
true如果当前的输入源已经被标记为寻找向前,只能通过
true作为
seekForwardOnly参数到
setInput方法。
true如果输入源仅向前寻找。
setInput(java.lang.Object, boolean, boolean)
public boolean isIgnoringMetadata()
true作为
ignoreMetadata参数传递给
setInput方法来忽略元数据,则返回
true 。
true如果元数据可能被忽略。
setInput(java.lang.Object, boolean, boolean)
public int getMinIndex()
seekForwardOnly()是false ,则该值通常将保持为0,表示随机访问是可能的。
否则,它将包含最近访问的索引的值,并以单调方式增加。
public Locale[] getAvailableLocales()
Locale s数组。
返回值为null表示不支持本地化。
默认实现返回一个availableLocales实例变量的克隆,如果它不是null ,否则返回null 。
Locale s表示可被用作参数
setLocale ,或
null 。
public void setLocale(Locale locale)
Locale的当前ImageReader设置为给定值。
值null删除任何以前的设置,并指示阅读器应将其视为合适的本地化。
locale - 期望的
Locale或
null 。
IllegalArgumentException - 如果
locale非
null但不是由
getAvailableLocales返回的值
getAvailableLocales 。
getLocale()
public Locale getLocale()
Locale或
null 。
Locale ,或
null 。
setLocale(java.util.Locale)
public abstract int getNumImages(boolean allowSearch)
throws IOException
请注意,某些图像格式(如动画GIF)不会指定流中存在多少图像。 因此,确定图像的数量将需要扫描整个流,并且可能需要用于缓冲的存储器。 如果要按顺序处理图像,则可以通过增加索引直接致电read更有效,直到抛出IndexOutOfBoundsException以指示不再有图像可用。 allowSearch参数可以设置为false以表示不需要详尽的搜索; 返回值将为-1 ,表示需要进行搜索。 如果输入已与指定seekForwardOnly设置为true ,此方法将引发IllegalStateException如果allowSearch被设置为true 。
allowSearch - 如果true ,即使需要搜索,也会返回真实的图像数量。
如果false ,读者可以返回-1而不执行搜索。
int或
-1如果
allowSearch是
false并且需要搜索的图像数量。
IllegalStateException - 如果输入源尚未设置,或输入是否已被指定为
seekForwardOnly设置为
true 。
IOException - 如果从输入源读取信息发生错误。
setInput(java.lang.Object, boolean, boolean)
public abstract int getWidth(int imageIndex)
throws IOException
如果图像可以呈现为用户指定的大小,则此方法返回默认宽度。
imageIndex - 要查询的图像的索引。
int 。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IOException - 如果从输入源读取宽度信息发生错误。
public abstract int getHeight(int imageIndex)
throws IOException
如果图像可以呈现为用户指定的大小,则此方法返回默认高度。
imageIndex - 要查询的图像的索引。
int 。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IOException - 如果从输入源读取高度信息发生错误。
public boolean isRandomAccessEasy(int imageIndex)
throws IOException
true如果给定图像的存储格式不会对随机访问像素造成固有的障碍。
对于大多数压缩格式(如JPEG),此方法应该返回false ,除了感兴趣的区域之外,图像的大部分可能需要被解码。
这只是一个希望有效的计划的提示; 如在指定的所有读者必须能够读取任意区域ImageReadParam 。
请注意,从该方法返回false格式可能允许平铺( 例如 ,JPEG中的重新启动标记),并且随机访问在瓦片上可能会相当有效。 见isImageTiled 。
针对所有图像都保证支持容易随机存取,或保证不支持容易随机存取的读取器,可以返回true或false分别而不访问任何图像数据。 在这种情况下,即使没有设置输入源或图像索引超出范围,也不必抛出异常。
默认实现返回false 。
imageIndex - 要查询的图像的索引。
true如果读取给定图像的感兴趣区域可能是有效的。
IllegalStateException - 如果需要输入源来确定返回值,但没有设置。
IndexOutOfBoundsException - 如果必须访问图像以确定返回值,但提供的索引超出范围。
IOException - 读数时是否发生错误。
public float getAspectRatio(int imageIndex)
throws IOException
float 。
对于固有可调整尺寸的图像,该方法提供了一种确定给定期望高度的适当宽度的方法,反之亦然。
对于不可调整大小的图像,使用真实的宽度和高度。
默认实现只返回(float)getWidth(imageIndex)/getHeight(imageIndex) 。
imageIndex - 要查询的图像的索引。
float指示给定图像的纵横比。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IOException - 读取时是否发生错误。
public ImageTypeSpecifier getRawImageType(int imageIndex) throws IOException
ImageTypeSpecifier表示SampleModel和ColorModel ,最贴切地表示图像的“原始”内部格式。
例如,对于JPEG图像,原始类型可能具有YCbCr颜色空间,即使图像通常在显示之前被转换为RGB颜色空间。
返回的值也应包含在由getImageTypes返回的值列表中。
默认实现只是返回由getImageType提供的列表中的第一个条目。
imageIndex - 要查询的图像的索引。
ImageTypeSpecifier 。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IOException - 如果从输入源读取格式信息发生错误。
public abstract Iterator<ImageTypeSpecifier> getImageTypes(int imageIndex) throws IOException
Iterator ,其中包含可以解码给定图像的可能的图像类型,格式为ImageTypeSpecifiers s。
将返回至少一个合法的图像类型。
迭代器的第一个元素应该是用于以尽可能少的损失解码图像的最“自然”类型。 例如,对于JPEG图像,第一个条目应该是RGB图像,即使图像数据内部存储在YCbCr颜色空间中。
imageIndex - 图像的索引为
retrieved 。
Iterator含有至少一个
ImageTypeSpecifier表示建议的图像类型对于当前给定的图像进行解码。
IllegalStateException - 如果输入源未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IOException - 如果从输入源读取格式信息发生错误。
ImageReadParam.setDestination(BufferedImage) ,
ImageReadParam.setDestinationType(ImageTypeSpecifier)
public ImageReadParam getDefaultReadParam()
ImageReadParam对象。
所有子类应为所有参数定义一组默认值,并使用此调用返回它们。
可以在设置输入源之前调用此方法。
默认实现构造并返回不允许源缩放的新的ImageReadParam对象( 即 ,它返回new ImageReadParam() 。
ImageReadParam对象,可用于使用一组默认设置来控制解码过程。
public abstract IIOMetadata getStreamMetadata() throws IOException
IIOMetadata表示与输入源作为一个整体(即,不与任何特定图像相关联)相关联的元数据对象,或
null如果读取器不支持读取元数据,被设置为忽略元数据,或者,如果没有元数据可用。
IIOMetadata对象,或
null 。
IOException - 读取时是否发生错误。
public IIOMetadata getStreamMetadata(String formatName, Set<String> nodeNames) throws IOException
IIOMetadata表示与输入源作为一个整体(即,不与任何特定图像相关联)相关联的元数据对象。
如果没有这样的数据,返回null 。
所生成的元数据对象仅负责以formatName命名的格式formatName 。 在返回的任何文档中,只需要返回名称为nodeNames节点。 以这种方式,基于什么信息实际需要,读取器完成的元数据处理的量可以保持最小。
如果formatName不是支持的元数据格式的名称,则返回null 。
在所有情况下,返回一个比严格必要的更有能力的元数据对象是合法的。 格式名称和节点名称仅仅是可用于减少读者工作量的提示。
在检查格式名称是否支持后,默认实现只是返回调用getStreamMetadata()的结果。 如果不是,则返回null 。
formatName - 可用于从返回的
IIOMetadata对象中检索文档的元数据格式名称。
nodeNames - 一个
Set可能包含在检索文档中的节点名称的Set。
IIOMetadata对象,或
null 。
IllegalArgumentException - 如果
formatName是
null 。
IllegalArgumentException - 如果
nodeNames是
null 。
IOException - 如果在读取期间发生错误。
public abstract IIOMetadata getImageMetadata(int imageIndex) throws IOException
IIOMetadata与给定图像,或相关联的对象包含元数据
null如果读取器不支持读取元数据,被设置为忽略元数据,或者,如果没有元数据可用。
imageIndex - 要检索其元数据的图像的索引。
IIOMetadata对象,或
null 。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IOException - 读取时是否发生错误。
public IIOMetadata getImageMetadata(int imageIndex, String formatName, Set<String> nodeNames) throws IOException
IIOMetadata表示与给定图像,或相关联的元数据对象null如果读取器不支持读取元数据或没有可用的。
所生成的元数据对象仅负责以formatName命名的格式formatName 。 在返回的任何文档中,只需要返回名称为nodeNames节点。 以这种方式,基于什么信息实际需要,读取器完成的元数据处理的量可以保持最小。
如果formatName不是受支持的元数据格式的名称, null可能会返回null 。
在所有情况下,返回一个比严格必要的更有能力的元数据对象是合法的。 格式名称和节点名称仅仅是可用于减少读者工作量的提示。
在检查格式名称被支持后,默认实现方法只返回调用getImageMetadata(imageIndex)的结果。 如果不是,则返回null 。
imageIndex - 要检索其元数据的图像的索引。
formatName - 可用于从返回的
IIOMetadata对象检索文档的元数据格式名称。
nodeNames -一个
Set包含可以被包含在检索到的文档中的节点的名称。
IIOMetadata对象,或
null 。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IllegalArgumentException - 如果
formatName是
null 。
IllegalArgumentException - 如果
nodeNames是
null 。
IOException - 读取时是否发生错误。
public BufferedImage read(int imageIndex) throws IOException
imageIndex索引的图像,并将其作为完整的BufferedImage返回,使用默认值ImageReadParam 。
这是一个方便的方法,调用read(imageIndex, null) 。
返回的图像将根据从getImageTypes返回的第一个ImageTypeSpecifier进行getImageTypes 。
任何已注册的IIOReadProgressListener对象将通过调用他们的imageStarted方法通知,随后随着读取进程调用他们的imageProgress方法。 最后他们会调用imageComplete方法。 IIOReadUpdateListener对象可以在其他时间读出期间像素被解码被更新。 最后, IIOReadWarningListener对象将收到在解码期间发生的任何非致命警告的通知。
imageIndex - 要检索的图像的索引。
BufferedImage 。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IOException - 读取时是否发生错误。
public abstract BufferedImage read(int imageIndex, ImageReadParam param) throws IOException
imageIndex索引的图像,并将其作为完整的BufferedImage返回,使用附带的ImageReadParam 。
将使用getDestination方法定义的getDestination选择实际的BufferedImage 。
任何已注册的IIOReadProgressListener对象将通过调用他们的imageStarted方法通知,随后随着读取进程调用他们的imageProgress方法。 最后他们会调用imageComplete方法。 IIOReadUpdateListener对象可以在其他时间读出期间像素被解码被更新。 最后, IIOReadWarningListener对象将收到在解码期间发生的任何非致命警告的通知。
要读取的源频带组和要写入的目标频带由所提供的ImageReadParam上的getSourceBands和getDestinationBands ImageReadParam 。 如果由这些方法返回的数组的长度不同,则源频带集包含一个较大的索引,即最大可用源索引,或者目标频段集合包含大于最大合法目标索引的索引,抛出IllegalArgumentException 。
如果提供的ImageReadParam包含此读卡器不支持的可选设置值( 例如源渲染大小或任何特定于格式的设置),它们将被忽略。
imageIndex - 要检索的图像的索引。
param -一个
ImageReadParam用来控制读取过程中,或
null 。
BufferedImage 。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IllegalArgumentException - 如果由
param.getSourceBands和
param.getDestinationBands指定的源和目标频带组长
param.getDestinationBands不同或包括超出界限的索引。
IllegalArgumentException - 如果生成的图像的宽度或高度小于1。
IOException - 读取时是否发生错误。
public IIOImage readAll(int imageIndex, ImageReadParam param) throws IOException
imageIndex并返回一个IIOImage包含图像,缩略图和相关联的图像元数据,使用所提供的ImageReadParam 。
将使用getDestination方法定义的getDestination选择返回的IIOImage的实际BufferedImage 。
任何已注册的IIOReadProgressListener对象将通过调用其imageStarted方法通知,随后在读取进程时调用其imageProgress方法。 最后他们会调用他们的imageComplete方法。 IIOReadUpdateListener对象可以在其他时间读出期间像素被解码被更新。 最后, IIOReadWarningListener对象将收到在解码期间发生的任何非致命警告的通知。
要读取的源频带组和要写入的目的地频段通过调用getDestinationBands上的getSourceBands和getDestinationBands来ImageReadParam 。 如果由这些方法返回的数组的长度不同,则源频带集包含一个较大的索引,即最大的可用源索引或目标频带集合包含大于最大合法目的地索引的索引,抛出一个IllegalArgumentException 。
无论区域设置如何,缩略图将全部返回。
如果提供的ImageReadParam包含此读卡器不支持的可选设置值( 例如源渲染大小或任何特定于格式的设置),则这些值将被忽略。
imageIndex - 要检索的图像的索引。
param -一个
ImageReadParam用来控制读取过程中,或
null 。
IIOImage的期望部分,一组缩略图和相关联的图像元数据的IIOImage。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IllegalArgumentException - 如果由
param.getSourceBands和
param.getDestinationBands指定的源和目标频带组长
param.getDestinationBands不同或包括超出界限的索引。
IllegalArgumentException - 如果生成的图像的宽度或高度小于1。
IOException - 如果在阅读期间发生错误。
public Iterator<IIOImage> readAll(Iterator<? extends ImageReadParam> params) throws IOException
Iterator包含所有图像,缩略图和元数据,从getMinIndex给出的索引开始,从输入源以IIOImage对象的形式。
提供一个Iterator ImageReadParam ImageReadParam对象的Iterator ;
从输入源读取的每个图像消耗一个元素,直到没有更多的图像可用。
如果读取参数Iterator用尽了元素,但是仍然有更多的图像可以从输入源,默认读参数用于剩余的图像。
如果params是null ,则所有图像将使用默认读取参数。
将使用getDestination方法定义的getDestination选择返回的IIOImage的实际BufferedImage 。
任何已注册的IIOReadProgressListener对象将通过调用他们的sequenceStarted方法一次通知。 然后,对于每个图像解码,将有一个imageStarted的调用,随后调用imageProgress作为读取进度,最后到imageComplete 。 sequenceComplete方法将在最后一个图像解码后被调用。 IIOReadUpdateListener对象可以在其他时间读出期间像素被解码被更新。 最后, IIOReadWarningListener对象将收到解码过程中发生的任何非致命警告的通知。
要读取的源频带组和要写入的目标频段由所提供的ImageReadParam上的getSourceBands和getDestinationBands ImageReadParam 。 如果由这些方法返回的数组的长度不同,则源频带集包含较大的索引,即最大可用源索引或目标频带集包含大于最大合法目标索引的索引,抛出IllegalArgumentException 。
无论区域设置如何,缩略图将全部返回。
如果提供的任何ImageReadParam包含此读卡器不支持的可选设置值( 例如源渲染大小或任何特定于格式的设置),它们将被忽略。
params - 一个
Iterator ImageReadParam
ImageReadParam对象的
ImageReadParam 。
Iterator表示输入源的内容为
IIOImage s。
IllegalStateException - 如果输入源尚未设置。
IllegalArgumentException -如果任何非
null的元件
params不是
ImageReadParam 。
IllegalArgumentException - 如果由
param.getSourceBands和
param.getDestinationBands指定的源和目标频带组长
param.getDestinationBands不同或包括超出界限的索引。
IllegalArgumentException - 如果结果图像的宽度或高度小于1。
IOException - 读数时是否发生错误。
ImageReadParam , IIOImage
public boolean canReadRaster()
Raster像素数据,则返回true 。
如果这个方法返回false ,调用readRaster或readTileRaster将会抛出一个UnsupportedOperationException 。
默认实现返回false 。
true如果这个插件支持阅读原始
Raster s。
readRaster(int, javax.imageio.ImageReadParam) ,
readTileRaster(int, int, int)
public Raster readRaster(int imageIndex, ImageReadParam param) throws IOException
Raster对象,而不应用任何颜色转换。
应用程序必须确定如何通过其他方式解释像素数据。
所提供的ImageReadParam对象中的任何目的地或图像类型的参数都将被忽略,但所有其他参数都与read方法完全相同,不同之处在于使用任何目标偏移量作为逻辑而不是物理偏移量。
返回的Raster的大小将始终是剪辑到实际图像的源区域的大小。
流中的逻辑偏移本身将被忽略。
该方法允许通常应用颜色转换的格式(例如JPEG)和通常不具有相关联的颜色空间的格式(例如遥感或医学成像数据)来提供对原始像素数据的访问。
任何已注册的readUpdateListener都被忽略,因为没有BufferedImage ,但所有其他监听器被完全称为read方法。
如果canReadRaster()返回false ,这个方法会抛出一个UnsupportedOperationException 。
如果提供的ImageReadParam包含此读卡器不支持的可选设置值( 例如源渲染大小或任何特定于格式的设置),它们将被忽略。
默认实现会抛出一个UnsupportedOperationException 。
imageIndex - 要读取的图像的索引。
param -一个
ImageReadParam用来控制读取过程中,或
null 。
Raster 。
UnsupportedOperationException - 如果这个插件不支持读取原始的
Raster s。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IOException - 如果在阅读期间发生错误。
canReadRaster() , read(int) , Raster
public boolean isImageTiled(int imageIndex)
throws IOException
true如果图像被组织成瓦片 ,也就是等大小的非重叠矩形。
阅读器插件可以选择是否在存储图像时公开存在的平铺。 甚至可以选择在没有明确存在的情况下发布平铺。 一般来说,如果存在访问各个瓦片的某些优势(速度或空间),则仅应该对平铺进行通告。 无论读取器是否通告平铺,它必须能够读取在所指定的任意矩形区域ImageReadParam 。
针对所有图像都保证读者平铺,或保证不被平铺,可以返回true或false分别而不访问任何图像数据。 在这种情况下,即使没有设置输入源或图像索引超出范围,也不必抛出异常。
默认实现只返回false 。
imageIndex - 要查询的图像的索引。
true如果图像平铺。
IllegalStateException - 如果需要输入源来确定返回值,但没有设置。
IndexOutOfBoundsException - 如果必须访问映像以确定返回值,但提供的索引超出范围。
IOException - 读取时是否发生错误。
public int getTileWidth(int imageIndex)
throws IOException
默认实现方法简单地返回getWidth(imageIndex) ,这对于非平铺图像是正确的。 支持平铺的读者应该覆盖此方法。
imageIndex - 要查询的图像的索引。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IOException - 读取时是否发生错误。
public int getTileHeight(int imageIndex)
throws IOException
默认实现方法简单地返回getHeight(imageIndex) ,这对于非平铺图像是正确的。 支持平铺的读者应该覆盖此方法。
imageIndex - 要查询的图像的索引。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IOException - 读取时是否发生错误。
public int getTileGridXOffset(int imageIndex)
throws IOException
瓦片网格X偏移总是具有相同值(通常为0)的读取器可以返回该值而不访问任何图像数据。 在这种情况下,即使没有设置输入源或图像索引超出范围,也不必抛出异常。
默认实现只返回0,这对于大多数格式的非平铺图像和平铺图像是正确的。 支持平铺(0,0)偏移量的读者应该覆盖此方法。
imageIndex - 要查询的图像的索引。
IllegalStateException - 如果需要输入源来确定返回值,但没有设置。
IndexOutOfBoundsException - 如果必须访问映像以确定返回值,但提供的索引超出范围。
IOException - 如果在读取期间发生错误。
public int getTileGridYOffset(int imageIndex)
throws IOException
瓦片网格Y偏移总是具有相同值(通常为0)的读取器可以返回该值而不访问任何图像数据。 在这种情况下,即使没有设置输入源或图像索引超出范围,也不必抛出异常。
默认实现只返回0,这对于大多数格式的非平铺图像和平铺图像是正确的。 支持平铺(0,0)偏移量的读者应该覆盖此方法。
imageIndex - 要查询的图像的索引。
IllegalStateException - 如果需要输入源来确定返回值,但没有设置。
IndexOutOfBoundsException - 如果必须访问映像以确定返回值,但提供的索引超出范围。
IOException - 读取时是否发生错误。
public BufferedImage readTile(int imageIndex, int tileX, int tileY) throws IOException
tileX和tileY参数指示的磁贴,将其作为BufferedImage 。
如果参数超出范围,则抛出IllegalArgumentException 。
如果图像不平铺,值0,0将返回整个图像;
任何其他值将导致抛出IllegalArgumentException 。
此方法仅仅是一个方便相当于调用read(int, ImageReadParam)用read参数指定具有偏移量的源极区域tileX*getTileWidth(imageIndex) , tileY*getTileHeight(imageIndex)和宽度和高度getTileWidth(imageIndex) , getTileHeight(imageIndex) ; 并且子采样因子为1,偏移量为0.要对图块进行子采样,请使用指定此区域的读取参数调用read和不同的子采样参数。
如果tileX和tileY为0,则默认实现将返回整个映像,否则IllegalArgumentException IllegalArgumentException。
imageIndex - 要检索的图像的索引。
tileX - 要
tileX的列索引(以0开头)。
tileY - 要
tileY的行索引(以0开头)。
BufferedImage 。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果
imageIndex超出范围。
IllegalArgumentException - 如果图块索引超出界限。
IOException - 读取时是否发生错误。
public Raster readTileRaster(int imageIndex, int tileX, int tileY) throws IOException
Raster原始像素数据的Raster对象,不需要任何颜色转换。
应用程序必须确定如何通过其他方式解释像素数据。
如果canReadRaster()返回false ,这个方法会抛出一个UnsupportedOperationException 。
默认实现检查是否阅读Raster s的支持,如果有来电readRaster(imageIndex, null)如果tileX和tileY都为0,或将引发IllegalArgumentException其他。
imageIndex - 要检索的图像的索引。
tileX - 要
tileX的列索引(以0开头)。
tileY - 要
tileY的行索引(以0开头)。
Raster 。
UnsupportedOperationException - 如果这个插件不支持阅读原始的
Raster s。
IllegalArgumentException - 如果图块索引超出界限。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果
imageIndex是超出范围。
IOException - 读数时是否发生错误。
readTile(int, int, int) , readRaster(int, javax.imageio.ImageReadParam) , Raster
public RenderedImage readAsRenderedImage(int imageIndex, ImageReadParam param) throws IOException
RenderedImage对象,其中包含由imageIndex索引的图像的内容。
默认情况下,返回的图像只是由BufferedImage返回的read(imageIndex, param) 。
该方法的语义可能与其他read方法的read有所不同。 首先,任何目标图像和/或图像类型中设定ImageReadParam可被忽略。 第二,通常的听众电话不能保证制作,或者是有意义的。 这是因为返回的图像在返回时可能未完全填充像素数据,或者确实在任何时候。
如果提供的ImageReadParam包含此读卡器不支持的可选设置值( 例如源渲染大小或任何特定于格式的设置),它们将被忽略。
默认实现只是调用read(imageIndex, param) 。
imageIndex - 要检索的图像的索引。
param -一个
ImageReadParam用来控制读取过程中,或
null 。
RenderedImage对象提供图像的视图。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的索引超出范围。
IllegalArgumentException - 如果由
param.getSourceBands和
param.getDestinationBands指定的源和目标频带组长
param.getDestinationBands不同或包括超出界限的索引。
IllegalArgumentException - 如果生成的图像的宽度或高度小于1。
IOException - 读取时是否发生错误。
public boolean readerSupportsThumbnails()
true的图像格式支持与之相关的缩略图预览图像,则返回true 。
默认实现返回false 。
如果此方法返回false , hasThumbnails和getNumThumbnails将返回false和0分别和readThumbnail将抛出UnsupportedOperationException ,不管他们的论点。
不支持缩略图的读者不需要实现与缩略图相关的任何方法。
true如果支持缩略图。
public boolean hasThumbnails(int imageIndex)
throws IOException
true 。
如果格式不支持缩略图( readerSupportsThumbnails返回false ), false将被返回,无论输入源是设置还是在边界imageIndex 。
如果getNumThumbnails返回大于0的值,则默认实现将返回true 。
imageIndex - 要查询的图像的索引。
true如果给定的图像有缩略图。
IllegalStateException - 如果读卡器支持缩略图,但输入源尚未设置。
IndexOutOfBoundsException - 如果读者支持缩略图,但
imageIndex是超出范围。
IOException - 读取时是否发生错误。
public int getNumThumbnails(int imageIndex)
throws IOException
readerSupportsThumbnails返回false ), 0将被返回,无论输入源是设置还是在边界imageIndex 。
默认实现返回0,而不检查其参数。
imageIndex - 要查询的图像的索引。
IllegalStateException - 如果阅读器支持缩略图,但输入源尚未设置。
IndexOutOfBoundsException - 如果阅读器支持缩略图,但
imageIndex是超出范围。
IOException - 如果在阅读期间发生错误。
public int getThumbnailWidth(int imageIndex,
int thumbnailIndex)
throws IOException
thumbnailIndex索引的缩略图预览图像的宽度,与由thumbnailIndex索引的图像相关ImageIndex 。
如果读者不支持缩略图,( readerSupportsThumbnails返回false ),将抛出一个UnsupportedOperationException 。
默认实现只是返回readThumbnail(imageindex, thumbnailIndex).getWidth() 。 因此,如果可能,子类应该覆盖此方法,以避免强制缩略图被读取。
imageIndex - 要检索的图像的索引。
thumbnailIndex - 要检索的缩略图的索引。
int 。
UnsupportedOperationException - 如果不支持缩略图。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果任何一个提供的索引超出范围。
IOException - 读取时是否发生错误。
public int getThumbnailHeight(int imageIndex,
int thumbnailIndex)
throws IOException
thumbnailIndex索引的缩略图预览图像的高度,与由thumbnailIndex索引的图像相关ImageIndex 。
如果读者不支持缩略图,( readerSupportsThumbnails返回false ),则会抛出一个UnsupportedOperationException 。
默认实现简单地返回readThumbnail(imageindex, thumbnailIndex).getHeight() 。 因此,如果可能,子类应该覆盖此方法,以避免强制缩略图被读取。
imageIndex - 要检索的图像的索引。
thumbnailIndex - 要检索的缩略图的索引。
int 。
UnsupportedOperationException - 如果不支持缩略图。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果提供的任何一个索引超出范围。
IOException - 读数时是否发生错误。
public BufferedImage readThumbnail(int imageIndex, int thumbnailIndex) throws IOException
thumbnailIndex ,通过索引的图像关联ImageIndex为BufferedImage 。
任何注册IIOReadProgressListener对象将通过调用它们的通知thumbnailStarted , thumbnailProgress和thumbnailComplete方法。
如果读者不支持缩略图( readerSupportsThumbnails返回false ),一个UnsupportedOperationException将忽略输入源是否已经设置抛出或索引是否在范围。
默认实现会抛出一个UnsupportedOperationException 。
imageIndex - 要检索的图像的索引。
thumbnailIndex - 要检索的缩略图的索引。
BufferedImage 。
UnsupportedOperationException - 如果不支持缩略图。
IllegalStateException - 如果输入源尚未设置。
IndexOutOfBoundsException - 如果任何一个提供的索引超出范围。
IOException - 读数时是否发生错误。
public void abort()
读者应在每次读取操作开始时调用clearAbortRequest ,并在读取期间abortRequested轮询abortRequested的值。
protected boolean abortRequested()
clearAbortRequest被调用,如果已经进行了中止当前读取操作的请求,则返回
true 。
true如果当前的读取操作应该中止。
abort() ,
clearAbortRequest()
protected void clearAbortRequest()
abortRequested将返回false 。
abort() ,
abortRequested()
public void addIIOReadWarningListener(IIOReadWarningListener listener)
IIOReadWarningListener到已注册的警告侦听器的列表。
如果listener是null ,则不会抛出异常,也不会采取任何操作。
发送给给定侦听器的消息将被本地化,如果可能,匹配当前的Locale 。
如果没有设置Locale ,则警告消息可能会按照读者认为合适的方式进行本地化。
listener -一个
IIOReadWarningListener注册。
removeIIOReadWarningListener(javax.imageio.event.IIOReadWarningListener)
public void removeIIOReadWarningListener(IIOReadWarningListener listener)
IIOReadWarningListener从已注册的错误侦听器列表中。
如果听众以前没有注册,或者如果listener是null ,则不会抛出异常,也不会采取任何操作。
listener - 要注销的IIOReadWarningListener。
addIIOReadWarningListener(javax.imageio.event.IIOReadWarningListener)
public void removeAllIIOReadWarningListeners()
IIOReadWarningListener对象。
默认实现将warningListeners和warningLocales实例变量设置为null 。
public void addIIOReadProgressListener(IIOReadProgressListener listener)
IIOReadProgressListener到已注册的进度侦听器列表中。
如果listener是null ,将不会抛出异常,也不会采取任何行动。
listener - 要注册的IIOReadProgressListener。
removeIIOReadProgressListener(javax.imageio.event.IIOReadProgressListener)
public void removeIIOReadProgressListener(IIOReadProgressListener listener)
IIOReadProgressListener从注册的进度侦听器列表中。
如果监听者以前没有注册,或者如果listener是null ,则不会抛出异常,不会执行任何操作。
listener - 要注销的IIOReadProgressListener。
addIIOReadProgressListener(javax.imageio.event.IIOReadProgressListener)
public void removeAllIIOReadProgressListeners()
IIOReadProgressListener对象。
默认实现将progressListeners实例变量设置为null 。
public void addIIOReadUpdateListener(IIOReadUpdateListener listener)
IIOReadUpdateListener到注册的更新侦听器列表中。
如果listener是null ,将不会抛出异常,也不会采取任何行动。
听众将接收像素更新的通知,因为图像和缩略图被解码,包括渐进通过的开始和结束。
如果没有更新听众存在,读者可以选择对目的地图像和/或缩略图的像素执行更少的更新,这可以导致更有效的解码。
例如,在逐行JPEG解码中,每个遍历包含对一组系数的更新,如果存在听众,则必须将其转换成像素值并且将其转换为每个遍的RGB颜色空间。 如果没有听众存在,则可以简单地累积系数,并且最终结果被转换并仅一次进行颜色转换。
无论中间更新是否被执行,解码的最终结果将是相同的。 因此,如果只需要最终的图像,则最好不要注册任何IIOReadUpdateListener 。 通常,通过与本地CPU处理相比非常慢的网络连接获取图像时,逐行更新最有效; 通过快速连接,逐行更新可能实际上会减慢图像的呈现。
listener - 要注册的IIOReadUpdateListener。
removeIIOReadUpdateListener(javax.imageio.event.IIOReadUpdateListener)
public void removeIIOReadUpdateListener(IIOReadUpdateListener listener)
IIOReadUpdateListener从已注册的更新侦听器列表中。
如果监听者以前没有注册,或者如果listener是null ,则不会抛出异常,也不会采取任何操作。
listener - 要注销的IIOReadUpdateListener。
addIIOReadUpdateListener(javax.imageio.event.IIOReadUpdateListener)
public void removeAllIIOReadUpdateListeners()
IIOReadUpdateListener对象。
默认实现将updateListeners实例变量设置为null 。
protected void processSequenceStarted(int minIndex)
sequenceStarted方法,将所有注册的IIOReadProgressListener的图像读取序列的开始sequenceStarted 。
子类可以方便地使用这种方法。
minIndex - 正在读取的最低索引。
protected void processSequenceComplete()
sequenceComplete方法,将所有注册的IIOReadProgressListener的一系列图像读取广播IIOReadProgressListener 。
子类可以方便地使用这种方法。
protected void processImageStarted(int imageIndex)
imageStarted方法将所读取的图像的开始广播到所有注册的IIOReadProgressListener 。
子类可以方便地使用这种方法。
imageIndex - 要读取的图像的索引。
protected void processImageProgress(float percentageDone)
imageProgress方法,将所有已IIOReadProgressListener的IIOReadProgressListener的图像完成的当前百分比imageProgress 。
子类可以方便地使用这种方法。
percentageDone - 目前的完成百分比,为
float 。
protected void processImageComplete()
imageComplete方法,将所读取的图像的完成IIOReadProgressListener到所有注册的IIOReadProgressListener 。
子类可以方便地使用这种方法。
protected void processThumbnailStarted(int imageIndex,
int thumbnailIndex)
thumbnailStarted方法,将所有注册的IIOReadProgressListener的缩略图的开始thumbnailStarted 。
子类可以方便地使用这种方法。
imageIndex - 与
imageIndex的图像的索引。
thumbnailIndex -
thumbnailIndex的索引。
protected void processThumbnailProgress(float percentageDone)
thumbnailProgress方法,将所有已IIOReadProgressListener的IIOReadProgressListener的缩略图完成的当前百分比thumbnailProgress 。
子类可以方便地使用这种方法。
percentageDone - 目前的完成百分比,作为
float 。
protected void processThumbnailComplete()
thumbnailComplete方法,将所有注册的IIOReadProgressListener的缩略图读取完成。
子类可以方便地使用这种方法。
protected void processReadAborted()
readAborted方法来广播已读取已被中止到所有注册的IIOReadProgressListener 。
子类可以方便地使用这种方法。
protected void processPassStarted(BufferedImage theImage, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)
passStarted方法,将所有已注册的IIOReadUpdateListener s的渐进通过开始。
子类可以方便地使用这种方法。
theImage -
BufferedImage正在更新。
pass - 当前通过的索引,从0开始。
minPass - 将被解码的第一遍的索引。
maxPass - 将被解码的最后一次通过的索引。
minX - 通过中包含的左上角像素的X坐标。
minY - 通过中包含的左上角像素的X坐标。
periodX - 像素之间的水平间隔。
periodY - 像素之间的垂直分隔。
bands -
int s的数组,
int目的地的一组受影响的频带。
protected void processImageUpdate(BufferedImage theImage, int minX, int minY, int width, int height, int periodX, int periodY, int[] bands)
imageUpdate方法将一组样本的更新广播到所有注册的IIOReadUpdateListener 。
子类可以方便地使用这种方法。
theImage -
BufferedImage正在更新。
minX - 通过中包含的左上角像素的X坐标。
minY - 通过中包含的左上角像素的X坐标。
width - 正在更新的区域的总宽度,包括如果
periodX > 1被跳过的像素。
height - 要更新的区域的总高度,包括如果
periodY > 1被跳过的像素。
periodX - 像素之间的水平间隔。
periodY - 像素之间的垂直分隔。
bands -
bands的阵列,
int目的地的受影响的频带集合。
protected void processPassComplete(BufferedImage theImage)
passComplete方法,将所有已IIOReadUpdateListener的IIOReadUpdateListener通过循环传递结束。
子类可以方便地使用这种方法。
theImage -
BufferedImage正在更新。
protected void processThumbnailPassStarted(BufferedImage theThumbnail, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)
thumbnailPassStarted方法,将所有注册的IIOReadUpdateListener s的缩略图渐变通行符IIOReadUpdateListener thumbnailPassStarted 。
子类可以方便地使用这种方法。
theThumbnail - 正在更新的
BufferedImage缩略图。
pass - 当前通行证的索引,以0开头。
minPass - 将被解码的第一遍的索引。
maxPass - 将被解码的最后一次通过的索引。
minX - 通过中包含的左上角像素的X坐标。
minY - 通过中包含的左上角像素的X坐标。
periodX - 像素之间的水平分隔。
periodY - 像素之间的垂直分隔。
bands - 一个
bands的数组,
int目的地的一组受影响的频带。
protected void processThumbnailUpdate(BufferedImage theThumbnail, int minX, int minY, int width, int height, int periodX, int periodY, int[] bands)
thumbnailUpdate方法,将缩略图中的一组样本的更新广播到所有注册的IIOReadUpdateListener 。
子类可以方便地使用这种方法。
theThumbnail - 正在更新的
BufferedImage缩略图。
minX - 通过中包含的左上角像素的X坐标。
minY - 通过中包含的左上角像素的X坐标。
width - 正在更新的区域的总宽度,包括如果
periodX > 1被跳过的像素。
height - 正在更新的区域的总高度,包括如果
periodY > 1被跳过的像素。
periodX - 像素之间的水平分隔。
periodY - 像素之间的垂直分隔。
bands -
int s的数组,
int目的地的一组受影响的频带。
protected void processThumbnailPassComplete(BufferedImage theThumbnail)
thumbnailPassComplete方法,将所有已注册的IIOReadUpdateListener s的缩略图遍历传递结束。
子类可以方便地使用这种方法。
theThumbnail - 正在更新的
BufferedImage缩略图。
protected void processWarningOccurred(String warning)
warningOccurred方法向所有注册的IIOReadWarningListener发送一条警告消息。
子类可以方便地使用这种方法。
warning - 要发送的警告消息。
IllegalArgumentException - 如果
warning是
null 。
protected void processWarningOccurred(String baseName, String keyword)
IIOReadWarningListener通过调用它们的S warningOccurred法从拍摄字符串ResourceBundle 。
子类可以方便地使用这种方法。
baseName - 包含本地化警告消息的一组
ResourceBundle s的基本名称。
keyword - 用于索引
ResourceBundle的集合内的警告消息的关键字。
IllegalArgumentException - 如果
baseName是
null 。
IllegalArgumentException - 如果
keyword是
null 。
IllegalArgumentException - 如果不
ResourceBundle可能会找到
ResourceBundle 。
IllegalArgumentException - 如果在定位的
ResourceBundle找不到命名的资源。
IllegalArgumentException - 如果从
ResourceBundle的对象不是
String 。
public void reset()
ImageReader恢复到初始状态。
默认实现调用setInput(null, false) , setLocale(null) , removeAllIIOReadUpdateListeners() , removeAllIIOReadWarningListeners() , removeAllIIOReadProgressListeners()和clearAbortRequest 。
public void dispose()
finalize )的结果是未定义的。
当应用程序知道他们将不再使用此方法时,调用此方法很ImageReader 。 否则,读者可以继续无限期地持有资源。
超类中的这个方法的默认实现什么都不做。 子类实现应确保释放所有资源,特别是本地资源。
protected static Rectangle getSourceRegion(ImageReadParam param, int srcWidth, int srcHeight)
ImageReadParam中的任何源区域和子采样偏移设置。
不考虑实际的子采样因子,目的地大小和目的地偏移,因此必须进行进一步的剪切。
computeRegions方法执行所有必要的剪辑。
param - 正在使用的
ImageReadParam ,或
null 。
srcWidth - 源图像的宽度。
srcHeight - 源图像的高度。
Rectangle 。
protected static void computeRegions(ImageReadParam param, int srcWidth, int srcHeight, BufferedImage image, Rectangle srcRegion, Rectangle destRegion)
ImageReadParam 。
源区域以整个源图像开始。
然后该被夹到在指定的源区ImageReadParam ,如果指定了一个。
如果任一目标偏移量为负值,则源区域被剪切,以使其左上角与目标图像的左上角重合,并考虑子采样。 然后将结果剪切到右侧和底部的目标图像,如果指定了目标图像,则将子采样和目标偏移量纳入考虑。
类似地,目的地区域与源图像开始,被转换为目的地的给定偏移量ImageReadParam如果有一个,最后被夹到目标图像,如果存在一个。
如果源或目的地区域的宽度或高度为0,则抛出IllegalArgumentException 。
如果仅需要源限幅,则可以使用getSourceRegion>方法。
param - 一个
ImageReadParam或
null 。
srcWidth - 源图像的宽度。
srcHeight - 源图像的高度。
image - 一个
BufferedImage将成为目标图像,或
null 。
srcRegion - 一个
Rectangle ,将填充感兴趣的来源地区。
destRegion - 一个
Rectangle ,将填充目的地感兴趣的区域。
IllegalArgumentException - 如果
srcRegion是
null 。
IllegalArgumentException - 如果
dstRegion是
null 。
IllegalArgumentException - 如果生成的源或目的地区域为空。
protected static void checkReadParamBandSettings(ImageReadParam param, int numSrcBands, int numDstBands)
ImageReadParam 。
一旦读取器知道源图像在输入流中存在的频带的数量以及正被写入的目的图像的频带数量,则可以调用该方法。
该方法检索的源和目标频带设定从使用PARAM阵列getSourceBands种getDestinationBands方法(或认为它们是null如果param是null )。 如果源频带设置数组为null ,则认为等于阵列{ 0, 1, ..., numSrcBands - 1 } ,类似地用于目标频带设置数组。
然后,该方法测试两个数组的长度相等,并且两个数组都不包含大于最大可用带索引的值。
任何失败都导致抛出IllegalArgumentException ; 成功导致该方法静默地返回。
param - 用于阅读图像的
ImageReadParam 。
numSrcBands - 输入源中存在的图像的频带数。
numDstBands - 要写入的目标图像中的频带数。
IllegalArgumentException - 如果
param包含源和/或目标带子集的无效规范。
protected static BufferedImage getDestination(ImageReadParam param, Iterator<ImageTypeSpecifier> imageTypes, int width, int height) throws IIOException
BufferedImage 。
图像通过检查提供的ImageReadParam如果不是null ;
如果其getDestination方法返回非null值,那么该图像将被简单地返回。
否则, param.getDestinationType方法来确定是否指定了特定的图像类型。
如果是这样,则返回ImageTypeSpecifier正在检查它等于那些包含在之后使用imageTypes 。
如果param为null或上述步骤未产生图像或ImageTypeSpecifier ,则使用从imageTypes参数获得的第一个值。 通常情况下,主叫方将设置imageTypes到的值getImageTypes(imageIndex) 。
接下来,通过调用computeRegions确定图像的computeRegions 。 正在解码的图像的实际宽度和高度以width和height参数传入。
param -一个
ImageReadParam被用于获取目标图像或图像类型,或
null 。
imageTypes -
Iterator的
ImageTypeSpecifier s,表示合法的图像类型,默认为第一个。
width - 图像或瓦片的真实宽度开始解码。
height - 正在解码的图像或瓦片的真实宽度。
BufferedImage 。
IIOException -如果
ImageTypeSpecifier由指定的
param不从匹配任何法律措施的
imageTypes 。
IllegalArgumentException -如果
imageTypes是
null或空的,或如果不是的类型的对象
ImageTypeSpecifier从它取回。
IllegalArgumentException - 如果生成的图像的宽度或高度小于1。
IllegalArgumentException - 如果
width和
height的产品大于
Integer.MAX_VALUE 。
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.