Spec-Zone.ru › OpenJDK 25

Класс ImageReader

java.lang.Object
javax.imageio.ImageReader
public abstract class ImageReader extends Object
Абстрактный суперкласс для разбора и декодирования изображений. Этот класс должны наследовать классы, считывающие изображения в рамках платформы Java Image I/O.

Объекты ImageReader обычно создаются классом интерфейса поставщика службы (SPI) для конкретного формата. Классы поставщиков служб (например, экземпляры ImageReaderSpi) регистрируются в IIORegistry, который использует их для распознавания форматов и отображения доступных средств чтения и записи форматов.

При установке источника ввода (с помощью метода setInput) ему может быть присвоен режим «только последовательный поиск». Эта настройка означает, что изображения в источнике ввода будут считываться только по порядку, что может позволить средству чтения избежать кэширования частей входных данных, содержащих данные изображений, которые были считаны ранее.

См. также:
  • ImageWriter
  • IIORegistry
  • ImageReaderSpi

Краткое описание полей

Модификатор и тип Поле Описание
protected Locale[] availableLocales
Массив Locale, который можно использовать для локализации предупреждающих сообщений, или null, если локализация не поддерживается.
protected boolean ignoreMetadata
true, если текущий источник ввода помечен как допускающий игнорирование метаданных методом setInput.
protected Object input
ImageInputStream или другой Object, установленный методом setInput и получаемый методом getInput.
protected Locale locale
Текущий Locale, используемый для локализации, или null, если он не задан.
protected int minIndex
Наименьший допустимый индекс для чтения; изначально равен 0.
protected ImageReaderSpi originatingProvider
Объект ImageReaderSpi, создавший этот объект, или null, если его идентификатор неизвестен или объект отсутствует.
protected List<IIOReadProgressListener> progressListeners
List зарегистрированных в данный момент IIOReadProgressListener; по умолчанию инициализируется значением null, которое является синонимом пустого List.
protected boolean seekForwardOnly
true, если текущий источник ввода помечен методом setInput как допускающий только последовательный поиск.
protected List<IIOReadUpdateListener> updateListeners
List зарегистрированных в данный момент IIOReadUpdateListener; по умолчанию инициализируется значением null, которое является синонимом пустого List.
protected List<IIOReadWarningListener> warningListeners
List зарегистрированных в данный момент IIOReadWarningListener; по умолчанию инициализируется значением null, которое является синонимом пустого List.
protected List<Locale> warningLocales
List объектов Locale, связанных с каждым из зарегистрированных в данный момент IIOReadWarningListener; по умолчанию инициализируется значением null, которое является синонимом пустого List.

Краткое описание конструкторов

ImageReader(ImageReaderSpi originatingProvider)
Модификатор Конструктор Описание
protected
Создает ImageReader и присваивает его полю originatingProvider указанное значение.

Краткое описание методов

