- java.lang.Object
-
- javax.imageio.ImageReader
-
public abstract class ImageReader extends Object
用于解析和解码图像的抽象超类。 此类必须由读取Java Image I / O框架上下文中的图像的类进行子类化。ImageReader对象通常由特定格式的服务提供者接口(SPI)类实例化。 服务提供者类(例如,ImageReaderSpi实例)在ImageReaderSpi中注册,其用于格式识别和可用格式读取器和IIORegistry器的呈现。设置输入源时(使用
setInput方法),可以将其标记为“仅向前搜索”。 此设置意味着输入源中包含的图像将仅按顺序读取,可能允许读取器避免缓存包含与先前已读取的图像相关联的数据的输入部分。- 另请参见:
-
ImageWriter,IIORegistry,ImageReaderSpi
-
-
字段汇总
字段 变量和类型 字段 描述 protected Locale[]availableLocales的阵列Locale其可以被用于定位的警告消息,或Snull如果不支持定位。protected booleanignoreMetadatatrue如果当前输入源已标记为允许setInput忽略元数据。protected Objectinput的ImageInputStream或其他Object通过setInput,并通过检索getInput。protected Localelocale目前Locale用于定位,或null如果没有设置。protected intminIndex读取的最小有效索引,最初为0。protected ImageReaderSpioriginatingProvider该ImageReaderSpi该实例化这个对象,或null如果其身份未知或不存在。protected List<IIOReadProgressListener>progressListenersAList当前注册IIOReadProgressListeners,默认初始化为null,与空List同义。protected booleanseekForwardOnlytrue如果当前输入源已被标记为仅允许通过setInput进行前向搜索。protected List<IIOReadUpdateListener>updateListenersAList当前已注册IIOReadUpdateListeners,默认初始化为null,与空List同义。protected List<IIOReadWarningListener>warningListenersAList当前注册IIOReadWarningListeners,默认初始化为null,与空List同义。protected List<Locale>warningLocalesList的Locale与每个当前注册的IIOReadWarningListener相关联,默认情况下初始化为null,这与空List同义。
-
构造方法摘要
构造方法 变量 构造器 描述 protectedImageReader(ImageReaderSpi originatingProvider)构造一个ImageReader并将其originatingProvider字段设置为提供的值。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 voidabort()请求中止任何当前读取操作。protected booleanabortRequested()如果自实例化读取器或clearAbortRequest后已作出中止当前读取操作的请求,则返回true。voidaddIIOReadProgressListener(IIOReadProgressListener listener)将IIOReadProgressListener添加到已注册的进度监听器列表中。voidaddIIOReadUpdateListener(IIOReadUpdateListener listener)将IIOReadUpdateListener添加到已注册的更新侦听器列表中。voidaddIIOReadWarningListener(IIOReadWarningListener listener)将IIOReadWarningListener添加到已注册的警告侦听器列表中。booleancanReadRaster()如果此插件仅支持读取像素数据的Raster,则返回true。protected static voidcheckReadParamBandSettings(ImageReadParam param, int numSrcBands, int numDstBands)读者可以使用的实用方法来测试ImageReadParam的源和目标波段设置的ImageReadParam。protected voidclearAbortRequest()清除任何先前的中止请求。protected static voidcomputeRegions(ImageReadParam param, int srcWidth, int srcHeight, BufferedImage image, Rectangle srcRegion, Rectangle destRegion)计算感兴趣的源区域和目标感兴趣区域,考虑源图像的宽度和高度,可选的目标图像以及可选的ImageReadParam。voiddispose()允许释放此对象持有的任何资源。floatgetAspectRatio(int imageIndex)返回给定图像的宽高比(即宽度除以高度)为float。Locale[]getAvailableLocales()返回一个Locale的数组,可用于本地化警告侦听器和压缩设置。ImageReadParamgetDefaultReadParam()返回适用于此格式的默认ImageReadParam对象。protected static BufferedImagegetDestination(ImageReadParam param, Iterator<ImageTypeSpecifier> imageTypes, int width, int height)返回应写入解码像素数据的BufferedImage。StringgetFormatName()返回标识输入源格式的String。abstract intgetHeight(int imageIndex)返回输入源中给定图像的高度(以像素为单位)。abstract IIOMetadatagetImageMetadata(int imageIndex)返回一个IIOMetadata与给定图像,或相关联的对象包含元数据null如果读取器不支持读取元数据,被设置为忽略元数据,或者,如果没有元数据可用。IIOMetadatagetImageMetadata(int imageIndex, String formatName, Set<String> nodeNames)返回一个IIOMetadata表示与给定图像,或相关联的元数据对象null如果读取器不支持读取元数据或没有可用的。abstract Iterator<ImageTypeSpecifier>getImageTypes(int imageIndex)返回Iterator其中包含可以解码给定图像的可能图像类型,形式为ImageTypeSpecifiers。ObjectgetInput()返回先前设置为输入源的ImageInputStream或其他Object。LocalegetLocale()返回当前设置Locale,或null如果没有设置。intgetMinIndex()返回用于读取图像,缩略图或图像元数据的最低有效索引。abstract intgetNumImages(boolean allowSearch)返回当前输入源可用的图像数,不包括缩略图。intgetNumThumbnails(int imageIndex)返回与给定图像关联的缩略图预览图像的数量。ImageReaderSpigetOriginatingProvider()返回在构造函数中传入的ImageReaderSpi。ImageTypeSpecifiergetRawImageType(int imageIndex)返回ImageTypeSpecifier指示SampleModel和ColorModel,它们最接近地表示图像的“原始”内部格式。protected static RectanglegetSourceRegion(ImageReadParam param, int srcWidth, int srcHeight)一种实用方法,读者可以使用该方法计算应读取的源图像区域,同时考虑所提供的ImageReadParam中的任何源区域和子采样偏移设置。abstract IIOMetadatagetStreamMetadata()返回一个IIOMetadata表示与输入源作为一个整体(即,不与任何特定图像相关联)相关联的元数据对象,或者null如果读取器不支持读取元数据,被设置为忽略元数据,或者,如果没有元数据可用。IIOMetadatagetStreamMetadata(String formatName, Set<String> nodeNames)返回IIOMetadata对象,该对象表示与输入源整体相关联的元数据(即,不与任何特定图像相关联)。intgetThumbnailHeight(int imageIndex, int thumbnailIndex)返回由thumbnailIndex索引的缩略图预览图像的高度,该图像与ImageIndex索引的图像ImageIndex。intgetThumbnailWidth(int imageIndex, int thumbnailIndex)返回由thumbnailIndex索引的缩略图预览图像的宽度,该图像与ImageIndex索引的图像ImageIndex。intgetTileGridXOffset(int imageIndex)返回给定图像中tile(0,0)左上角的X坐标。intgetTileGridYOffset(int imageIndex)返回给定图像中tile(0,0)左上角的Y坐标。intgetTileHeight(int imageIndex)返回给定图像中图块的高度。intgetTileWidth(int imageIndex)返回给定图像中图块的宽度。abstract intgetWidth(int imageIndex)返回输入源中给定图像的宽度(以像素为单位)。booleanhasThumbnails(int imageIndex)如果给定图像具有与之关联的缩略图预览图像,则返回true。booleanisIgnoringMetadata()如果通过将true作为ignoreMetadata参数传递给setInput方法将当前输入源标记为允许忽略元数据,则返回true。booleanisImageTiled(int imageIndex)如果图像被组织成 图块 ,则返回true,即,相等大小的非重叠矩形。booleanisRandomAccessEasy(int imageIndex)如果给定图像的存储格式对随机访问像素没有固有障碍,则返回true。booleanisSeekForwardOnly()返回true如果当前输入源已经被标记为只通过将寻求着true为seekForwardOnly参数到setInput方法。protected voidprocessImageComplete()通过调用imageComplete方法向所有已注册的IIOReadProgressListeners广播读取图像的完成。protected voidprocessImageProgress(float percentageDone)通过调用imageProgress方法将当前的图像完成百分比广播到所有已注册的IIOReadProgressListener。protected voidprocessImageStarted(int imageIndex)通过调用imageStarted方法,将读取的图像的开始广播到所有已注册的IIOReadProgressListener。protected voidprocessImageUpdate(BufferedImage theImage, int minX, int minY, int width, int height, int periodX, int periodY, int[] bands)通过调用imageUpdate方法将一组样本的更新广播到所有已注册的IIOReadUpdateListeners。protected voidprocessPassComplete(BufferedImage theImage)通过调用他们的passComplete方法向所有已注册的IIOReadUpdateListener广播渐进传递的结束。protected voidprocessPassStarted(BufferedImage theImage, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)通过调用他们的passStarted方法向所有已注册的IIOReadUpdateListeners播放渐进传递的开头。protected voidprocessReadAborted()通过调用readAborted方法广播读取已中止到所有已注册的IIOReadProgressListeners。protected voidprocessSequenceComplete()通过调用sequenceComplete方法向所有已注册的IIOReadProgressListener广播完成一系列图像读取。protected voidprocessSequenceStarted(int minIndex)通过调用sequenceStarted方法向所有已注册的IIOReadProgressListener广播图像读取序列的开始。protected voidprocessThumbnailComplete()通过调用thumbnailComplete方法向所有已注册的IIOReadProgressListener广播完成缩略图读取。protected voidprocessThumbnailPassComplete(BufferedImage theThumbnail)通过调用thumbnailPassComplete方法将缩略图渐进传递的结尾广播到所有已注册的IIOReadUpdateListener。protected voidprocessThumbnailPassStarted(BufferedImage theThumbnail, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)通过调用thumbnailPassStarted方法将缩略图渐进传递的开头广播到所有已注册的IIOReadUpdateListener。protected voidprocessThumbnailProgress(float percentageDone)通过调用thumbnailProgress方法将当前缩略图完成百分比广播到所有已注册的IIOReadProgressListener。protected voidprocessThumbnailStarted(int imageIndex, int thumbnailIndex)通过调用thumbnailStarted方法,将缩略图读取的开始广播到所有已注册的IIOReadProgressListener。protected voidprocessThumbnailUpdate(BufferedImage theThumbnail, int minX, int minY, int width, int height, int periodX, int periodY, int[] bands)通过调用thumbnailUpdate方法将缩略图图像中的一组样本的更新广播到所有已注册的IIOReadUpdateListener。protected voidprocessWarningOccurred(String warning)通过调用warningOccurred方法向所有已注册的IIOReadWarningListener广播警告消息。protected voidprocessWarningOccurred(String baseName, String keyword)广播本地化警告消息给所有注册IIOReadWarningListener通过调用它们的SwarningOccurred法从拍摄字符串ResourceBundle。BufferedImageread(int imageIndex)读取由imageIndex索引的图像,并使用默认值ImageReadParam将其作为完整的BufferedImage返回。abstract BufferedImageread(int imageIndex, ImageReadParam param)读取由imageIndex索引的图像,并使用提供的ImageReadParam将其作为完整的BufferedImage返回。IIOImagereadAll(int imageIndex, ImageReadParam param)读取由索引的图像imageIndex并返回一个IIOImage包含图像,缩略图和相关联的图像元数据,使用所提供的ImageReadParam。Iterator<IIOImage>readAll(Iterator<? extends ImageReadParam> params)返回Iterator包含所有图像,缩略图和元数据,从getMinIndex给出的索引开始,以IIOImage对象的形式从输入源IIOImage。RenderedImagereadAsRenderedImage(int imageIndex, ImageReadParam param)返回RenderedImage对象,其中包含由imageIndex索引的图像的内容。booleanreaderSupportsThumbnails()如果此阅读器理解的图像格式支持与其关联的缩略图预览图像,则返回true。RasterreadRaster(int imageIndex, ImageReadParam param)返回一个新的Raster对象,其中包含图像流中的原始像素数据,未应用任何颜色转换。BufferedImagereadThumbnail(int imageIndex, int thumbnailIndex)返回由thumbnailIndex索引的缩略图预览图像,该图像与ImageIndex索引的图像相关联,为BufferedImage。BufferedImagereadTile(int imageIndex, int tileX, int tileY)读取tileX和tileY参数指示的tileX,将其返回为BufferedImage。RasterreadTileRaster(int imageIndex, int tileX, int tileY)返回一个新的Raster对象,其中包含来自图块的原始像素数据,未应用任何颜色转换。voidremoveAllIIOReadProgressListeners()删除所有当前注册的IIOReadProgressListener对象。voidremoveAllIIOReadUpdateListeners()删除所有当前已注册的IIOReadUpdateListener对象。voidremoveAllIIOReadWarningListeners()删除所有当前注册的IIOReadWarningListener对象。voidremoveIIOReadProgressListener(IIOReadProgressListener listener)从已注册的进度监听器列表中删除IIOReadProgressListener。voidremoveIIOReadUpdateListener(IIOReadUpdateListener listener)从已注册的更新侦听器列表中删除IIOReadUpdateListener。voidremoveIIOReadWarningListener(IIOReadWarningListener listener)从已注册的错误侦听器列表中删除IIOReadWarningListener。voidreset()将ImageReader恢复到其初始状态。voidsetInput(Object input)设置要用于给定ImageInputStream或其他Object的输入源。voidsetInput(Object input, boolean seekForwardOnly)将输入源设置为给定的ImageInputStream或其他Object。voidsetInput(Object input, boolean seekForwardOnly, boolean ignoreMetadata)将输入源设置为给定的ImageInputStream或其他Object。voidsetLocale(Locale locale)将此ImageReader的当前Locale设置为给定值。
-
-
-
字段详细信息
-
originatingProvider
protected ImageReaderSpi originatingProvider
该ImageReaderSpi该实例化这个对象,或null如果其身份未知或不存在。 默认情况下,它初始化为null。
-
input
protected Object input
的ImageInputStream或其他Object通过setInput,并通过检索getInput。 默认情况下,它初始化为null。
-
seekForwardOnly
protected boolean seekForwardOnly
true如果当前输入源已被标记为仅允许通过setInput进行前向搜索。 默认情况下,该值为false。
-
ignoreMetadata
protected boolean ignoreMetadata
true如果当前输入源已标记为允许setInput忽略元数据。 默认情况下,该值为false。
-
minIndex
protected int minIndex
读取的最小有效索引,最初为0.当seekForwardOnly为true,各种方法可能会尝试访问与具有较低索引的图像关联的数据的IndexOutOfBoundsException。
-
availableLocales
protected Locale[] availableLocales
的阵列Locale其可以被用于定位的警告消息,或Snull如果不支持定位。
-
locale
protected Locale locale
目前Locale用于定位,或null如果没有设置。
-
warningListeners
protected List<IIOReadWarningListener> warningListeners
AList,目前注册IIOReadWarningListeners,默认初始化为null,与空List同义。
-
warningLocales
protected List<Locale> warningLocales
List的Locale与每个当前注册的IIOReadWarningListener相关联,默认情况下初始化为null,这与空List同义。
-
progressListeners
protected List<IIOReadProgressListener> progressListeners
AList当前注册IIOReadProgressListeners,默认初始化为null,与空List同义。
-
updateListeners
protected List<IIOReadUpdateListener> updateListeners
AList当前已注册IIOReadUpdateListeners,默认初始化为null,与空List同义。
-
-
构造方法详细信息
-
ImageReader
protected ImageReader(ImageReaderSpi originatingProvider)
构造一个ImageReader并将其originatingProvider字段设置为提供的值。使用扩展的子类应提供带有签名
(ImageReaderSpi,Object)的构造(ImageReaderSpi,Object),以便检索扩展对象。 如果扩展对象不适合,则应抛出IllegalArgumentException。- 参数
-
originatingProvider-该ImageReaderSpi即调用此构造,或null。
-
-
方法详细信息
-
getFormatName
public String getFormatName() throws IOException
返回标识输入源格式的String。默认实现返回
originatingProvider.getFormatNames()[0]。 可能没有原始服务提供程序或希望使用不同命名策略的实现应该重写此方法。- 结果
-
格式名称,如
String。 - 异常
-
IOException- 如果从输入源读取信息时发生错误。
-
getOriginatingProvider
public ImageReaderSpi getOriginatingProvider()
返回在构造函数中传入的ImageReaderSpi。 请注意,此值可能是null。- 结果
-
ImageReaderSpi,或null。 - 另请参见:
-
ImageReaderSpi
-
setInput
public void setInput(Object input, boolean seekForwardOnly, boolean ignoreMetadata)
将输入源设置为给定的ImageInputStream或其他Object。 必须在使用任何查询或读取方法之前设置输入源。 如果input是null,则将删除任何当前设置的输入源。 在任何情况下,minIndex的值将初始化为0。seekForwardOnly参数控制是否在getMinIndex每个图像(或缩略图或图像元数据)时增加getMinIndex返回的值。 如果seekForwardOnly为真,则对read(index)的调用将抛出IndexOutOfBoundsException如果index < this.minIndex; 否则,minIndex的值将设置为index。 如果seekForwardOnly是false,则无论是否进行任何读取操作,minIndex的值minIndex将保持为0。ignoreMetadata参数(如果设置为true)允许读者忽略读取期间遇到的任何元数据。 在后续调用getStreamMetadata种getImageMetadata方法可能会返回null和IIOImage从返回readAll可能返回null从他们getMetadata方法。 设置此参数可以使读者更有效地工作。 读者可以选择忽略此设置并正常返回元数据。子类应注意根据前一个流删除任何缓存的信息,例如标题信息或部分解码的图像数据。
的一般使用
Object比其他ImageInputStream旨在用于直接与捕获设备或图像协议交互的读取器。 法律类的集合由读者服务提供商的getInputTypes方法getInputTypes; 大多数读者将返回仅包含ImageInputStream.class的单元素数组,表示它们仅接受ImageInputStream。默认实现针对
input返回的列表检查input参数,如果参数不是列表中某个类的实例,originatingProvider.getInputTypes()失败。 如果原始提供者设置为null,输入被接受,只有当它是ImageInputStream。- 参数
-
input- 用于将来解码的ImageInputStream或其他Object。 -
seekForwardOnly- 如果是true,则只能从此输入源按升序读取图像和元数据。 -
ignoreMetadata- 如果是true,则在读取期间可以忽略元数据。 - 异常
-
IllegalArgumentException- 如果input不是原始服务提供商的getInputTypes方法返回的某个类的实例,或者不是ImageInputStream。 - 另请参见:
-
ImageInputStream,getInput(),ImageReaderSpi.getInputTypes()
-
setInput
public void setInput(Object input, boolean seekForwardOnly)
将输入源设置为给定的ImageInputStream或其他Object。 必须在使用任何查询或读取方法之前设置输入源。 如果input是null,则将删除任何当前设置的输入源。 在任何情况下,minIndex的值将初始化为0。seekForwardOnly参数控制是否在getMinIndex每个图像(或缩略图或图像元数据)时增加getMinIndex返回的值。 如果seekForwardOnly为真,则对read(index)的调用将抛出IndexOutOfBoundsException如果index < this.minIndex; 否则,minIndex的值将设置为index。 如果seekForwardOnly是false,则无论是否进行任何读取操作,minIndex的值minIndex将保持为0。此方法相当于
setInput(input, seekForwardOnly, false)。- 参数
-
input-ImageInputStream或其他Object用于将来解码。 -
seekForwardOnly- 如果是true,则只能从此输入源按升序读取图像和元数据。 - 异常
-
IllegalArgumentException- 如果input不是始发服务提供商的getInputTypes方法返回的某个类的实例,或者不是ImageInputStream。 - 另请参见:
-
getInput()
-
setInput
public void setInput(Object input)
设置要用于给定ImageInputStream或其他Object的输入源。 必须在使用任何查询或读取方法之前设置输入源。 如果input是null,则将删除任何当前设置的输入源。 在任何情况下,minIndex的值将初始化为0。此方法相当于
setInput(input, false, false)。- 参数
-
input-ImageInputStream或其他Object用于将来解码。 - 异常
-
IllegalArgumentException- 如果input不是原始服务提供商的getInputTypes方法返回的某个类的实例,或者不是ImageInputStream。 - 另请参见:
-
getInput()
-
getInput
public Object getInput()
返回先前设置为输入源的ImageInputStream或其他Object。 如果尚未设置输入源,则返回null。- 结果
-
的
Object,将被用于未来的解码,或null。 - 另请参见:
-
ImageInputStream,setInput(java.lang.Object, boolean, boolean)
-
isSeekForwardOnly
public boolean isSeekForwardOnly()
返回true如果当前输入源已经被标记为只通过将寻求着true为seekForwardOnly参数到setInput方法。- 结果
-
true如果输入源仅向前搜索。 - 另请参见:
-
setInput(java.lang.Object, boolean, boolean)
-
isIgnoringMetadata
public boolean isIgnoringMetadata()
如果通过将true作为ignoreMetadata参数传递给setInput方法将当前输入源标记为允许忽略元数据,则返回true。- 结果
-
true如果可以忽略元数据。 - 另请参见:
-
setInput(java.lang.Object, boolean, boolean)
-
getMinIndex
public int getMinIndex()
返回用于读取图像,缩略图或图像元数据的最低有效索引。 如果seekForwardOnly()是false,则此值通常保持为0,表示可以进行随机访问。 否则,它将包含最近访问的索引的值,并以单调方式增加。- 结果
- 阅读的最低法律索引。
-
getAvailableLocales
public Locale[] getAvailableLocales()
返回一个Locale的数组,可用于本地化警告侦听器和压缩设置。 返回值null表示不支持本地化。如果它是非
null,则默认实现返回availableLocales实例变量的克隆,否则返回null。- 结果
-
Locale的数组,LocalesetLocale或null参数。
-
setLocale
public void setLocale(Locale locale)
将此ImageReader的当前Locale设置为给定值。 值null将删除任何先前的设置,并指示阅读器应按其认为合适的方式进行本地化。- 参数
-
locale- 所需的Locale或null。 - 异常
-
IllegalArgumentException- 如果locale不是null但不是getAvailableLocales返回的值getAvailableLocales。 - 另请参见:
-
getLocale()
-
getLocale
public Locale getLocale()
返回当前设置Locale,或null如果没有设置。- 结果
-
目前
Locale,或null。 - 另请参见:
-
setLocale(java.util.Locale)
-
getNumImages
public abstract int getNumImages(boolean allowSearch) throws IOException返回当前输入源可用的图像数,不包括缩略图。请注意,某些图像格式(例如动画GIF)不指定流中存在的图像数量。 因此,确定图像的数量将需要扫描整个流并且可能需要存储器用于缓冲。 如果
read顺序处理图像,则简单地用增加的索引调用read可能更有效,直到抛出IndexOutOfBoundsException以指示没有更多图像可用。allowSearch参数可以设置为false以指示false穷举搜索; 返回值将为-1,表示需要进行搜索。 如果输入已与指定seekForwardOnly设置为true,此方法将引发IllegalStateException如果allowSearch被设置为true。- 参数
-
allowSearch- 如果是true,即使需要搜索,也会返回真实的图像数。 如果是false,则读者可以-1不执行搜索的情况下返回-1。 - 结果
-
图像数量,如
int,或-1如果allowSearch是false,则需要搜索。 - 异常
-
IllegalStateException- 如果尚未设置输入源,或者已将seekForwardOnly指定的输入设置为true。 -
IOException- 如果从输入源读取信息时发生错误。 - 另请参见:
-
setInput(java.lang.Object, boolean, boolean)
-
getWidth
public abstract int getWidth(int imageIndex) throws IOException返回输入源中给定图像的宽度(以像素为单位)。如果图像可以呈现为用户指定的大小,则此方法返回默认宽度。
- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
-
图像的宽度,如
int。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IOException- 如果从输入源读取宽度信息时发生错误。
-
getHeight
public abstract int getHeight(int imageIndex) throws IOException返回输入源中给定图像的高度(以像素为单位)。如果图像可以呈现为用户指定的大小,则此方法返回默认高度。
- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
-
图像的高度,如
int。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IOException- 如果从输入源读取高度信息时发生错误。
-
isRandomAccessEasy
public boolean isRandomAccessEasy(int imageIndex) throws IOException如果给定图像的存储格式对随机访问像素没有固有障碍,则返回true。 对于大多数压缩格式,例如JPEG,此方法应返回false,因为除了感兴趣区域之外,可能需要解码图像的大部分。这仅仅是希望提高效率的计划的暗示; 所有读者必须能够读取
ImageReadParam指定的任意区域。请注意,从此方法返回
false格式可能仍然允许平铺( 例如 ,JPEG中的重新开始标记),并且随机访问在平铺上可能相当有效。 见isImageTiled。保证所有图像都支持轻松随机访问或保证不支持简单随机访问的阅读器可以分别返回
true或false而无需访问任何图像数据。 在这种情况下,即使没有设置输入源或图像索引超出范围,也不必抛出异常。默认实现返回
false。- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
-
true如果读取给定图像的感兴趣区域可能是有效的。 - 异常
-
IllegalStateException- 如果需要输入源来确定返回值,但尚未设置任何输入源。 -
IndexOutOfBoundsException- 如果必须访问图像以确定返回值,但提供的索引超出范围。 -
IOException- 如果在读取期间发生错误。
-
getAspectRatio
public float getAspectRatio(int imageIndex) throws IOException返回给定图像的宽高比(即宽度除以其高度)为float。 对于固有可调整大小的图像,此方法提供了一种在给定所需高度的情况下确定适当宽度的方法,反之亦然。 对于不可调整大小的图像,使用真实的宽度和高度。默认实现只返回
(float)getWidth(imageIndex)/getHeight(imageIndex)。- 参数
-
imageIndex- 要查询的映像的索引。 - 结果
-
float表示给定图像的纵横比。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IOException- 如果在读取期间发生错误。
-
getRawImageType
public ImageTypeSpecifier getRawImageType(int imageIndex) throws IOException
返回ImageTypeSpecifier表示SampleModel和ColorModel,它们最接近地表示图像的“原始”内部格式。 如果没有紧密匹配,则应返回保留图像中最多信息的类型。 返回的值也应包含在getImageTypes返回的值列表中。默认实现只返回
getImageType提供的列表中的第一个条目。- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
-
ImageTypeSpecifier。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IOException- 如果从输入源读取格式信息时发生错误。
-
getImageTypes
public abstract Iterator<ImageTypeSpecifier> getImageTypes(int imageIndex) throws IOException
返回Iterator其中包含可以解码给定图像的可能图像类型,形式为ImageTypeSpecifiers。 将返回至少一种合法图像类型。迭代器的第一个元素应该是最“自然”的类型,用于尽可能少地丢失图像来解码图像。 例如,对于JPEG图像,第一个条目应该是RGB图像,即使图像数据内部存储在YCbCr颜色空间中。
- 参数
-
imageIndex- 图像的索引是retrieved。 - 结果
-
Iterator包含至少一个ImageTypeSpecifier表示用于解码当前给定图像的建议图像类型。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IOException- 如果从输入源读取格式信息时发生错误。 - 另请参见:
-
ImageReadParam.setDestination(BufferedImage),IIOParam.setDestinationType(ImageTypeSpecifier)
-
getDefaultReadParam
public ImageReadParam getDefaultReadParam()
返回适用于此格式的默认ImageReadParam对象。 所有子类都应为所有参数定义一组默认值,并通过此调用返回它们。 可以在设置输入源之前调用此方法。默认实现构造并返回不允许源缩放的新
ImageReadParam对象( 即 ,它返回new ImageReadParam()。- 结果
-
ImageReadParam对象,可用于使用一组默认设置控制解码过程。
-
getStreamMetadata
public abstract IIOMetadata getStreamMetadata() throws IOException
返回IIOMetadata对象,表示与输入源整体关联的元数据(即,与任何特定图像null);如果读取器不支持读取元数据,则设置为忽略元数据,或者如果没有元数据可用,则null。- 结果
-
IIOMetadata对象,或null。 - 异常
-
IOException- 如果在读取期间发生错误。
-
getStreamMetadata
public IIOMetadata getStreamMetadata(String formatName, Set<String> nodeNames) throws IOException
返回IIOMetadata对象,该对象表示与输入源整体相关联的元数据(即,不与任何特定图像相关联)。 如果不存在此类数据,则返回null。生成的元数据对象仅负责以
formatName指定的格式返回文档。 在返回的任何文档中,只需返回名称为nodeNames成员的节点。 以这种方式,基于实际需要什么信息,可以将读取器完成的元数据处理量保持为最小。如果
formatName不是受支持的元数据格式的名称,则返回null。在所有情况下,返回比严格必要的更有能力的元数据对象是合法的。 格式名称和节点名称仅仅是可用于减少读者工作量的提示。
在检查格式名称是否受支持后,默认实现只返回调用
getStreamMetadata()的结果。 如果不是,则返回null。- 参数
-
formatName- 可用于从返回的IIOMetadata对象检索文档的元数据格式名称。 -
nodeNames- 包含检索到的文档中可能包含的节点名称的Set。 - 结果
-
IIOMetadata对象,或null。 - 异常
-
IllegalArgumentException- 如果formatName是null。 -
IllegalArgumentException- 如果nodeNames是null。 -
IOException- 如果在读取期间发生错误。
-
getImageMetadata
public abstract IIOMetadata getImageMetadata(int imageIndex) throws IOException
返回一个IIOMetadata与给定图像,或相关联的对象包含元数据null如果读取器不支持读取元数据,被设置为忽略元数据,或者,如果没有元数据可用。- 参数
-
imageIndex- 要检索其元数据的图像的索引。 - 结果
-
IIOMetadata对象,或null。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IOException- 如果在读取期间发生错误。
-
getImageMetadata
public IIOMetadata getImageMetadata(int imageIndex, String formatName, Set<String> nodeNames) throws IOException
返回一个IIOMetadata表示与给定图像,或相关联的元数据对象null如果读取器不支持读取元数据或没有可用的。生成的元数据对象仅负责以
formatName指定的格式返回文档。 在返回的任何文档中,只需要返回名称为nodeNames成员的节点。 以这种方式,基于实际需要什么信息,可以将读取器完成的元数据处理量保持为最小。如果
formatName不是受支持的元数据格式的名称,null可能返回null。在所有情况下,返回比严格必要的更有能力的元数据对象是合法的。 格式名称和节点名称仅仅是可用于减少读者工作量的提示。
在检查格式名称是否受支持后,默认实现只返回调用
getImageMetadata(imageIndex)的结果。 如果不是,则返回null。- 参数
-
imageIndex- 要检索其元数据的图像的索引。 -
formatName- 可用于从返回的IIOMetadata对象检索文档的元数据格式名称。 -
nodeNames- 包含检索到的文档中可能包含的节点名称的Set。 - 结果
-
IIOMetadata对象,或null。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IllegalArgumentException- 如果formatName是null。 -
IllegalArgumentException- 如果nodeNames是null。 -
IOException- 如果在读取期间发生错误。
-
read
public BufferedImage read(int imageIndex) throws IOException
读取由imageIndex索引的图像,并使用默认值ImageReadParam将其作为完整的BufferedImage返回。 这是一种称为read(imageIndex, null)的便捷方法。返回的图像将根据该第一被格式化
ImageTypeSpecifier从返回getImageTypes。任何注册的
IIOReadProgressListener对象将通过调用他们的imageStarted方法通知,然后在读取进行时调用他们的imageProgress方法。 最后将调用他们的imageComplete方法。 当像素被解码时,可以在读取期间的其他时间更新对象IIOReadUpdateListener。 最后,IIOReadWarningListener对象将收到解码期间发生的任何非致命警告的通知。- 参数
-
imageIndex- 要检索的图像的索引。 - 结果
-
图像的期望部分为
BufferedImage。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IOException- 如果在读取期间发生错误。
-
read
public abstract BufferedImage read(int imageIndex, ImageReadParam param) throws IOException
读取由imageIndex索引的图像,并使用提供的ImageReadParam将其作为完整的BufferedImage返回。返回的实际
BufferedImage将使用getDestination方法定义的算法进行选择。任何注册的
IIOReadProgressListener对象将通过调用他们的imageStarted方法通知,然后在读取进行时调用他们的imageProgress方法。 最后将调用他们的imageComplete方法。 当像素被解码时,在读取期间的其他时间可以更新IIOReadUpdateListener对象。 最后,IIOReadWarningListener对象将收到解码期间发生的任何非致命警告的通知。要读取的源带组和要写入的目标带通过在所提供的
ImageReadParam上调用getSourceBands和getDestinationBands来确定。 如果这些方法返回的数组长度不同,则源带集包含的索引大于最大可用源索引,或者目标带集包含的索引大于最大合法目标索引,则抛出IllegalArgumentException。如果提供的
ImageReadParam包含此阅读器不支持的可选设置值( 例如源渲染大小或任何特定于格式的设置),则将忽略它们。- 参数
-
imageIndex- 要检索的图像的索引。 -
param-一个ImageReadParam用来控制读取过程中,或null。 - 结果
-
图像的所需部分为
BufferedImage。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IllegalArgumentException- 如果param.getSourceBands和param.getDestinationBands指定的源和目标波段集的长度不同或包含超出范围的索引。 -
IllegalArgumentException- 如果生成的图像的宽度或高度小于1。 -
IOException- 如果在读取期间发生错误。
-
readAll
public IIOImage readAll(int imageIndex, ImageReadParam param) throws IOException
读取由索引的图像imageIndex并返回一个IIOImage包含图像,缩略图和相关联的图像元数据,使用所提供的ImageReadParam。实际
BufferedImage由返回引用IIOImage将使用由定义的算法来选择getDestination方法。任何注册的
IIOReadProgressListener对象将通过调用他们的imageStarted方法通知,然后在读取进行时调用他们的imageProgress方法。 最后将调用他们的imageComplete方法。 当读取像素时,可以在读取期间的其他时间更新对象IIOReadUpdateListener。 最后,IIOReadWarningListener对象将收到解码期间发生的任何非致命警告的通知。要读取的源带组和要写入的目标带通过在所提供的
ImageReadParam上调用getSourceBands和getDestinationBands来确定。 如果这些方法返回的数组长度不同,则源带集包含的索引大于最大可用源索引,或者目标带集包含的索引大于最大合法目标索引,则抛出IllegalArgumentException。无论区域设置如何,都将全部返回缩略图。
如果提供的
ImageReadParam包含此阅读器不支持的可选设置值( 例如源渲染大小或任何特定于格式的设置),则将忽略这些值。- 参数
-
imageIndex- 要检索的图像的索引。 -
param-一个ImageReadParam用来控制读取过程中,或null。 - 结果
-
IIOImage包含图像的期望部分,一组缩略图和相关联的图像元数据。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IllegalArgumentException- 如果param.getSourceBands和param.getDestinationBands指定的源和目标带的param.getSourceBands长度不同或包含超出范围的索引。 -
IllegalArgumentException- 如果生成的图像的宽度或高度小于1。 -
IOException- 如果在读取期间发生错误。
-
readAll
public Iterator<IIOImage> readAll(Iterator<? extends ImageReadParam> params) throws IOException
返回Iterator其中包含所有图像,缩略图和元数据,从getMinIndex给出的索引开始,以IIOImage对象的形式从输入源IIOImage。 提供Iterator包含ImageReadParam对象; 从输入源读取的每个图像都消耗一个元素,直到没有更多图像可用。 如果读取参数Iterator用尽元素,但输入源中仍有更多可用图像,则默认读取参数用于剩余图像。如果
params是null,则默认读取参数将用于所有图像。实际
BufferedImage由返回引用IIOImage将使用由定义的算法来选择getDestination方法。任何注册的
IIOReadProgressListener物品将通过拨打sequenceStarted方法通知一次。 然后,对于每个解码的图像,将调用imageStarted,随后在读取进行时调用imageProgress,最后imageComplete。 在最后一个图像被解码后,将调用sequenceComplete方法。 当读取像素时,可以在读取期间的其他时间更新IIOReadUpdateListener对象。 最后,IIOReadWarningListener对象将收到解码期间发生的任何非致命警告的通知。要读取的源带的集合和要写入的目标带通过在所提供的
ImageReadParam上调用getSourceBands和getDestinationBands来确定。 如果这些方法返回的数组长度不同,则源带集包含的索引大于最大可用源索引,或者目标带集包含的索引大于最大合法目标索引,则抛出IllegalArgumentException。无论区域设置如何,都将全部返回缩略图。
如果提供的任何
ImageReadParam的任何一个包含此阅读器不支持的可选设置值( 例如源渲染大小或任何特定于格式的设置),则将忽略它们。- 参数
-
params- 一个Iterator包含ImageReadParam对象。 - 结果
-
Iterator表示输入源的内容为IIOImage。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IllegalArgumentException-如果任何非null的元件params不是ImageReadParam。 -
IllegalArgumentException- 如果param.getSourceBands和param.getDestinationBands指定的源和目标带的param.getSourceBands长度不同或包含超出范围的索引。 -
IllegalArgumentException- 如果生成的图像的宽度或高度小于1。 -
IOException- 如果在读取期间发生错误。 - 另请参见:
-
ImageReadParam,IIOImage
-
canReadRaster
public boolean canReadRaster()
如果此插件仅支持读取像素数据的Raster,则返回true。 如果此方法返回false,则调用readRaster或readTileRaster将抛出UnsupportedOperationException。默认实现返回
false。- 结果
-
true如果此插件支持读取原始Rasters。 - 另请参见:
-
readRaster(int, javax.imageio.ImageReadParam),readTileRaster(int, int, int)
-
readRaster
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- 如果此插件不支持读取原始Rasters。 -
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IOException- 如果在读取期间发生错误。 - 另请参见:
-
canReadRaster(),read(int),Raster
-
isImageTiled
public boolean isImageTiled(int imageIndex) throws IOException如果图像被组织成图块 ,则返回true,即,相等大小的非重叠矩形。读取器插件可以选择是否在存储时暴露图像中存在的平铺。 它甚至可以选择在没有明确存在时通告平铺。 一般情况下,只有在访问单个图块时具有某些优势(速度或空间)时才应公布图块。 无论读者是否广告平铺,它都必须能够读取
ImageReadParam指定的任意矩形区域。保证所有图像被平铺或保证不被平铺的读取器可以分别返回
true或false而不访问任何图像数据。 在这种情况下,即使没有设置输入源或图像索引超出范围,也不必抛出异常。默认实现只返回
false。- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
-
true如果图像是平铺的。 - 异常
-
IllegalStateException- 如果需要输入源来确定返回值,但尚未设置任何输入源。 -
IndexOutOfBoundsException- 如果必须访问图像以确定返回值,但提供的索引超出范围。 -
IOException- 如果在阅读期间发生错误。
-
getTileWidth
public int getTileWidth(int imageIndex) throws IOException返回给定图像中图块的宽度。默认实现只返回
getWidth(imageIndex),这对于非平铺图像是正确的。 支持平铺的读者应该重写此方法。- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
- 瓷砖的宽度。
- 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IOException- 如果在阅读期间发生错误。
-
getTileHeight
public int getTileHeight(int imageIndex) throws IOException返回给定图像中图块的高度。默认实现只返回
getHeight(imageIndex),这对于非平铺图像是正确的。 支持平铺的读者应该重写此方法。- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
- 瓷砖的高度。
- 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IOException- 如果在读取期间发生错误。
-
getTileGridXOffset
public int getTileGridXOffset(int imageIndex) throws IOException返回给定图像中tile(0,0)左上角的X坐标。瓦片网格X偏移总是具有相同值(通常为0)的读取器可以返回该值而不访问任何图像数据。 在这种情况下,即使没有设置输入源或图像索引超出范围,也不必抛出异常。
默认实现只返回0,这对于大多数格式的非平铺图像和平铺图像都是正确的。 支持使用非(0,0)偏移进行平铺的读者应该重写此方法。
- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
- 图块网格的X偏移量。
- 异常
-
IllegalStateException- 如果需要输入源来确定返回值,但尚未设置任何输入源。 -
IndexOutOfBoundsException- 如果必须访问图像以确定返回值,但提供的索引超出范围。 -
IOException- 如果在读取期间发生错误。
-
getTileGridYOffset
public int getTileGridYOffset(int imageIndex) throws IOException返回给定图像中tile(0,0)左上角的Y坐标。平铺网格Y偏移始终具有相同值(通常为0)的读取器可以返回该值而不访问任何图像数据。 在这种情况下,即使没有设置输入源或图像索引超出范围,也不必抛出异常。
默认实现只返回0,这对于大多数格式的非平铺图像和平铺图像都是正确的。 支持使用非(0,0)偏移进行平铺的读者应该重写此方法。
- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
- 平铺网格的Y偏移量。
- 异常
-
IllegalStateException- 如果需要输入源来确定返回值,但尚未设置任何输入源。 -
IndexOutOfBoundsException- 如果必须访问图像以确定返回值,但提供的索引超出范围。 -
IOException- 如果在读取期间发生错误。
-
readTile
public BufferedImage readTile(int imageIndex, int tileX, int tileY) throws IOException
读取tileX和tileY参数指示的tileX,将其返回为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。- 参数
-
imageIndex- 要检索的图像的索引。 -
tileX- 要检索的tileX的列索引(以0开头)。 -
tileY- 要检索的tileY的行索引(以0开头)。 - 结果
-
瓷砖为
BufferedImage。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果imageIndex超出界限。 -
IllegalArgumentException- 如果tile索引超出范围。 -
IOException- 如果在阅读期间发生错误。
-
readTileRaster
public Raster readTileRaster(int imageIndex, int tileX, int tileY) throws IOException
返回一个新的Raster对象,其中包含来自图块的原始像素数据,未应用任何颜色转换。 应用程序必须确定如何通过其他方式解释像素数据。如果
canReadRaster()返回false,则此方法抛出UnsupportedOperationException。默认实现检查是否读
Rasters的支持,如果有来电readRaster(imageIndex, null)如果tileX和tileY是0,或将引发IllegalArgumentException否则。- 参数
-
imageIndex- 要检索的图像的索引。 -
tileX- 要检索的tileX的列索引(以0开头)。 -
tileY- 要检索的tileY的行索引(以0开头)。 - 结果
-
瓷砖为
Raster。 - 异常
-
UnsupportedOperationException- 如果此插件不支持读取原始Rasters。 -
IllegalArgumentException- 如果tile索引超出范围。 -
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果imageIndex超出界限。 -
IOException- 如果在读取期间发生错误。 - 另请参见:
-
readTile(int, int, int),readRaster(int, javax.imageio.ImageReadParam),Raster
-
readAsRenderedImage
public RenderedImage readAsRenderedImage(int imageIndex, ImageReadParam param) throws IOException
返回RenderedImage对象,其中包含由imageIndex索引的图像的内容。 默认情况下,返回的图像只是由BufferedImage返回的read(imageIndex, param)。该方法的语义可以从那些的其他不同
read方法在几个方面。 首先,可以忽略在ImageReadParam设置的任何目标图像和/或图像类型。 其次,不保证通常的监听器调用,或者如果它们是有意义的话。 这是因为返回的图像在返回时可能没有完全填充像素数据,或者实际上在任何时候。如果提供的
ImageReadParam包含此阅读器不支持的可选设置值( 例如源渲染大小或任何特定于格式的设置),则将忽略它们。默认实现只调用
read(imageIndex, param)。- 参数
-
imageIndex- 要检索的图像的索引。 -
param-一个ImageReadParam用来控制读取过程中,或null。 - 结果
-
提供图像视图的
RenderedImage对象。 - 异常
-
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IllegalArgumentException- 如果param.getSourceBands和param.getDestinationBands指定的源和目标频带集的长度不同或包含超出范围的索引。 -
IllegalArgumentException- 如果生成的图像的宽度或高度小于1。 -
IOException- 如果在读取期间发生错误。
-
readerSupportsThumbnails
public boolean readerSupportsThumbnails()
如果此阅读器理解的图像格式支持与其关联的缩略图预览图像,则返回true。 默认实现返回false。如果此方法返回
false,hasThumbnails和getNumThumbnails将返回false和0分别和readThumbnail将抛出UnsupportedOperationException,不管他们的论点。不支持缩略图的阅读器无需实现任何与缩略图相关的方法。
- 结果
-
true是否支持缩略图。
-
hasThumbnails
public boolean hasThumbnails(int imageIndex) throws IOException如果给定图像具有与之关联的缩略图预览图像,则返回true。 如果格式不支持缩略图(readerSupportsThumbnails返回false),则无论是否设置了输入源或imageIndex是否在边界内,false将返回imageIndex。如果
getNumThumbnails返回大于0的值,则默认实现返回true。- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
-
true如果给定图像有缩略图。 - 异常
-
IllegalStateException- 如果阅读器支持缩略图但尚未设置输入源。 -
IndexOutOfBoundsException- 如果阅读器支持缩略图,但imageIndex超出范围。 -
IOException- 如果在读取期间发生错误。
-
getNumThumbnails
public int getNumThumbnails(int imageIndex) throws IOException返回与给定图像关联的缩略图预览图像的数量。 如果格式不支持缩略图(readerSupportsThumbnails返回false),则无论是否设置了输入源或imageIndex是否在边界内,0将返回imageIndex。默认实现返回0而不检查其参数。
- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
- 与给定图像关联的缩略图数量。
- 异常
-
IllegalStateException- 如果阅读器支持缩略图但尚未设置输入源。 -
IndexOutOfBoundsException- 如果阅读器支持缩略图,但imageIndex超出范围。 -
IOException- 如果在读取期间发生错误。
-
getThumbnailWidth
public int getThumbnailWidth(int imageIndex, int thumbnailIndex) throws IOException返回由thumbnailIndex索引的缩略图预览图像的宽度,该图像与ImageIndex索引的图像ImageIndex。如果读者不支持缩略图(
readerSupportsThumbnails返回false),则会抛出UnsupportedOperationException。默认实现只返回
readThumbnail(imageindex, thumbnailIndex).getWidth()。 因此,子类应尽可能覆盖此方法,以避免强制读取缩略图。- 参数
-
imageIndex- 要检索的图像的索引。 -
thumbnailIndex- 要检索的缩略图的索引。 - 结果
-
所需缩略图的宽度为
int。 - 异常
-
UnsupportedOperationException- 如果不支持缩略图。 -
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引中的任何一个超出范围。 -
IOException- 如果在阅读期间发生错误。
-
getThumbnailHeight
public int getThumbnailHeight(int imageIndex, int thumbnailIndex) throws IOException返回由thumbnailIndex索引的缩略图预览图像的高度,该图像与ImageIndex索引的图像ImageIndex。如果读者不支持缩略图(
readerSupportsThumbnails返回false),则会抛出UnsupportedOperationException。默认实现只返回
readThumbnail(imageindex, thumbnailIndex).getHeight()。 因此,子类应尽可能覆盖此方法,以避免强制读取缩略图。- 参数
-
imageIndex- 要检索的图像的索引。 -
thumbnailIndex- 要检索的缩略图的索引。 - 结果
-
所需缩略图的高度为
int。 - 异常
-
UnsupportedOperationException- 如果不支持缩略图。 -
IllegalStateException- 如果尚未设置输入源。 -
IndexOutOfBoundsException- 如果提供的索引中的任何一个超出范围。 -
IOException- 如果在阅读期间发生错误。
-
readThumbnail
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- 如果在读取期间发生错误。
-
abort
public void abort()
请求中止任何当前读取操作。 中止后的图像内容将是未定义的。读者应在每次读操作开始时调用
clearAbortRequest,并在读取期间定期轮询abortRequested的值。
-
abortRequested
protected boolean abortRequested()
如果自实例化读取器或clearAbortRequest后已作出中止当前读取操作的请求,则返回true。- 结果
-
true如果当前的读操作应该中止。 - 另请参见:
-
abort(),clearAbortRequest()
-
clearAbortRequest
protected void clearAbortRequest()
清除任何先前的中止请求。 调用此方法后,abortRequested将返回false。- 另请参见:
-
abort(),abortRequested()
-
addIIOReadWarningListener
public void addIIOReadWarningListener(IIOReadWarningListener listener)
将IIOReadWarningListener添加到已注册的警告侦听器列表中。 如果listener是null,则不会抛出任何异常,也不会执行任何操作。 如果可能,发送到给定侦听器的消息将被本地化,以匹配当前的Locale。 如果未设置Locale,则警告消息可能会在读者认为合适时进行本地化。- 参数
-
listener- 待注册IIOReadWarningListener。 - 另请参见:
-
removeIIOReadWarningListener(javax.imageio.event.IIOReadWarningListener)
-
removeIIOReadWarningListener
public void removeIIOReadWarningListener(IIOReadWarningListener listener)
从已注册的错误侦听器列表中删除IIOReadWarningListener。 如果以前没有注册过监听器,或者如果listener是null,则不会抛出异常并且不会采取任何操作。- 参数
-
listener- 要取消注册的IIOReadWarningListener。 - 另请参见:
-
addIIOReadWarningListener(javax.imageio.event.IIOReadWarningListener)
-
removeAllIIOReadWarningListeners
public void removeAllIIOReadWarningListeners()
删除所有当前已注册的IIOReadWarningListener对象。默认实现将
warningListeners和warningLocales实例变量设置为null。
-
addIIOReadProgressListener
public void addIIOReadProgressListener(IIOReadProgressListener listener)
将IIOReadProgressListener添加到已注册的进度监听器列表中。 如果listener是null,则不会抛出任何异常,也不会执行任何操作。- 参数
-
listener- 要注册的IIOReadProgressListener。 - 另请参见:
-
removeIIOReadProgressListener(javax.imageio.event.IIOReadProgressListener)
-
removeIIOReadProgressListener
public void removeIIOReadProgressListener(IIOReadProgressListener listener)
从已注册的进度监听器列表中删除IIOReadProgressListener。 如果以前没有注册过监听器,或者如果listener是null,则不会抛出异常并且不会采取任何操作。- 参数
-
listener- 要取消注册的IIOReadProgressListener。 - 另请参见:
-
addIIOReadProgressListener(javax.imageio.event.IIOReadProgressListener)
-
removeAllIIOReadProgressListeners
public void removeAllIIOReadProgressListeners()
删除所有当前注册的IIOReadProgressListener对象。默认实现将
progressListeners实例变量设置为null。
-
addIIOReadUpdateListener
public void addIIOReadUpdateListener(IIOReadUpdateListener listener)
将IIOReadUpdateListener添加到已注册的更新侦听器列表中。 如果listener是null,则不会抛出任何异常,也不会执行任何操作。 当图像和缩略图被解码时,收听者将接收像素更新的通知,包括渐进传递的开始和结束。如果不存在更新侦听器,则读取器可以选择对目标图像和/或缩略图的像素执行更少的更新,这可以导致更有效的解码。
例如,在渐进式JPEG解码中,每个通道包含对一组系数的更新,如果存在侦听器,则必须将其转换为像素值并且针对每个通道转换为RGB颜色空间。 如果不存在侦听器,则可以简单地累积系数并且最终结果被转换并且仅颜色转换一次。
无论是否执行中间更新,解码的最终结果都是相同的。 因此,如果仅需要最终图像,则可能优选不注册任何
IIOReadUpdateListener。 通常,渐进式更新在通过网络连接获取图像时最有效,与本地CPU处理相比,这种连接速度非常慢; 通过快速连接,渐进式更新实际上可能会降低图像的显示速度。- 参数
-
listener- 要注册的IIOReadUpdateListener。 - 另请参见:
-
removeIIOReadUpdateListener(javax.imageio.event.IIOReadUpdateListener)
-
removeIIOReadUpdateListener
public void removeIIOReadUpdateListener(IIOReadUpdateListener listener)
从已注册的更新侦听器列表中删除IIOReadUpdateListener。 如果先前没有注册过监听器,或者listener是null,则不会抛出异常并且不会采取任何操作。- 参数
-
listener- 要取消注册的IIOReadUpdateListener。 - 另请参见:
-
addIIOReadUpdateListener(javax.imageio.event.IIOReadUpdateListener)
-
removeAllIIOReadUpdateListeners
public void removeAllIIOReadUpdateListeners()
删除所有当前注册的IIOReadUpdateListener对象。默认实现将
updateListeners实例变量设置为null。
-
processSequenceStarted
protected void processSequenceStarted(int minIndex)
通过调用sequenceStarted方法向所有已注册的IIOReadProgressListener广播一系列图像读取的开始。 子类可以使用此方法作为方便。- 参数
-
minIndex- 正在读取的最低索引。
-
processSequenceComplete
protected void processSequenceComplete()
通过调用sequenceComplete方法向所有已注册的IIOReadProgressListener广播完成一系列图像读取。 子类可以使用此方法作为方便。
-
processImageStarted
protected void processImageStarted(int imageIndex)
通过调用imageStarted方法,将读取的图像的开始广播到所有已注册的IIOReadProgressListener。 子类可以使用此方法作为方便。- 参数
-
imageIndex- 即将读取的图像的索引。
-
processImageProgress
protected void processImageProgress(float percentageDone)
通过调用imageProgress方法将当前的图像完成百分比广播到所有已注册的IIOReadProgressListener。 子类可以使用此方法作为方便。- 参数
-
percentageDone- 当前完成比例,为float。
-
processImageComplete
protected void processImageComplete()
通过调用imageComplete方法向所有已注册的IIOReadProgressListener广播完成读取的图像。 子类可以使用此方法作为方便。
-
processThumbnailStarted
protected void processThumbnailStarted(int imageIndex, int thumbnailIndex)通过调用thumbnailStarted方法将缩略图读取的开始广播到所有已注册的IIOReadProgressListener。 子类可以使用此方法作为方便。- 参数
-
imageIndex- 与缩略图关联的图像的索引。 -
thumbnailIndex- 缩略图的索引。
-
processThumbnailProgress
protected void processThumbnailProgress(float percentageDone)
通过调用thumbnailProgress方法将当前缩略图完成百分比广播到所有已注册的IIOReadProgressListener。 子类可以使用此方法作为方便。- 参数
-
percentageDone- 当前完成比例,为float。
-
processThumbnailComplete
protected void processThumbnailComplete()
通过调用thumbnailComplete方法向所有已注册的IIOReadProgressListener广播完成缩略图读取。 子类可以使用此方法作为方便。
-
processReadAborted
protected void processReadAborted()
通过调用readAborted方法广播读取已中止到所有已注册的IIOReadProgressListeners。 子类可以使用此方法作为方便。
-
processPassStarted
protected void processPassStarted(BufferedImage theImage, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)
通过调用他们的passStarted方法将渐进传递的开始广播到所有已注册的IIOReadUpdateListener。 子类可以使用此方法作为方便。- 参数
-
theImage- 正在更新的BufferedImage。 -
pass- 当前传递的索引,从0开始。 -
minPass- 将被解码的第一个传递的索引。 -
maxPass- 将要解码的最后一个传递的索引。 -
minX- 传递中包含的左上角像素的X坐标。 -
minY- 通道中包含的左上角像素的X坐标。 -
periodX- 像素之间的水平间隔。 -
periodY- 像素之间的垂直间隔。 -
bands-的阵列int以及指示该组中的目的地的受影响的频带。
-
processImageUpdate
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-的阵列int以及指示该组中的目的地的受影响的频带。
-
processPassComplete
protected void processPassComplete(BufferedImage theImage)
通过调用他们的passComplete方法向所有已注册的IIOReadUpdateListener广播渐进传递的结束。 子类可以使用此方法作为方便。- 参数
-
theImage- 正在更新的BufferedImage。
-
processThumbnailPassStarted
protected void processThumbnailPassStarted(BufferedImage theThumbnail, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)
通过调用thumbnailPassStarted方法将缩略图渐进传递的开头广播到所有已注册的IIOReadUpdateListener。 子类可以使用此方法作为方便。- 参数
-
theThumbnail- 正在更新的BufferedImage缩略图。 -
pass- 当前传递的索引,从0开始。 -
minPass- 将被解码的第一个传递的索引。 -
maxPass- 将被解码的最后一个传递的索引。 -
minX- 传递中包含的左上角像素的X坐标。 -
minY- 传递中包含的左上角像素的X坐标。 -
periodX- 像素之间的水平间隔。 -
periodY- 像素之间的垂直间距。 -
bands-的阵列int以及指示该组中的目的地的受影响的频带。
-
processThumbnailUpdate
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以及指示该组中的目的地的受影响的频带。
-
processThumbnailPassComplete
protected void processThumbnailPassComplete(BufferedImage theThumbnail)
通过调用thumbnailPassComplete方法将缩略图渐进传递的结尾广播到所有已注册的IIOReadUpdateListener。 子类可以使用此方法作为方便。- 参数
-
theThumbnail- 正在更新的BufferedImage缩略图。
-
processWarningOccurred
protected void processWarningOccurred(String warning)
通过调用warningOccurred方法向所有已注册的IIOReadWarningListener广播警告消息。 子类可以使用此方法作为方便。- 参数
-
warning- 要发送的警告消息。 - 异常
-
IllegalArgumentException- 如果warning是null。
-
processWarningOccurred
protected void processWarningOccurred(String baseName, String keyword)
广播本地化警告消息给所有注册IIOReadWarningListener通过调用它们的SwarningOccurred法从拍摄字符串ResourceBundle。 子类可以使用此方法作为方便。- 参数
-
baseName- 包含本地化警告消息的一组ResourceBundle的基本名称。 -
keyword- 用于索引ResourceBundle集合中的警告消息的关键字。 - 异常
-
IllegalArgumentException- 如果baseName是null。 -
IllegalArgumentException- 如果keyword是null。 -
IllegalArgumentException- 如果找不到合适的ResourceBundle。 -
IllegalArgumentException- 如果在找到的ResourceBundle找不到指定的资源。 -
IllegalArgumentException- 如果从ResourceBundle检索的对象不是String。
-
reset
public void reset()
将ImageReader恢复到其初始状态。默认实现调用
setInput(null, false),setLocale(null),removeAllIIOReadUpdateListeners(),removeAllIIOReadWarningListeners(),removeAllIIOReadProgressListeners()和clearAbortRequest。
-
dispose
public void dispose()
允许释放此对象持有的任何资源。 在调用此方法之后调用任何其他方法(finalize)的结果是未定义的。当应用程序知道他们将不再使用此方法时,重要的是调用此方法
ImageReader。 否则,读者可能会无限期地继续保留资源。超类中此方法的默认实现不执行任何操作。 子类实现应确保释放所有资源,尤其是本机资源。
-
getSourceRegion
protected static Rectangle getSourceRegion(ImageReadParam param, int srcWidth, int srcHeight)
读取器可用于计算应读取的源图像区域的实用方法,同时考虑所提供的ImageReadParam中的任何源区域和子采样偏移设置。 不考虑实际的子采样因子,目的地大小和目的地偏移,因此必须进一步削减。computeRegions方法执行所有必要的裁剪。- 参数
-
param- 正在使用的ImageReadParam,或者null。 -
srcWidth- 源图像的宽度。 -
srcHeight- 源图像的高度。 - 结果
-
源区域为
Rectangle。
-
computeRegions
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- 如果生成的源或目标区域为空。
-
checkReadParamBandSettings
protected static void checkReadParamBandSettings(ImageReadParam param, int numSrcBands, int numDstBands)
一种实用方法,读者可以使用该方法测试ImageReadParam的源和目标波段设置的ImageReadParam。 一旦读取器知道输入流中存在的源图像的带的数量和正被写入的目标图像的带的数量,就可以调用该方法。该方法检索的源和目标频带设定从使用PARAM阵列
getSourceBands种getDestinationBands方法(或认为它们是null如果param是null)。 如果源波段设置阵列是null,则认为它等于阵列{ 0, 1, ..., numSrcBands - 1 },并且类似于目标波段设置阵列。然后,该方法测试两个数组的长度是否相等,并且两个数组都不包含大于最大可用波段索引的值。
任何失败都会导致
IllegalArgumentException被抛出; 成功导致该方法无声返回。- 参数
-
param- 用于读取图像的ImageReadParam。 -
numSrcBands- 输入源中存在的图像的波段数。 -
numDstBands- 正在写入的目标图像中的波段数。 - 异常
-
IllegalArgumentException- 如果param包含源和/或目标频带子集的无效规范。
-
getDestination
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确定图像的尺寸。 正在解码的图像的实际宽度和高度作为width和height参数传递。- 参数
-
param-一个ImageReadParam被用于获取目标图像或图像类型,或null。 -
imageTypes-Iterator的ImageTypeSpecifiers表示合法的图像类型,默认为第一个。 -
width- 正在解码的图像或图块的真实宽度。 -
height- 正在解码的图像或图块的真实宽度。 - 结果
-
应该写入解码像素数据的
BufferedImage。 - 异常
-
IIOException-如果ImageTypeSpecifier通过指定param不会匹配任何法律措施的imageTypes。 -
IllegalArgumentException- 如果imageTypes是null或为空,或者ImageTypeSpecifier检索到类型不是ImageTypeSpecifier的对象。 -
IllegalArgumentException- 如果生成的图像的宽度或高度小于1。 -
IllegalArgumentException- 如果width和height的产品大于Integer.MAX_VALUE。
-
-