- java.lang.Object
-
- javax.imageio.ImageReader
-
public abstract class ImageReader extends Object
用于解析和解码图像的抽象超类。 这个类必须由在Java Image I / O框架的上下文中读取的类进行子类化。ImageReader对象通常由特定格式的服务提供商接口(SPI)类实例化。 服务提供商类(例如,ImageReaderSpi实例)已注册到IIORegistry,它们用于格式识别和呈现可用格式的读者和作者。当设置输入源(使用
setInput方法)时,可能将其标记为“仅向前寻找”。 此设置意味着输入源中包含的图像只能按顺序读取,可能允许读取器避免缓存包含与先前读取的图像相关联的数据的输入的部分。- 另请参见:
-
ImageWriter,IIORegistry,ImageReaderSpi
-
-
Field Summary
Fields Modifier and Type Field 描述 protected Locale[]availableLocales可用于本地化警告消息的Locale的数组,如果不支持本地化,null。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>warningLocales一个List的Locale与每个当前注册的IIOReadWarningListener相关联,默认初始化为null,这是一个空的List同义词。
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedImageReader(ImageReaderSpi originatingProvider)构造一个ImageReader并将其originatingProvider字段设置为提供的值。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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()返回可用于本地化警告侦听器和压缩设置的Locales的数组。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其中包含可以解码给定图像的可能的图像类型,格式为ImageTypeSpecifierss。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。intgetThumbnailWidth(int imageIndex, int thumbnailIndex)返回由索引的缩略图的预览图像的宽度thumbnailIndex,与由索引的图像相关联ImageIndex。intgetTileGridXOffset(int imageIndex)返回给定图像中瓦片(0,0)左上角的X坐标。intgetTileGridYOffset(int imageIndex)返回给定图像中瓦片(0,0)左上角的Y坐标。intgetTileHeight(int imageIndex)返回给定图像中图块的高度。intgetTileWidth(int imageIndex)返回给定图像中图块的宽度。abstract intgetWidth(int imageIndex)返回输入源中给定图像的宽度(以像素为单位)。booleanhasThumbnails(int imageIndex)如果给定的图像具有与其相关联的缩略图预览图像,则返回true。booleanisIgnoringMetadata()如果当前输入源已被标记为允许通过将true作为ignoreMetadata参数传递给setInput方法的ignoreMetadata来忽略元数据,则返回true。booleanisImageTiled(int imageIndex)如果图像被组织成 瓦片 ,则返回true,即相等大小的非重叠矩形。booleanisRandomAccessEasy(int imageIndex)返回true如果给定图像的存储格式不会对随机访问像素造成固有的障碍。booleanisSeekForwardOnly()返回true如果当前输入源已被标记为寻找前进,则只能通过将true作为seekForwardOnly参数传递给setInput方法。protected voidprocessImageComplete()通过调用他们的imageComplete方法将所读取的图像的完成广播到所有注册的IIOReadProgressListener。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方法,将一组样本的更新广播到所有注册的IIOReadUpdateListener。protected voidprocessPassComplete(BufferedImage theImage)通过调用他们的passComplete方法,将所有已注册的IIOReadUpdateListener传送到所有注册的IIOReadUpdateListener。protected voidprocessPassStarted(BufferedImage theImage, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)通过调用他们的passStarted方法,将所有注册的IIOReadUpdateListener的广告传播到开始。protected voidprocessReadAborted()通过调用它们的readAborted方法,广播已经中止所有注册的所有注册的IIOReadProgressListener。protected voidprocessSequenceComplete()通过调用他们的sequenceComplete方法,将所有注册的IIOReadProgressListener的图像读取序列的完成广播。protected voidprocessSequenceStarted(int minIndex)通过调用sequenceStarted方法,将所有注册的IIOReadProgressListener的图像序列的开始广播。protected voidprocessThumbnailComplete()通过调用thumbnailComplete方法,将所有注册的IIOReadProgressListeners的缩略图读取完成。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)通过使用从ResourceBundle获取的字符串调用其warningOccurred方法向所有注册的IIOReadWarningListener广播本地化警告消息。BufferedImageread(int imageIndex)读取由imageIndex索引的图像,并将其作为完整的BufferedImage返回,使用默认值ImageReadParam。abstract BufferedImageread(int imageIndex, ImageReadParam param)阅读由imageIndex索引的图像,并将其作为完整的BufferedImage返回,使用附带的ImageReadParam。IIOImagereadAll(int imageIndex, ImageReadParam param)读取由索引的图像imageIndex并返回一个IIOImage包含图像,缩略图和相关联的图像元数据,使用所提供的ImageReadParam。Iterator<IIOImage>readAll(Iterator<? extends ImageReadParam> params)返回Iterator包含所有图像,缩略图和元数据,开始由下式给出的指数在getMinIndex,从形式的输入源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的数组,如果不支持本地化,null。
-
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将保持0无论任何读操作。ignoreMetadata参数(如果设置为true)允许读者忽略读取期间遇到的任何元数据。 在后续调用getStreamMetadata种getImageMetadata方法可能会返回null和IIOImage从返回readAll可能返回null从他们getMetadata方法。 设置此参数可能会使读者更有效地工作。 读者可以选择忽略此设置并正常返回元数据。子类应该注意根据前一个流来删除任何缓存的信息,例如标题信息或部分解码的图像数据。
的一般使用
Object比其他ImageInputStream旨在用于直接与捕获设备或图像协议交互的读取器。 这套法律课由读者服务提供商的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将保持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如果当前输入源已经被标记为允许元数据通过传递被忽略true为ignoreMetadata参数传递给setInput方法。- 结果
-
true如果元数据可能被忽略。 - 另请参见:
-
setInput(java.lang.Object, boolean, boolean)
-
getMinIndex
public int getMinIndex()
返回读取图像,缩略图或图像元数据的最低有效索引。 如果seekForwardOnly()为false,则该值通常保持为0,表示随机访问是可能的。 否则,它将包含最近访问的索引的值,并以单调方式增加。- 结果
- 阅读的最低法定指数。
-
getAvailableLocales
public Locale[] getAvailableLocales()
返回可用于本地化警告侦听器和压缩设置的Locales的数组。 返回值为null表示不支持本地化。如果
availableLocales实例变量为非null,默认实现将返回克隆,否则返回null。- 结果
-
的阵列
Locale可用于作为参数为ssetLocale,或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而不执行搜索。 - 结果
-
如
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。所有图像保证支持简单的随机访问或保证不支持简单随机访问的
false分别返回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),ImageReadParam.setDestinationType(ImageTypeSpecifier)
-
getDefaultReadParam
public ImageReadParam getDefaultReadParam()
返回适用于此格式的默认对象ImageReadParam。 所有子类应为所有参数定义一组默认值,并使用此调用返回它们。 可以在设置输入源之前调用此方法。默认实现构造并返回不允许源缩放的新的
ImageReadParam对象( 即 ,它返回new ImageReadParam()。- 结果
-
可以使用一组默认设置来控制解码过程的
ImageReadParam对象。
-
getStreamMetadata
public abstract IIOMetadata getStreamMetadata() throws IOException
返回一个IIOMetadata对象,表示与输入源整体相关的元数据(即不与任何特定图像相关联),如果阅读器不支持读取元数据,则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- aSet包含可能包含在检索到的文档中的节点的名称。 - 结果
-
一个
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- aSet包含可能包含在检索到的文档中的节点的名称。 - 结果
-
一个
IIOMetadata对象,或null。 - 异常
-
IllegalStateException- 如果输入源尚未设置。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IllegalArgumentException- 如果formatName是null。 -
IllegalArgumentException- 如果nodeNames是null。 -
IOException- 读取时是否发生错误。
-
read
public BufferedImage read(int imageIndex) throws IOException
读取imageIndex索引的图像,并将其作为完整的BufferedImage返回,使用默认值ImageReadParam。 这是一个方便的方法,调用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索引的图像,并将其作为完整的BufferedImage返回,使用附带的ImageReadParam。将使用
getDestination方法定义的算法选择实际的BufferedImage返回getDestination。任何注册
IIOReadProgressListener对象将通过调用它们的通知imageStarted方法,然后通过调用其imageProgress方法读取进展。 最后他们将会调用它们的imageComplete方法。IIOReadUpdateListener对象可以在其他时间读出期间像素被解码被更新。 最后,IIOReadWarningListener对象将收到在解码期间发生的任何非致命警告的通知。要读取的源频带组和要写入的目标频带由所提供的
ImageReadParam上的getSourceBands和getDestinationBandsImageReadParam。 如果由这些方法返回的数组的长度不同,则源频带集包含较大的可用源索引,或者目标频带集合包含大于最大合法目标索引的索引的索引,抛出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和getDestinationBandsImageReadParam。 如果这些方法返回的数组的长度不同,则源频带集包含一个较大的索引,即最大的可用源索引,或者目标频段集合包含大于最大合法目标索引的索引,抛出一个IllegalArgumentException。无论区域设置如何,缩略图将全部返回。
如果提供的
ImageReadParam包含此读卡器不支持的可选设置值( 例如源渲染大小或特定于格式的设置),则这些值将被忽略。- 参数
-
imageIndex- 要检索的图像的索引。 -
param-一个ImageReadParam用来控制读取过程中,或null。 - 结果
-
包含图像的期望部分,一组缩略图和相关联的图像元数据的
IIOImage。 - 异常
-
IllegalStateException- 如果输入源未设置。 -
IndexOutOfBoundsException- 如果提供的索引超出范围。 -
IllegalArgumentException- 如果由param.getSourceBands和param.getDestinationBands指定的源和目标频带param.getSourceBandsparam.getDestinationBands不同或包括超出界限的索引。 -
IllegalArgumentException- 如果生成的图像的宽度或高度小于1。 -
IOException- 如果在阅读期间发生错误。
-
readAll
public Iterator<IIOImage> readAll(Iterator<? extends ImageReadParam> params) throws IOException
返回Iterator包含所有图像,缩略图和元数据,开始由下式给出的指数在getMinIndex,从形式的输入源IIOImage对象。 提供一个包含ImageReadParam对象的Iterator; 从输入源读取的每个图像消耗一个元素,直到没有更多的图像可用。 如果读取的参数Iterator用尽了元素,但是仍然有更多的图像可以从输入源,默认读参数用于剩余的图像。如果
params为null,则所有图像都将使用默认阅读参数。实际
BufferedImage由返回引用IIOImage将使用由定义的算法来选择getDestination方法。任何已注册的
IIOReadProgressListener对象将通过其sequenceStarted方法一次通知。 然后,对于每个图像解码,就会有一个电话imageStarted,然后调用imageProgress作为读取进展,最后到imageComplete。sequenceComplete方法将在最后一个图像解码后调用。IIOReadUpdateListener对象可以在其他时间读出期间像素被解码被更新。 最后,IIOReadWarningListener对象将收到在解码期间发生的任何非致命警告的通知。要读取的源频带组和要写入的目标频带由所提供的
ImageReadParam和getDestinationBands调用getSourceBands和getDestinationBands确定。 如果这些方法返回的数组的长度不同,则源频带集包含一个较大的索引,即最大的可用源索引,或者目标频带组包含大于最大合法目的地索引的索引,抛出一个IllegalArgumentException。无论区域设置如何,缩略图将全部返回。
如果提供的任何
ImageReadParam包含此读卡器不支持的可选设置值( 例如源渲染大小或任何特定于格式的设置),它们将被忽略。- 参数
-
params- 一个Iterator包含ImageReadParam对象。 - 结果
-
一个
Iterator表示输入源的内容为IIOImages。 - 异常
-
IllegalStateException- 如果输入源尚未设置。 -
IllegalArgumentException-如果任何非null的元件params不是ImageReadParam。 -
IllegalArgumentException- 如果由param.getSourceBands和param.getDestinationBands指定的源和目标频带的长度不同或包括超出界限的索引。 -
IllegalArgumentException- 如果生成的图像的宽度或高度小于1。 -
IOException- 读取时是否发生错误。 - 另请参见:
-
ImageReadParam,IIOImage
-
canReadRaster
public boolean canReadRaster()
返回true如果此插件支持读取只是一个Raster像素数据。 如果此方法返回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返回给定图像中瓦片(0,0)左上角的X坐标。瓦片网格X偏移总是具有相同值(通常为0)的读取器可以返回该值而不访问任何图像数据。 在这种情况下,即使没有设置输入源或图像索引超出范围,也不必抛出异常。
默认实现只返回0,这对于大多数格式的非平铺图像和平铺图像是正确的。 支持平铺(0,0)偏移量的读者应该覆盖此方法。
- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
- 瓦片网格的X偏移量。
- 异常
-
IllegalStateException- 如果需要输入源来确定返回值,但没有设置。 -
IndexOutOfBoundsException- 如果必须访问映像以确定返回值,但提供的索引超出范围。 -
IOException- 读数时是否发生错误。
-
getTileGridYOffset
public int getTileGridYOffset(int imageIndex) throws IOException返回给定图像中瓦片(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- 要检索的图块的列索引(以0开头)。 -
tileY- 要检索的图块的行索引(以0开头)。 - 结果
-
瓷砖为
BufferedImage。 - 异常
-
IllegalStateException- 如果输入源尚未设置。 -
IndexOutOfBoundsException- 如果imageIndex是超出范围。 -
IllegalArgumentException- 如果图块索引超出界限。 -
IOException- 读取时是否发生错误。
-
readTileRaster
public Raster readTileRaster(int imageIndex, int tileX, int tileY) throws IOException
返回一个新的Raster对象,其中包含来自图块的原始像素数据,而不应用任何颜色转换。 应用程序必须确定如何通过其他方式解释像素数据。如果
canReadRaster()返回false,此方法将抛出UnsupportedOperationException。默认实现检查是否支持阅读
Raster,如果是readRaster(imageIndex, null),如果tileX和tileY为0,或者抛出一个IllegalArgumentException否则。- 参数
-
imageIndex- 要检索的图像的索引。 -
tileX- 要检索的图块的列索引(以0开头)。 -
tileY- 要检索的图块的行索引(以0开头)。 - 结果
-
瓷砖为
Raster。 - 异常
-
UnsupportedOperationException- 如果这个插件不支持阅读原始的Rasters。 -
IllegalArgumentException- 如果图块索引超出范围。 -
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),false时将忽略输入源是否已经设置退回或是否imageIndex是在边界。如果
getNumThumbnails返回大于0的值,则默认实现将返回true。- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
-
true如果给定的图像有缩略图。 - 异常
-
IllegalStateException- 如果阅读器支持缩略图,但输入源尚未设置。 -
IndexOutOfBoundsException- 如果读者支持缩略图,但imageIndex是超出范围。 -
IOException- 读取时是否发生错误。
-
getNumThumbnails
public int getNumThumbnails(int imageIndex) throws IOException返回与给定图像相关联的缩略图预览图像的数量。 如果格式不支持缩略图,(readerSupportsThumbnails返回false),0时将忽略输入源是否已经设置退回或是否imageIndex是在边界。默认实现返回0,而不检查其参数。
- 参数
-
imageIndex- 要查询的图像的索引。 - 结果
- 与给定图像相关联的缩略图数量。
- 异常
-
IllegalStateException- 如果阅读器支持缩略图,但输入源尚未设置。 -
IndexOutOfBoundsException- 如果读者支持缩略图,但imageIndex是超出范围。 -
IOException- 读取时是否发生错误。
-
getThumbnailWidth
public int getThumbnailWidth(int imageIndex, int thumbnailIndex) throws IOException返回由索引的缩略图的预览图像的宽度thumbnailIndex,与由索引的图像相关联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。如果读者不支持缩略图,(
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()
返回true是否已经做出了中止当前读取操作的请求,因为读者被实例化或clearAbortRequest被调用。- 结果
-
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方法,将所有注册的IIOReadProgressListeners的缩略图读取的开始广播。 子类可以方便地使用这种方法。- 参数
-
imageIndex- 与缩略图关联的图像的索引。 -
thumbnailIndex- 缩略图的索引。
-
processThumbnailProgress
protected void processThumbnailProgress(float percentageDone)
通过调用其thumbnailProgress方法将目前的缩略图完成百分比广播到所有注册的IIOReadProgressListener。 子类可以方便地使用这种方法。- 参数
-
percentageDone- 目前的完成百分比,为float。
-
processThumbnailComplete
protected void processThumbnailComplete()
通过调用thumbnailComplete方法将所有注册的IIOReadProgressListener的缩略图读取完成。 子类可以方便地使用这种方法。
-
processReadAborted
protected void processReadAborted()
通过调用它们的readAborted方法广播已读取已被中止到所有注册的IIOReadProgressListener。 子类可以方便地使用这种方法。
-
processPassStarted
protected void processPassStarted(BufferedImage theImage, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)
通过调用他们的passStarted方法,将所有注册的IIOReadUpdateListeners的渐进通过开始广播。 子类可以方便地使用这种方法。- 参数
-
theImage-BufferedImage正在更新。 -
pass- 当前通过的索引,以0开头。 -
minPass- 将被解码的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-ints的数组,表示目的地受影响的一组。
-
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- 将被解码的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方法,将所有注册的IIOReadUpdateListeners的缩略图IIOReadUpdateListener通过thumbnailPassComplete。 子类可以方便地使用这种方法。- 参数
-
theThumbnail- 正在更新的BufferedImage缩略图。
-
processWarningOccurred
protected void processWarningOccurred(String warning)
通过拨打其warningOccurred方法向所有注册的IIOReadWarningListener发送警告信息。 子类可以方便地使用这种方法。- 参数
-
warning- 要发送的警告消息。 - 异常
-
IllegalArgumentException- 如果warning是null。
-
processWarningOccurred
protected void processWarningOccurred(String baseName, String keyword)
通过使用从ResourceBundle获取的字符串调用其warningOccurred方法向所有注册的IIOReadWarningListener播放本地化警告消息。 子类可以方便地使用这种方法。- 参数
-
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- aImageReadParam或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参数的widthheight。- 参数
-
param-一个ImageReadParam被用于获取目标图像或图像类型,或null。 -
imageTypes- 一个Iterator的ImageTypeSpecifiers,指示合法的图像类型,默认为第一个。 -
width- 要解码的图像或图块的真实宽度。 -
height- 正在解码的图像或瓦片的真实宽度。 - 结果
-
应写入解码像素数据的
BufferedImage。 - 异常
-
IIOException-如果ImageTypeSpecifier由指定param不会匹配任何法律措施的imageTypes。 -
IllegalArgumentException- 如果imageTypes为null或为空,或者从其中检索不是类型为ImageTypeSpecifier的对象。 -
IllegalArgumentException- 如果生成的图像的宽度或高度小于1。 -
IllegalArgumentException- 如果width和height的产品大于Integer.MAX_VALUE。
-
-