Модификатор и тип Метод Описание
void abort()
Запрашивает прерывание текущей операции чтения.
protected boolean abortRequested()
Возвращает true, если с момента создания средства чтения или вызова clearAbortRequest был сделан запрос на прерывание текущей операции чтения.
void addIIOReadProgressListener(IIOReadProgressListener listener)
Добавляет IIOReadProgressListener в список зарегистрированных слушателей хода выполнения.
void addIIOReadUpdateListener(IIOReadUpdateListener listener)
Добавляет IIOReadUpdateListener в список зарегистрированных слушателей обновлений.
void addIIOReadWarningListener(IIOReadWarningListener listener)
Добавляет IIOReadWarningListener в список зарегистрированных слушателей предупреждений.
boolean canReadRaster()
Возвращает true, если этот подключаемый модуль поддерживает чтение только Raster пиксельных данных.
protected static void checkReadParamBandSettings(ImageReadParam param, int numSrcBands, int numDstBands)
Вспомогательный метод, который средства чтения могут использовать для проверки допустимости настроек исходных и целевых полос 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, который можно использовать для локализации слушателей предупреждений и настроек сжатия.
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.
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, связанной с изображением с индексом ImageIndex.
int getThumbnailWidth(int imageIndex, int thumbnailIndex)
Возвращает ширину миниатюры с индексом thumbnailIndex, связанной с изображением с индексом ImageIndex.
int getTileGridXOffset(int imageIndex)
Возвращает координату X верхнего левого угла тайла (0, 0) заданного изображения.
int getTileGridYOffset(int imageIndex)
Возвращает координату Y верхнего левого угла тайла (0, 0) заданного изображения.
int getTileHeight(int imageIndex)
Возвращает высоту тайла заданного изображения.
int getTileWidth(int imageIndex)
Возвращает ширину тайла заданного изображения.
abstract int getWidth(int imageIndex)
Возвращает ширину заданного изображения в пикселях в источнике ввода.
boolean hasThumbnails(int imageIndex)
Возвращает true, если с заданным изображением связаны миниатюры.
boolean isIgnoringMetadata()
Возвращает true, если текущий источник ввода помечен как допускающий игнорирование метаданных путем передачи true в качестве аргумента ignoreMetadata методу setInput.
boolean isImageTiled(int imageIndex)
Возвращает true, если изображение организовано в виде тайлов, то есть равных по размеру неперекрывающихся прямоугольников.
boolean isRandomAccessEasy(int imageIndex)
Возвращает true, если формат хранения заданного изображения не накладывает ограничений на произвольный доступ к пикселям.
boolean isSeekForwardOnly()
Возвращает true, если текущий источник ввода помечен как допускающий только последовательный поиск путем передачи true в качестве аргумента seekForwardOnly методу setInput.
protected void processImageComplete()
Уведомляет всех зарегистрированных объектов IIOReadProgressListener о завершении чтения изображения, вызывая их метод imageComplete.
protected void processImageProgress(float percentageDone)
Сообщает всем зарегистрированным объектам IIOReadProgressListener текущий процент завершения чтения изображения, вызывая их метод imageProgress.
protected void processImageStarted(int imageIndex)
Уведомляет всех зарегистрированных объектов IIOReadProgressListener о начале чтения изображения, вызывая их метод imageStarted.
protected void processImageUpdate(BufferedImage theImage, int minX, int minY, int width, int height, int periodX, int periodY, int[] bands)
Уведомляет всех зарегистрированных объектов IIOReadUpdateListener об обновлении набора отсчетов, вызывая их метод imageUpdate.
protected void processPassComplete(BufferedImage theImage)
Уведомляет всех зарегистрированных объектов IIOReadUpdateListener о завершении прогрессивного прохода, вызывая их метод passComplete.
protected void processPassStarted(BufferedImage theImage, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)
Уведомляет всех зарегистрированных объектов IIOReadUpdateListener о начале прогрессивного прохода, вызывая их метод passStarted.
protected void processReadAborted()
Уведомляет всех зарегистрированных объектов IIOReadProgressListener о прерывании чтения, вызывая их метод readAborted.
protected void processSequenceComplete()
Уведомляет все зарегистрированные объекты IIOReadProgressListener о завершении последовательности чтения изображений, вызывая их метод sequenceComplete.
protected void processSequenceStarted(int minIndex)
Уведомляет все зарегистрированные объекты IIOReadProgressListener о начале последовательности чтения изображений, вызывая их метод sequenceStarted.
protected void processThumbnailComplete()
Уведомляет всех зарегистрированных объектов IIOReadProgressListener о завершении чтения миниатюры, вызывая их метод thumbnailComplete.
protected void processThumbnailPassComplete(BufferedImage theThumbnail)
Уведомляет всех зарегистрированных объектов IIOReadUpdateListener о завершении прогрессивного прохода миниатюры, вызывая их метод thumbnailPassComplete.
protected void processThumbnailPassStarted(BufferedImage theThumbnail, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)
Уведомляет всех зарегистрированных объектов IIOReadUpdateListener о начале прогрессивного прохода миниатюры, вызывая их метод thumbnailPassStarted.
protected void processThumbnailProgress(float percentageDone)
Сообщает всем зарегистрированным объектам IIOReadProgressListener текущий процент завершения чтения миниатюры, вызывая их метод thumbnailProgress.
protected void processThumbnailStarted(int imageIndex, int thumbnailIndex)
Уведомляет всех зарегистрированных объектов IIOReadProgressListener о начале чтения миниатюры, вызывая их метод thumbnailStarted.
protected void processThumbnailUpdate(BufferedImage theThumbnail, int minX, int minY, int width, int height, int periodX, int periodY, int[] bands)
Уведомляет всех зарегистрированных объектов IIOReadUpdateListener об обновлении набора отсчетов в изображении-миниатюре, вызывая их метод thumbnailUpdate.
protected void processWarningOccurred(String warning)
Рассылает предупреждающее сообщение всем зарегистрированным объектам IIOReadWarningListener, вызывая их метод warningOccurred.
protected void processWarningOccurred(String baseName, String keyword)
Рассылает локализованное предупреждающее сообщение всем зарегистрированным объектам IIOReadWarningListener, вызывая их метод warningOccurred со строкой из ResourceBundle.
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, из источника ввода в виде объектов IIOImage.
RenderedImage readAsRenderedImage(int imageIndex, ImageReadParam param)
Возвращает объект RenderedImage, содержащий содержимое изображения с индексом imageIndex.
boolean readerSupportsThumbnails()
Возвращает 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.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

