Класс ImageReader
public abstract class ImageReader extends Object
Объекты ImageReader обычно создаются классом интерфейса поставщика службы (SPI) для конкретного формата. Классы поставщиков служб (например, экземпляры ImageReaderSpi) регистрируются в IIORegistry, который использует их для распознавания форматов и отображения доступных средств чтения и записи форматов.
При установке источника ввода (с помощью метода setInput) ему может быть присвоен режим «только последовательный поиск». Эта настройка означает, что изображения в источнике ввода будут считываться только по порядку, что может позволить средству чтения избежать кэширования частей входных данных, содержащих данные изображений, которые были считаны ранее.
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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 |
progressListeners |
List зарегистрированных в данный момент IIOReadProgressListener; по умолчанию инициализируется значением null, которое является синонимом пустого List. |
protected boolean |
seekForwardOnly |
true, если текущий источник ввода помечен методом setInput как допускающий только последовательный поиск. |
protected List |
updateListeners |
List зарегистрированных в данный момент IIOReadUpdateListener; по умолчанию инициализируется значением null, которое является синонимом пустого List. |
protected List |
warningListeners |
List зарегистрированных в данный момент IIOReadWarningListener; по умолчанию инициализируется значением null, которое является синонимом пустого List. |
protected List |
warningLocales |
List объектов Locale, связанных с каждым из зарегистрированных в данный момент IIOReadWarningListener; по умолчанию инициализируется значением null, которое является синонимом пустого List. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает ImageReader и присваивает его полю originatingProvider указанное значение. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
abort() |
Запрашивает прерывание текущей операции чтения. |
protected boolean |
abortRequested() |
Возвращает true, если с момента создания средства чтения или вызова clearAbortRequest был сделан запрос на прерывание текущей операции чтения. |
void |
addIIOReadProgressListener |
Добавляет IIOReadProgressListener в список зарегистрированных слушателей хода выполнения. |
void |
addIIOReadUpdateListener |
Добавляет IIOReadUpdateListener в список зарегистрированных слушателей обновлений. |
void |
addIIOReadWarningListener |
Добавляет IIOReadWarningListener в список зарегистрированных слушателей предупреждений. |
boolean |
canReadRaster() |
Возвращает true, если этот подключаемый модуль поддерживает чтение только Raster пиксельных данных. |
protected static void |
checkReadParamBandSettings |
Вспомогательный метод, который средства чтения могут использовать для проверки допустимости настроек исходных и целевых полос ImageReadParam. |
protected void |
clearAbortRequest() |
Сбрасывает предыдущий запрос на прерывание. |
protected static void |
computeRegions |
Вычисляет область интереса источника и область интереса назначения с учетом ширины и высоты исходного изображения, необязательного целевого изображения и необязательного ImageReadParam. |
void |
dispose() |
Освобождает все ресурсы, удерживаемые этим объектом. |
float |
getAspectRatio |
Возвращает соотношение сторон заданного изображения (то есть ширину, деленную на высоту) в виде float. |
Locale[] |
getAvailableLocales() |
Возвращает массив Locale, который можно использовать для локализации слушателей предупреждений и настроек сжатия. |
ImageReadParam |
getDefaultReadParam() |
Возвращает объект ImageReadParam по умолчанию, подходящий для этого формата. |
protected static BufferedImage |
getDestination |
Возвращает BufferedImage, в которую следует записать декодированные пиксельные данные. |
String |
getFormatName() |
Возвращает String, определяющий формат источника ввода. |
abstract int |
getHeight |
Возвращает высоту заданного изображения в пикселях в источнике ввода. |
abstract IIOMetadata |
getImageMetadata |
Возвращает объект IIOMetadata, содержащий метаданные заданного изображения, или null, если средство чтения не поддерживает чтение метаданных, настроено на их игнорирование или метаданные отсутствуют. |
IIOMetadata |
getImageMetadata |
Возвращает объект IIOMetadata, представляющий метаданные заданного изображения, или null, если средство чтения не поддерживает чтение метаданных или метаданные отсутствуют. |
abstract Iterator |
getImageTypes |
Возвращает Iterator, содержащий возможные типы изображений, в которые может быть декодировано заданное изображение, в виде объектов ImageTypeSpecifiers. |
Object |
getInput() |
Возвращает ImageInputStream или другой Object, ранее заданный как источник ввода. |
Locale |
getLocale() |
Возвращает текущий Locale или null, если он не задан. |
int |
getMinIndex() |
Возвращает наименьший допустимый индекс для чтения изображения, миниатюры или метаданных изображения. |
abstract int |
getNumImages |
Возвращает количество изображений, не считая миниатюр, доступных в текущем источнике ввода. |
int |
getNumThumbnails |
Возвращает количество миниатюр, связанных с заданным изображением. |
ImageReaderSpi |
getOriginatingProvider() |
Возвращает ImageReaderSpi, переданный конструктору. |
ImageTypeSpecifier |
getRawImageType |
Возвращает ImageTypeSpecifier, указывающий SampleModel и ColorModel, наиболее точно представляющие «сырой» внутренний формат изображения. |
protected static Rectangle |
getSourceRegion |
Вспомогательный метод, который средства чтения могут использовать для вычисления области исходного изображения, которую следует прочитать, с учетом настроек области источника и смещения передискретизации, заданных в переданном ImageReadParam. |
abstract IIOMetadata |
getStreamMetadata() |
Возвращает объект IIOMetadata, представляющий метаданные всего источника ввода (то есть не связанные с каким-либо конкретным изображением), или null, если средство чтения не поддерживает чтение метаданных, настроено на их игнорирование или метаданные отсутствуют. |
IIOMetadata |
getStreamMetadata |
Возвращает объект IIOMetadata, представляющий метаданные всего источника ввода (то есть не связанные с каким-либо конкретным изображением). |
int |
getThumbnailHeight |
Возвращает высоту миниатюры с индексом thumbnailIndex, связанной с изображением с индексом ImageIndex. |
int |
getThumbnailWidth |
Возвращает ширину миниатюры с индексом thumbnailIndex, связанной с изображением с индексом ImageIndex. |
int |
getTileGridXOffset |
Возвращает координату X верхнего левого угла тайла (0, 0) заданного изображения. |
int |
getTileGridYOffset |
Возвращает координату Y верхнего левого угла тайла (0, 0) заданного изображения. |
int |
getTileHeight |
Возвращает высоту тайла заданного изображения. |
int |
getTileWidth |
Возвращает ширину тайла заданного изображения. |
abstract int |
getWidth |
Возвращает ширину заданного изображения в пикселях в источнике ввода. |
boolean |
hasThumbnails |
Возвращает true, если с заданным изображением связаны миниатюры. |
boolean |
isIgnoringMetadata() |
Возвращает true, если текущий источник ввода помечен как допускающий игнорирование метаданных путем передачи true в качестве аргумента ignoreMetadata методу setInput. |
boolean |
isImageTiled |
Возвращает true, если изображение организовано в виде тайлов, то есть равных по размеру неперекрывающихся прямоугольников. |
boolean |
isRandomAccessEasy |
Возвращает true, если формат хранения заданного изображения не накладывает ограничений на произвольный доступ к пикселям. |
boolean |
isSeekForwardOnly() |
Возвращает true, если текущий источник ввода помечен как допускающий только последовательный поиск путем передачи true в качестве аргумента seekForwardOnly методу setInput. |
protected void |
processImageComplete() |
Уведомляет всех зарегистрированных объектов IIOReadProgressListener о завершении чтения изображения, вызывая их метод imageComplete. |
protected void |
processImageProgress |
Сообщает всем зарегистрированным объектам IIOReadProgressListener текущий процент завершения чтения изображения, вызывая их метод imageProgress. |
protected void |
processImageStarted |
Уведомляет всех зарегистрированных объектов IIOReadProgressListener о начале чтения изображения, вызывая их метод imageStarted. |
protected void |
processImageUpdate |
Уведомляет всех зарегистрированных объектов IIOReadUpdateListener об обновлении набора отсчетов, вызывая их метод imageUpdate. |
protected void |
processPassComplete |
Уведомляет всех зарегистрированных объектов IIOReadUpdateListener о завершении прогрессивного прохода, вызывая их метод passComplete. |
protected void |
processPassStarted |
Уведомляет всех зарегистрированных объектов IIOReadUpdateListener о начале прогрессивного прохода, вызывая их метод passStarted. |
protected void |
processReadAborted() |
Уведомляет всех зарегистрированных объектов IIOReadProgressListener о прерывании чтения, вызывая их метод readAborted. |
protected void |
processSequenceComplete() |
Уведомляет все зарегистрированные объекты IIOReadProgressListener о завершении последовательности чтения изображений, вызывая их метод sequenceComplete. |
protected void |
processSequenceStarted |
Уведомляет все зарегистрированные объекты IIOReadProgressListener о начале последовательности чтения изображений, вызывая их метод sequenceStarted. |
protected void |
processThumbnailComplete() |
Уведомляет всех зарегистрированных объектов IIOReadProgressListener о завершении чтения миниатюры, вызывая их метод thumbnailComplete. |
protected void |
processThumbnailPassComplete |
Уведомляет всех зарегистрированных объектов IIOReadUpdateListener о завершении прогрессивного прохода миниатюры, вызывая их метод thumbnailPassComplete. |
protected void |
processThumbnailPassStarted |
Уведомляет всех зарегистрированных объектов IIOReadUpdateListener о начале прогрессивного прохода миниатюры, вызывая их метод thumbnailPassStarted. |
protected void |
processThumbnailProgress |
Сообщает всем зарегистрированным объектам IIOReadProgressListener текущий процент завершения чтения миниатюры, вызывая их метод thumbnailProgress. |
protected void |
processThumbnailStarted |
Уведомляет всех зарегистрированных объектов IIOReadProgressListener о начале чтения миниатюры, вызывая их метод thumbnailStarted. |
protected void |
processThumbnailUpdate |
Уведомляет всех зарегистрированных объектов IIOReadUpdateListener об обновлении набора отсчетов в изображении-миниатюре, вызывая их метод thumbnailUpdate. |
protected void |
processWarningOccurred |
Рассылает предупреждающее сообщение всем зарегистрированным объектам IIOReadWarningListener, вызывая их метод warningOccurred. |
protected void |
processWarningOccurred |
Рассылает локализованное предупреждающее сообщение всем зарегистрированным объектам IIOReadWarningListener, вызывая их метод warningOccurred со строкой из ResourceBundle. |
BufferedImage |
read |
Считывает изображение с индексом imageIndex и возвращает его как полное BufferedImage, используя значение ImageReadParam по умолчанию. |
abstract BufferedImage |
read |
Считывает изображение с индексом imageIndex и возвращает его как полное BufferedImage, используя предоставленный ImageReadParam. |
IIOImage |
readAll |
Считывает изображение с индексом imageIndex и возвращает IIOImage, содержащее изображение, миниатюры и связанные с изображением метаданные, используя предоставленный ImageReadParam. |
Iterator |
readAll |
Возвращает Iterator, содержащий все изображения, миниатюры и метаданные, начиная с индекса getMinIndex, из источника ввода в виде объектов IIOImage. |
RenderedImage |
readAsRenderedImage |
Возвращает объект RenderedImage, содержащий содержимое изображения с индексом imageIndex. |
boolean |
readerSupportsThumbnails() |
Возвращает true, если формат изображения, распознаваемый этим средством чтения, поддерживает связанные с ним миниатюры. |
Raster |
readRaster |
Возвращает новый объект Raster, содержащий исходные пиксельные данные из потока изображения без преобразования цвета. |
BufferedImage |
readThumbnail |
Возвращает миниатюру с индексом thumbnailIndex, связанную с изображением с индексом ImageIndex, в виде BufferedImage. |
BufferedImage |
readTile |
Считывает тайл, указанный аргументами tileX и tileY, и возвращает его как BufferedImage. |
Raster |
readTileRaster |
Возвращает новый объект Raster, содержащий исходные пиксельные данные тайла без преобразования цвета. |
void |
removeAllIIOReadProgressListeners() |
Удаляет все зарегистрированные в данный момент объекты IIOReadProgressListener. |
void |
removeAllIIOReadUpdateListeners() |
Удаляет все зарегистрированные в данный момент объекты IIOReadUpdateListener. |
void |
removeAllIIOReadWarningListeners() |
Удаляет все зарегистрированные в данный момент объекты IIOReadWarningListener. |
void |
removeIIOReadProgressListener |
Удаляет IIOReadProgressListener из списка зарегистрированных слушателей хода выполнения. |
void |
removeIIOReadUpdateListener |
Удаляет IIOReadUpdateListener из списка зарегистрированных слушателей обновлений. |
void |
removeIIOReadWarningListener |
Удаляет IIOReadWarningListener из списка зарегистрированных слушателей ошибок. |
void |
reset() |
Восстанавливает исходное состояние ImageReader. |
void |
setInput |
Задает в качестве источника ввода указанный ImageInputStream или другой Object. |
void |
setInput |
Задает в качестве источника ввода указанный ImageInputStream или другой Object. |
void |
setInput |
Задает в качестве источника ввода указанный ImageInputStream или другой Object. |
void |
setLocale |
Устанавливает текущее значение Locale этого ImageReader. |
Подробное описание полей
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
seekForwardOnly равно true, различные методы при попытке обратиться к данным изображения с меньшим индексом могут выбросить IndexOutOfBoundsException.- См. также:
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. - См. также:
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. - См. также:
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. - См. также:
setInput
public void setInput(Object input)
ImageInputStream или другой Object. Источник входных данных необходимо установить до вызова методов запроса или чтения. Если input равно null, текущий источник входных данных будет удалён. В любом случае значение minIndex будет инициализировано нулём. Этот метод эквивалентен setInput(input, false, false).
- Параметры:
-
input—ImageInputStreamили другойObject, который будет использоваться для последующего декодирования. - Выбрасывает:
-
IllegalArgumentException— еслиinputне является экземпляром одного из классов, возвращённых методомgetInputTypesисходного поставщика службы, или не являетсяImageInputStream. - См. также:
getInput
public Object getInput()
ImageInputStream или другой Object, ранее заданный в качестве источника входных данных. Если источник входных данных не задан, возвращается null.- Возвращает:
Object, который будет использоваться для последующего декодирования, илиnull.- См. также:
isSeekForwardOnly
public boolean isSeekForwardOnly()
true, если для текущего источника входных данных задан режим перемещения только вперёд: при передаче true в качестве аргумента seekForwardOnly метода setInput.- Возвращает:
-
true, если источник входных данных допускает перемещение только вперёд. - См. также:
isIgnoringMetadata
public boolean isIgnoringMetadata()
true, если для текущего источника входных данных задан режим, допускающий игнорирование метаданных: при передаче true в качестве аргумента ignoreMetadata метода setInput.- Возвращает:
-
true, если метаданные можно игнорировать. - См. также:
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
public Locale getLocale()
Locale или null, если он не задан.- Возвращает:
- текущий
Localeилиnull. - См. также:
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— если при чтении информации из источника входных данных произошла ошибка. - См. также:
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— если при чтении информации о формате из источника входных данных произошла ошибка. - См. также:
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— если во время чтения возникает ошибка. - См. также:
canReadRaster
public boolean canReadRaster()
true, если этот подключаемый модуль поддерживает чтение только Raster пиксельных данных. Если этот метод возвращает false, вызовы методов readRaster или readTileRaster приведут к выбросу UnsupportedOperationException. Реализация по умолчанию возвращает false.
- Возвращает:
-
true, если этот подключаемый модуль поддерживает чтение необработанных объектовRaster. - См. также:
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— если во время чтения возникает ошибка. - См. также:
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, что верно для изображений без разбиения на плитки и для изображений, разбитых на плитки в большинстве форматов. Считыватели, поддерживающие разбиение на плитки со смещениями, отличными от (0, 0), должны переопределить этот метод.
- Параметры:
-
imageIndex— индекс проверяемого изображения. - Возвращает:
- смещение сетки плиток по X.
- Выбрасывает:
-
IllegalStateException— если для определения возвращаемого значения требуется источник входных данных, но он не задан. -
IndexOutOfBoundsException— если для определения возвращаемого значения необходимо обратиться к изображению, но указанный индекс находится вне допустимого диапазона. -
IOException— если во время чтения возникает ошибка.
getTileGridYOffset
public int getTileGridYOffset(int imageIndex) throws IOException
Считыватель, для которого смещение сетки плиток по 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— если во время чтения возникает ошибка. - См. также:
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, если текущую операцию чтения следует прервать. - См. также:
clearAbortRequest
protected void clearAbortRequest()
abortRequested будет возвращать false.- См. также:
addIIOReadWarningListener
public void addIIOReadWarningListener(IIOReadWarningListener listener)
IIOReadWarningListener в список зарегистрированных обработчиков предупреждений. Если listener равен null, исключение не выбрасывается и никаких действий не выполняется. Сообщения, отправляемые указанному обработчику, по возможности локализуются в соответствии с текущим значением Locale. Если Locale не задан, средство чтения может локализовать предупреждения по своему усмотрению.- Параметры:
-
listener—IIOReadWarningListenerдля регистрации. - См. также:
removeIIOReadWarningListener
public void removeIIOReadWarningListener(IIOReadWarningListener listener)
IIOReadWarningListener из списка зарегистрированных обработчиков ошибок. Если обработчик не был зарегистрирован ранее или listener равен null, исключение не выбрасывается и никаких действий не выполняется.- Параметры:
-
listener— IIOReadWarningListener, регистрацию которого следует отменить. - См. также:
removeAllIIOReadWarningListeners
public void removeAllIIOReadWarningListeners()
IIOReadWarningListener. Реализация по умолчанию присваивает переменным экземпляра warningListeners и warningLocales значение null.
addIIOReadProgressListener
public void addIIOReadProgressListener(IIOReadProgressListener listener)
IIOReadProgressListener в список зарегистрированных обработчиков прогресса. Если listener равен null, исключение не выбрасывается и никаких действий не выполняется.- Параметры:
-
listener— IIOReadProgressListener для регистрации. - См. также:
removeIIOReadProgressListener
public void removeIIOReadProgressListener(IIOReadProgressListener listener)
IIOReadProgressListener из списка зарегистрированных обработчиков прогресса. Если обработчик не был зарегистрирован ранее или listener равен null, исключение не выбрасывается и никаких действий не выполняется.- Параметры:
-
listener— IIOReadProgressListener, регистрацию которого следует отменить. - См. также:
removeAllIIOReadProgressListeners
public void removeAllIIOReadProgressListeners()
IIOReadProgressListener. Реализация по умолчанию присваивает переменной экземпляра progressListeners значение null.
addIIOReadUpdateListener
public void addIIOReadUpdateListener(IIOReadUpdateListener listener)
IIOReadUpdateListener в список зарегистрированных обработчиков обновлений. Если listener равен null, исключение не выбрасывается и никаких действий не выполняется. Обработчик будет получать уведомления об обновлении пикселей по мере декодирования изображений и миниатюр, включая начало и завершение прогрессивных проходов. Если обработчиков обновлений нет, средство чтения может выполнять меньше обновлений пикселей целевых изображений и/или миниатюр, что может повысить эффективность декодирования.
Например, при прогрессивном декодировании JPEG каждый проход обновляет набор коэффициентов. Если обработчики присутствуют, эти коэффициенты необходимо преобразовывать в значения пикселей и переводить в цветовое пространство RGB на каждом проходе. Если обработчиков нет, коэффициенты можно просто накапливать, а окончательные результаты преобразовать и выполнить цветовое преобразование только один раз.
Окончательные результаты декодирования будут одинаковыми независимо от того, выполнялись ли промежуточные обновления. Поэтому, если требуется только итоговое изображение, может быть предпочтительнее не регистрировать никакие объекты IIOReadUpdateListener. В целом прогрессивное обновление наиболее эффективно при получении изображений по сетевому соединению, которое намного медленнее локальной обработки центральным процессором; при быстром соединении прогрессивные обновления могут фактически замедлить отображение изображения.
- Параметры:
-
listener— IIOReadUpdateListener для регистрации. - См. также:
removeIIOReadUpdateListener
public void removeIIOReadUpdateListener(IIOReadUpdateListener listener)
IIOReadUpdateListener из списка зарегистрированных обработчиков обновлений. Если обработчик не был зарегистрирован ранее или listener равен null, исключение не выбрасывается и никаких действий не выполняется.- Параметры:
-
listener— 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.
© 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