originatingProvider

protected ImageReaderSpi originatingProvider
ImageReaderSpi, создавший этот объект, или null, если его идентификатор неизвестен или такой объект отсутствует. По умолчанию инициализируется значением null.

input

protected Object input
ImageInputStream или другой Object, заданный с помощью setInput и полученный с помощью getInput. По умолчанию инициализируется значением null.

seekForwardOnly

protected boolean seekForwardOnly
true, если для текущего источника входных данных с помощью setInput задан режим, допускающий только перемещение вперёд. По умолчанию значение равно false.
См. также:
  • minIndex
  • setInput(Object, boolean, boolean)

ignoreMetadata

protected boolean ignoreMetadata
true, если для текущего источника входных данных с помощью setInput задан режим, допускающий игнорирование метаданных. По умолчанию значение равно false.
См. также:
  • setInput(Object, boolean, boolean)

minIndex

protected int minIndex
Наименьший допустимый индекс для чтения; исходное значение — 0. Когда seekForwardOnly равно true, различные методы при попытке обратиться к данным изображения с меньшим индексом могут выбросить IndexOutOfBoundsException.
См. также:
  • seekForwardOnly
  • setInput(Object, boolean, boolean)

availableLocales

protected Locale[] availableLocales
Массив объектов Locale, которые могут использоваться для локализации предупреждений, или null, если локализация не поддерживается.

locale

protected Locale locale
Текущий Locale, используемый для локализации, или null, если он не задан.

warningListeners

protected List<IIOReadWarningListener> warningListeners
List зарегистрированных в данный момент объектов IIOReadWarningListener; по умолчанию инициализируется значением null, которое эквивалентно пустому List.

warningLocales

protected List<Locale> warningLocales
List объектов Locale, связанных с каждым зарегистрированным в данный момент объектом IIOReadWarningListener; по умолчанию инициализируется значением null, которое эквивалентно пустому List.

progressListeners

protected List<IIOReadProgressListener> progressListeners
List зарегистрированных в данный момент объектов IIOReadProgressListener; по умолчанию инициализируется значением null, которое эквивалентно пустому List.

updateListeners

protected List<IIOReadUpdateListener> updateListeners
List зарегистрированных в данный момент объектов IIOReadUpdateListener; по умолчанию инициализируется значением null, которое эквивалентно пустому List.

Подробное описание конструкторов

ImageReader

protected ImageReader(ImageReaderSpi originatingProvider)
Создаёт ImageReader и присваивает его полю originatingProvider переданное значение.

Подклассы, использующие расширения, должны предоставлять конструктор с сигнатурой (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 будет инициализировано нулём.

Параметр seekForwardOnly определяет, будет ли значение, возвращаемое getMinIndex, увеличиваться при чтении каждого изображения (или миниатюры, или метаданных изображения). Если seekForwardOnly равно true, вызов 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 по списку, возвращаемому методом 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 будет инициализировано нулём.

Параметр seekForwardOnly определяет, будет ли значение, возвращаемое getMinIndex, увеличиваться при чтении каждого изображения (или миниатюры, или метаданных изображения). Если seekForwardOnly равно true, вызов 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 будет инициализировано нулём.

Этот метод эквивалентен setInput(input, false, false).

Параметры:
input — ImageInputStream или другой Object, который будет использоваться для последующего декодирования.
Выбрасывает:
IllegalArgumentException — если input не является экземпляром одного из классов, возвращённых методом getInputTypes исходного поставщика службы, или не является ImageInputStream.
См. также:
  • getInput()

getInput

public Object getInput()
Возвращает ImageInputStream или другой Object, ранее заданный в качестве источника входных данных. Если источник входных данных не задан, возвращается null.
Возвращает:
Object, который будет использоваться для последующего декодирования, или null.
См. также:
  • ImageInputStream
  • setInput(Object, boolean, boolean)

isSeekForwardOnly

public boolean isSeekForwardOnly()
Возвращает true, если для текущего источника входных данных задан режим перемещения только вперёд: при передаче true в качестве аргумента seekForwardOnly метода setInput.
Возвращает:
true, если источник входных данных допускает перемещение только вперёд.
См. также:
  • setInput(Object, boolean, boolean)

isIgnoringMetadata

public boolean isIgnoringMetadata()
Возвращает true, если для текущего источника входных данных задан режим, допускающий игнорирование метаданных: при передаче true в качестве аргумента ignoreMetadata метода setInput.
Возвращает:
true, если метаданные можно игнорировать.
См. также:
  • setInput(Object, boolean, boolean)

getMinIndex

public int getMinIndex()
Возвращает наименьший допустимый индекс для чтения изображения, миниатюры или метаданных изображения. Если seekForwardOnly() равно false, это значение обычно остаётся равным 0, указывая на возможность произвольного доступа. В противном случае оно содержит значение последнего использованного индекса и монотонно возрастает.
Возвращает:
наименьший допустимый индекс для чтения.

getAvailableLocales

public Locale[] getAvailableLocales()
Возвращает массив объектов Locale, которые могут использоваться для локализации слушателей предупреждений и настроек сжатия. Возвращаемое значение null указывает на то, что локализация не поддерживается.

Реализация по умолчанию возвращает копию переменной экземпляра availableLocales, если она не равна null, иначе возвращает null.

Возвращает:
массив объектов Locale, которые можно использовать в качестве аргументов для setLocale, или null.

setLocale

public void setLocale(Locale locale)
Устанавливает для текущего Locale этого ImageReader указанное значение. Значение null удаляет предыдущую настройку и указывает, что считыватель должен выбрать способ локализации самостоятельно.
Параметры:
locale — требуемый Locale или null.
Выбрасывает:
IllegalArgumentException — если locale не равен null, но не входит в список значений, возвращаемых методом getAvailableLocales.
См. также:
  • getLocale()

getLocale

public Locale getLocale()
Возвращает текущий заданный Locale или null, если он не задан.
Возвращает:
текущий Locale или null.
См. также:
  • setLocale(Locale)

getNumImages

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(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, если считыватель не поддерживает чтение метаданных, настроен на их игнорирование или метаданные отсутствуют.
Возвращает:
объект 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.

Во всех случаях допускается возвращать объект метаданных с возможностями, превосходящими строго необходимые. Имя формата и имена узлов — это лишь подсказки, которые можно использовать для снижения нагрузки на считыватель.

Реализация по умолчанию просто возвращает результат вызова 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 и возвращает его как полное 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.

Фактический возвращаемый BufferedImage будет выбран по алгоритму, определённому методом getDestination.

Все зарегистрированные объекты IIOReadProgressListener будут уведомлены вызовом их метода imageStarted, после чего по мере выполнения чтения будут вызываться их методы imageProgress. В завершение будет вызван их метод imageComplete. Объекты IIOReadUpdateListener могут обновляться и в другие моменты чтения, по мере декодирования пикселей. Наконец, объекты IIOReadWarningListener будут уведомлены о любых некритических предупреждениях, возникших во время декодирования.

Набор считываемых исходных полос и записываемых полос назначения определяется вызовами методов getSourceBands и getDestinationBands для указанного ImageReadParam. Если длины массивов, возвращаемых этими методами, различаются, набор исходных полос содержит индекс, превышающий наибольший доступный индекс исходных данных, или набор полос назначения содержит индекс, превышающий наибольший допустимый индекс назначения, выбрасывается 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 будут уведомлены о любых некритических предупреждениях, возникших во время декодирования.

Набор считываемых исходных полос и записываемых полос назначения определяется вызовами методов getSourceBands и getDestinationBands для указанного ImageReadParam. Если длины массивов, возвращаемых этими методами, различаются, набор исходных полос содержит индекс, превышающий наибольший доступный индекс исходных данных, или набор полос назначения содержит индекс, превышающий наибольший допустимый индекс назначения, выбрасывается IllegalArgumentException.

Миниатюры возвращаются целиком независимо от настроек области.

Если указанный ImageReadParam содержит необязательные параметры, не поддерживаемые этим считывателем (например, размер отрисовки источника или параметры, зависящие от формата), они будут проигнорированы.

Параметры:
imageIndex — индекс получаемого изображения.
param — объект ImageReadParam, используемый для управления процессом чтения, или null.
Возвращает:
объект IIOImage, содержащий нужную часть изображения, набор миниатюр и связанные с изображением метаданные.
Выбрасывает:
IllegalStateException — если источник входных данных не задан.
IndexOutOfBoundsException — если указанный индекс находится вне допустимого диапазона.
IllegalArgumentException — если наборы исходных полос и полос назначения, заданные с помощью param.getSourceBands и param.getDestinationBands, имеют разную длину или содержат индексы вне допустимого диапазона.
IllegalArgumentException — если ширина или высота полученного изображения окажется меньше 1.
IOException — если во время чтения возникает ошибка.

readAll

public Iterator<IIOImage> readAll(Iterator<? extends ImageReadParam> params) throws IOException
Возвращает объект Iterator, содержащий все изображения, миниатюры и метаданные, начиная с индекса, заданного в getMinIndex, из источника входных данных в виде объектов IIOImage. Предоставляется объект Iterator, содержащий объекты ImageReadParam; для каждого изображения, считываемого из источника входных данных, используется один элемент, пока изображения не закончатся. Если в параметрах чтения Iterator закончатся элементы, но в источнике входных данных останутся изображения, для оставшихся изображений будут использоваться параметры чтения по умолчанию.

Если params равен null, для всех изображений будут использоваться параметры чтения по умолчанию.

Фактический BufferedImage, на который ссылается возвращаемый объект IIOImage, будет выбран по алгоритму, определённому методом getDestination.

Все зарегистрированные объекты IIOReadProgressListener будут уведомлены однократным вызовом их метода sequenceStarted. Затем для каждого декодированного изображения будет вызван метод imageStarted, после чего по мере выполнения чтения будут вызываться методы imageProgress, а затем — imageComplete. После декодирования последнего изображения будет вызван метод sequenceComplete. Объекты IIOReadUpdateListener могут обновляться и в другие моменты чтения, по мере декодирования пикселей. Наконец, объекты IIOReadWarningListener будут уведомлены о любых некритических предупреждениях, возникших во время декодирования.

Набор считываемых исходных полос и записываемых полос назначения определяется вызовами методов getSourceBands и getDestinationBands для указанного ImageReadParam. Если длины массивов, возвращаемых этими методами, различаются, набор исходных полос содержит индекс, превышающий наибольший доступный индекс исходных данных, или набор полос назначения содержит индекс, превышающий наибольший допустимый индекс назначения, выбрасывается IllegalArgumentException.

Миниатюры возвращаются целиком независимо от настроек области.

Если какие-либо из указанных объектов ImageReadParam содержат необязательные параметры, не поддерживаемые этим считывателем (например, размер отрисовки источника или параметры, зависящие от формата), они будут проигнорированы.

Параметры:
params — объект Iterator, содержащий объекты ImageReadParam.
Возвращает:
объект Iterator, представляющий содержимое источника входных данных в виде объектов IIOImage.
Выбрасывает:
IllegalStateException — если источник входных данных не задан.
IllegalArgumentException — если какой-либо элемент params, не равный null, не является объектом ImageReadParam.
IllegalArgumentException — если наборы исходных полос и полос назначения, заданные с помощью param.getSourceBands и param.getDestinationBands, имеют разную длину или содержат индексы вне допустимого диапазона.
IllegalArgumentException — если ширина или высота полученного изображения окажется меньше 1.
IOException — если во время чтения возникает ошибка.
См. также:
  • ImageReadParam
  • IIOImage

canReadRaster

public boolean canReadRaster()
Возвращает true, если этот подключаемый модуль поддерживает чтение только Raster пиксельных данных. Если этот метод возвращает false, вызовы методов readRaster или readTileRaster приведут к выбросу UnsupportedOperationException.

Реализация по умолчанию возвращает false.

Возвращает:
true, если этот подключаемый модуль поддерживает чтение необработанных объектов Raster.
См. также:
  • readRaster(int, 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 — если этот подключаемый модуль не поддерживает чтение необработанных объектов Raster.
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
Возвращает координату X верхнего левого угла плитки (0, 0) в указанном изображении.

Считыватель, для которого смещение сетки плиток по X всегда имеет одно и то же значение (обычно 0), может возвращать это значение, не обращаясь к данным изображения. В таких случаях исключение не требуется выбрасывать, даже если источник входных данных не задан или индекс изображения находится вне допустимого диапазона.

Реализация по умолчанию просто возвращает 0, что верно для изображений без разбиения на плитки и для изображений, разбитых на плитки в большинстве форматов. Считыватели, поддерживающие разбиение на плитки со смещениями, отличными от (0, 0), должны переопределить этот метод.

Параметры:
imageIndex — индекс проверяемого изображения.
Возвращает:
смещение сетки плиток по X.
Выбрасывает:
IllegalStateException — если для определения возвращаемого значения требуется источник входных данных, но он не задан.
IndexOutOfBoundsException — если для определения возвращаемого значения необходимо обратиться к изображению, но указанный индекс находится вне допустимого диапазона.
IOException — если во время чтения возникает ошибка.

getTileGridYOffset

public int getTileGridYOffset(int imageIndex) throws IOException
Возвращает координату Y верхнего левого угла плитки (0, 0) в указанном изображении.

Считыватель, для которого смещение сетки плиток по Y всегда имеет одно и то же значение (обычно 0), может возвращать это значение, не обращаясь к данным изображения. В таких случаях исключение не требуется выбрасывать, даже если источник входных данных не задан или индекс изображения находится вне допустимого диапазона.

Реализация по умолчанию просто возвращает 0, что верно для изображений без разбиения на плитки и для изображений, разбитых на плитки в большинстве форматов. Считыватели, поддерживающие разбиение на плитки со смещениями, отличными от (0, 0), должны переопределить этот метод.

Параметры:
imageIndex — индекс проверяемого изображения.
Возвращает:
смещение сетки плиток по Y.
Выбрасывает:
IllegalStateException — если для определения возвращаемого значения требуется источник входных данных, но он не задан.
IndexOutOfBoundsException — если для определения возвращаемого значения необходимо обратиться к изображению, но указанный индекс находится вне допустимого диапазона.
IOException — если во время чтения возникает ошибка.

readTile

public BufferedImage readTile(int imageIndex, int tileX, int tileY) throws IOException
Считывает плитку, указанную аргументами tileX и tileY, и возвращает её в виде BufferedImage. Если аргументы выходят за допустимый диапазон, выбрасывается IllegalArgumentException. Если изображение не разбито на плитки, значения 0, 0 возвращают всё изображение; любые другие значения приводят к выбросу IllegalArgumentException.

Этот метод является лишь вспомогательным эквивалентом вызова read(int, ImageReadParam) с параметрами чтения, задающими область источника со смещениями 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 — если этот подключаемый модуль не поддерживает чтение необработанных объектов Raster.
IllegalArgumentException — если индексы плитки находятся вне допустимого диапазона.
IllegalStateException — если источник входных данных не задан.
IndexOutOfBoundsException — если imageIndex находится вне допустимого диапазона.
IOException — если во время чтения возникает ошибка.
См. также:
  • readTile(int, int, int)
  • readRaster(int, 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 в допустимом диапазоне.

Реализация по умолчанию возвращает true, если метод getNumThumbnails возвращает значение больше 0.

Параметры:
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(IIOReadWarningListener)

removeIIOReadWarningListener

public void removeIIOReadWarningListener(IIOReadWarningListener listener)
Удаляет IIOReadWarningListener из списка зарегистрированных обработчиков ошибок. Если обработчик не был зарегистрирован ранее или listener равен null, исключение не выбрасывается и никаких действий не выполняется.
Параметры:
listener — IIOReadWarningListener, регистрацию которого следует отменить.
См. также:
  • addIIOReadWarningListener(IIOReadWarningListener)

removeAllIIOReadWarningListeners

public void removeAllIIOReadWarningListeners()
Удаляет все зарегистрированные в данный момент объекты IIOReadWarningListener.

Реализация по умолчанию присваивает переменным экземпляра warningListeners и warningLocales значение null.

addIIOReadProgressListener

public void addIIOReadProgressListener(IIOReadProgressListener listener)
Добавляет IIOReadProgressListener в список зарегистрированных обработчиков прогресса. Если listener равен null, исключение не выбрасывается и никаких действий не выполняется.
Параметры:
listener — IIOReadProgressListener для регистрации.
См. также:
  • removeIIOReadProgressListener(IIOReadProgressListener)

removeIIOReadProgressListener

public void removeIIOReadProgressListener(IIOReadProgressListener listener)
Удаляет IIOReadProgressListener из списка зарегистрированных обработчиков прогресса. Если обработчик не был зарегистрирован ранее или listener равен null, исключение не выбрасывается и никаких действий не выполняется.
Параметры:
listener — IIOReadProgressListener, регистрацию которого следует отменить.
См. также:
  • addIIOReadProgressListener(IIOReadProgressListener)

removeAllIIOReadProgressListeners

public void removeAllIIOReadProgressListeners()
Удаляет все зарегистрированные в данный момент объекты IIOReadProgressListener.

Реализация по умолчанию присваивает переменной экземпляра progressListeners значение null.

addIIOReadUpdateListener

public void addIIOReadUpdateListener(IIOReadUpdateListener listener)
Добавляет IIOReadUpdateListener в список зарегистрированных обработчиков обновлений. Если listener равен null, исключение не выбрасывается и никаких действий не выполняется. Обработчик будет получать уведомления об обновлении пикселей по мере декодирования изображений и миниатюр, включая начало и завершение прогрессивных проходов.

Если обработчиков обновлений нет, средство чтения может выполнять меньше обновлений пикселей целевых изображений и/или миниатюр, что может повысить эффективность декодирования.

Например, при прогрессивном декодировании JPEG каждый проход обновляет набор коэффициентов. Если обработчики присутствуют, эти коэффициенты необходимо преобразовывать в значения пикселей и переводить в цветовое пространство RGB на каждом проходе. Если обработчиков нет, коэффициенты можно просто накапливать, а окончательные результаты преобразовать и выполнить цветовое преобразование только один раз.

Окончательные результаты декодирования будут одинаковыми независимо от того, выполнялись ли промежуточные обновления. Поэтому, если требуется только итоговое изображение, может быть предпочтительнее не регистрировать никакие объекты IIOReadUpdateListener. В целом прогрессивное обновление наиболее эффективно при получении изображений по сетевому соединению, которое намного медленнее локальной обработки центральным процессором; при быстром соединении прогрессивные обновления могут фактически замедлить отображение изображения.

Параметры:
listener — IIOReadUpdateListener для регистрации.
См. также:
  • removeIIOReadUpdateListener(IIOReadUpdateListener)

removeIIOReadUpdateListener

public void removeIIOReadUpdateListener(IIOReadUpdateListener listener)
Удаляет IIOReadUpdateListener из списка зарегистрированных обработчиков обновлений. Если обработчик не был зарегистрирован ранее или listener равен null, исключение не выбрасывается и никаких действий не выполняется.
Параметры:
listener — IIOReadUpdateListener, регистрацию которого следует отменить.
См. также:
  • addIIOReadUpdateListener(IIOReadUpdateListener)

removeAllIIOReadUpdateListeners

public void removeAllIIOReadUpdateListeners()
Удаляет все зарегистрированные в данный момент объекты IIOReadUpdateListener.

Реализация по умолчанию присваивает переменной экземпляра updateListeners значение null.

processSequenceStarted

protected void processSequenceStarted(int minIndex)
Рассылает уведомление о начале последовательности чтения изображений всем зарегистрированным обработчикам IIOReadProgressListener, вызывая их метод sequenceStarted. Подклассы могут использовать этот метод для удобства.
Параметры:
minIndex — наименьший индекс считываемого изображения.

processSequenceComplete

protected void processSequenceComplete()
Рассылает уведомление о завершении последовательности чтения изображений всем зарегистрированным обработчикам IIOReadProgressListener, вызывая их метод sequenceComplete. Подклассы могут использовать этот метод для удобства.

processImageStarted

protected void processImageStarted(int imageIndex)
Рассылает уведомление о начале чтения изображения всем зарегистрированным обработчикам IIOReadProgressListener, вызывая их метод imageStarted. Подклассы могут использовать этот метод для удобства.
Параметры:
imageIndex — индекс изображения, чтение которого скоро начнется.

processImageProgress

protected void processImageProgress(float percentageDone)
Рассылает всем зарегистрированным обработчикам IIOReadProgressListener уведомление о текущем проценте завершения чтения изображения, вызывая их метод imageProgress. Подклассы могут использовать этот метод для удобства.
Параметры:
percentageDone — текущий процент выполнения в виде float.

processImageComplete

protected void processImageComplete()
Рассылает уведомление о завершении чтения изображения всем зарегистрированным обработчикам IIOReadProgressListener, вызывая их метод imageComplete. Подклассы могут использовать этот метод для удобства.

processThumbnailStarted

protected void processThumbnailStarted(int imageIndex, int thumbnailIndex)
Рассылает уведомление о начале чтения миниатюры всем зарегистрированным обработчикам IIOReadProgressListener, вызывая их метод thumbnailStarted. Подклассы могут использовать этот метод для удобства.
Параметры:
imageIndex — индекс изображения, с которым связана миниатюра.
thumbnailIndex — индекс миниатюры.

processThumbnailProgress

protected void processThumbnailProgress(float percentageDone)
Рассылает всем зарегистрированным обработчикам IIOReadProgressListener уведомление о текущем проценте завершения чтения миниатюры, вызывая их метод thumbnailProgress. Подклассы могут использовать этот метод для удобства.
Параметры:
percentageDone — текущий процент выполнения в виде float.

processThumbnailComplete

protected void processThumbnailComplete()
Рассылает уведомление о завершении чтения миниатюры всем зарегистрированным обработчикам IIOReadProgressListener, вызывая их метод thumbnailComplete. Подклассы могут использовать этот метод для удобства.

processReadAborted

protected void processReadAborted()
Рассылает уведомление о прерывании чтения всем зарегистрированным обработчикам IIOReadProgressListener, вызывая их метод readAborted. Подклассы могут использовать этот метод для удобства.

processPassStarted

protected void processPassStarted(BufferedImage theImage, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)
Рассылает уведомление о начале прогрессивного прохода всем зарегистрированным обработчикам IIOReadUpdateListener, вызывая их метод passStarted. Подклассы могут использовать этот метод для удобства.
Параметры:
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)
Рассылает уведомление об обновлении набора отсчетов всем зарегистрированным обработчикам IIOReadUpdateListener, вызывая их метод imageUpdate. Подклассы могут использовать этот метод для удобства.
Параметры:
theImage — обновляемый BufferedImage.
minX — координата X верхнего левого пикселя, включенного в проход.
minY — координата X верхнего левого пикселя, включенного в проход.
width — общая ширина обновляемой области, включая пропускаемые пиксели, если periodX > 1.
height — общая высота обновляемой области, включая пропускаемые пиксели, если periodY > 1.
periodX — горизонтальное расстояние между пикселями.
periodY — вертикальное расстояние между пикселями.
bands — массив int, указывающий набор затронутых полос целевого изображения.

processPassComplete

protected void processPassComplete(BufferedImage theImage)
Рассылает уведомление о завершении прогрессивного прохода всем зарегистрированным обработчикам IIOReadUpdateListener, вызывая их метод passComplete. Подклассы могут использовать этот метод для удобства.
Параметры:
theImage — обновляемый BufferedImage.

processThumbnailPassStarted

protected void processThumbnailPassStarted(BufferedImage theThumbnail, int pass, int minPass, int maxPass, int minX, int minY, int periodX, int periodY, int[] bands)
Рассылает уведомление о начале прогрессивного прохода миниатюры всем зарегистрированным обработчикам IIOReadUpdateListener, вызывая их метод thumbnailPassStarted. Подклассы могут использовать этот метод для удобства.
Параметры:
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)
Рассылает уведомление об обновлении набора отсчетов в миниатюре всем зарегистрированным обработчикам IIOReadUpdateListener, вызывая их метод thumbnailUpdate. Подклассы могут использовать этот метод для удобства.
Параметры:
theThumbnail — обновляемая миниатюра BufferedImage.
minX — координата X верхнего левого пикселя, включенного в проход.
minY — координата X верхнего левого пикселя, включенного в проход.
width — общая ширина обновляемой области, включая пропускаемые пиксели, если periodX > 1.
height — общая высота обновляемой области, включая пропускаемые пиксели, если periodY > 1.
periodX — горизонтальное расстояние между пикселями.
periodY — вертикальное расстояние между пикселями.
bands — массив int, указывающий набор затронутых полос целевого изображения.

processThumbnailPassComplete

protected void processThumbnailPassComplete(BufferedImage theThumbnail)
Рассылает уведомление о завершении прогрессивного прохода миниатюры всем зарегистрированным обработчикам IIOReadUpdateListener, вызывая их метод thumbnailPassComplete. Подклассы могут использовать этот метод для удобства.
Параметры:
theThumbnail — обновляемая миниатюра BufferedImage.

processWarningOccurred

protected void processWarningOccurred(String warning)
Рассылает предупреждение всем зарегистрированным обработчикам IIOReadWarningListener, вызывая их метод warningOccurred. Подклассы могут использовать этот метод для удобства.
Параметры:
warning — отправляемое предупреждение.
Вызывает:
IllegalArgumentException — если warning равно null.

processWarningOccurred

protected void processWarningOccurred(String baseName, String keyword)
Рассылает локализованное предупреждение всем зарегистрированным обработчикам IIOReadWarningListener, вызывая их метод warningOccurred со строкой, полученной из 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. Этот метод можно вызвать, когда средству чтения становятся известны как количество полос исходного изображения в потоке ввода, так и количество полос записываемого изображения назначения.

Метод получает из 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 из ImageTypeSpecifier, указывающих допустимые типы изображений; тип по умолчанию должен быть первым.
width - фактическая ширина декодируемого изображения или фрагмента.
height - фактическая ширина декодируемого изображения или фрагмента.
Возвращает:
BufferedImage, в которое следует записать декодированные данные пикселей.
Исключения:
IIOException - если ImageTypeSpecifier, заданный параметром param, не совпадает ни с одним из допустимых типов из imageTypes.
IllegalArgumentException - если imageTypes равно null или пусто либо если из него получен объект типа, отличного от ImageTypeSpecifier.
IllegalArgumentException - если ширина или высота результирующего изображения меньше 1.
IllegalArgumentException - если произведение width и height больше Integer.MAX_VALUE.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/imageio/ImageReader.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API