Класс 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 Массив |
protected boolean |
ignoreMetadata
|
protected Object |
input
|
protected Locale |
locale Текущий |
protected int |
minIndex Наименьший допустимый индекс для чтения, изначально 0. |
protected ImageReaderSpi |
originatingProvider
|
protected List<IIOReadProgressListener> |
progressListeners
|
protected boolean |
seekForwardOnly
|
protected List<IIOReadUpdateListener> |
updateListeners
|
protected List<IIOReadWarningListener> |
warningListeners
|
protected List<Locale> |
warningLocales
|
Конструкторы
| Модификатор | Конструктор и описание |
|---|---|
protected |
ImageReader(ImageReaderSpi originatingProvider) Конструирует |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
abort() Запрашивает прерывание любой текущей операции чтения. |
protected boolean |
abortRequested() Возвращает |
void |
addIIOReadProgressListener(IIOReadProgressListener listener) Добавляет |
void |
addIIOReadUpdateListener(IIOReadUpdateListener listener) Добавляет |
void |
addIIOReadWarningListener(IIOReadWarningListener listener) Добавляет |
boolean |
canReadRaster() Возвращает |
protected static void |
checkReadParamBandSettings(ImageReadParam param,
int numSrcBands,
int numDstBands) Утилитарный метод, который может использоваться ридерами для проверки корректности настроек исходной и целевой полосы |
protected void |
clearAbortRequest() Очищает предыдущую запрос на прерывание. |
protected static void |
computeRegions(ImageReadParam param,
int srcWidth,
int srcHeight,
BufferedImage image,
Rectangle srcRegion,
Rectangle destRegion) Вычисляет область интереса источника и область интереса назначения, учитывая ширину и высоту исходного изображения, необязательное целевое изображение и необязательный |
void |
dispose() Разрешает освобождение всех ресурсов, удерживаемых этим объектом. |
float |
getAspectRatio(int imageIndex) Возвращает коэффициент масштаба изображения (т. е. его ширину, деленную на высоту) в виде |
Locale[] |
getAvailableLocales() Возвращает массив |
ImageReadParam |
getDefaultReadParam() Возвращает стандартный объект |
protected static BufferedImage |
getDestination(ImageReadParam param,
Iterator<ImageTypeSpecifier> imageTypes,
int width,
int height) Возвращает |
String |
getFormatName() Возвращает |
abstract int |
getHeight(int imageIndex) Возвращает высоту в пикселях данного изображения в пределах входного источника. |
abstract IIOMetadata |
getImageMetadata(int imageIndex) Возвращает объект |
IIOMetadata |
getImageMetadata(int imageIndex,
String formatName,
Set<String> nodeNames) Возвращает объект |
abstract Iterator<ImageTypeSpecifier> |
getImageTypes(int imageIndex) Возвращает |
Object |
getInput() Возвращает |
Locale |
getLocale() Возвращает текущую установку |
int |
getMinIndex() Возвращает минимальный допустимый индекс для чтения изображения, миниатюры или метаданных изображения. |
abstract int |
getNumImages(boolean allowSearch) Возвращает количество изображений, не считая миниатюр, доступных из текущего входного источника. |
int |
getNumThumbnails(int imageIndex) Возвращает количество миниатюрных предварительных просмотров, связанных с данным изображением. |
ImageReaderSpi |
getOriginatingProvider() Возвращает |
ImageTypeSpecifier |
getRawImageType(int imageIndex) Возвращает |
protected static Rectangle |
getSourceRegion(ImageReadParam param,
int srcWidth,
int srcHeight) Утилитарный метод, который может использоваться ридерами для вычисления области исходного изображения, которое должно быть прочитано, учитывая любые настройки области источника и смещения субдискретизации в предоставленном |
abstract IIOMetadata |
getStreamMetadata() Возвращает объект |
IIOMetadata |
getStreamMetadata(String formatName,
Set<String> nodeNames) Возвращает объект |
int |
getThumbnailHeight(int imageIndex,
int thumbnailIndex) Возвращает высоту миниатюры предварительного просмотра с индексом |
int |
getThumbnailWidth(int imageIndex,
int thumbnailIndex) Возвращает ширину миниатюры предварительного просмотра с индексом |
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) Возвращает |
boolean |
isIgnoringMetadata() Возвращает |
boolean |
isImageTiled(int imageIndex) Возвращает |
boolean |
isRandomAccessEasy(int imageIndex) Возвращает |
boolean |
isSeekForwardOnly() Возвращает |
protected void |
processImageComplete() Распространяет завершение чтения изображения всем зарегистрированным |
protected void |
processImageProgress(float percentageDone) Распространяет текущий процент завершения чтения изображения всем зарегистрированным |
protected void |
processImageStarted(int imageIndex) Распространяет начало чтения изображения всем зарегистрированным |
protected void |
processImageUpdate(BufferedImage theImage,
int minX,
int minY,
int width,
int height,
int periodX,
int periodY,
int[] bands) Распространяет обновление набора выборок всем зарегистрированным |
protected void |
processPassComplete(BufferedImage theImage) Распространяет окончание прогрессивного прохода всем зарегистрированным |
protected void |
processPassStarted(BufferedImage theImage,
int pass,
int minPass,
int maxPass,
int minX,
int minY,
int periodX,
int periodY,
int[] bands) Распространяет начало прогрессивного прохода всем зарегистрированным |
protected void |
processReadAborted() Распространяет информацию о прерывании чтения всем зарегистрированным |
protected void |
processSequenceComplete() Распространяет завершение последовательности чтений изображений всем зарегистрированным |
protected void |
processSequenceStarted(int minIndex) Распространяет начало последовательности чтений изображений всем зарегистрированным |
protected void |
processThumbnailComplete() Распространяет завершение чтения миниатюры всем зарегистрированным |
protected void |
processThumbnailPassComplete(BufferedImage theThumbnail) Транслирует завершение прогрессивного построения миниатюры всем зарегистрированным |
protected void |
processThumbnailPassStarted(BufferedImage theThumbnail,
int pass,
int minPass,
int maxPass,
int minX,
int minY,
int periodX,
int periodY,
int[] bands) Транслирует начало прогрессивного построения миниатюры всем зарегистрированным |
protected void |
processThumbnailProgress(float percentageDone) Транслирует текущий процент завершения миниатюры всем зарегистрированным |
protected void |
processThumbnailStarted(int imageIndex,
int thumbnailIndex) Транслирует начало чтения миниатюры всем зарегистрированным |
protected void |
processThumbnailUpdate(BufferedImage theThumbnail,
int minX,
int minY,
int width,
int height,
int periodX,
int periodY,
int[] bands) Транслирует обновление набора образцов в миниатюрном изображении всем зарегистрированным |
protected void |
processWarningOccurred(String warning) Транслирует сообщение об ошибке всем зарегистрированным |
protected void |
processWarningOccurred(String baseName,
String keyword) Транслирует локализованное сообщение об ошибке всем зарегистрированным |
BufferedImage |
read(int imageIndex) Читает изображение с индексом |
abstract BufferedImage |
read(int imageIndex,
ImageReadParam param) Читает изображение с индексом |
IIOImage |
readAll(int imageIndex,
ImageReadParam param) Читает изображение с индексом |
Iterator<IIOImage> |
readAll(Iterator<? extends ImageReadParam> params) Возвращает объект |
RenderedImage |
readAsRenderedImage(int imageIndex,
ImageReadParam param) Возвращает объект |
boolean |
readerSupportsThumbnails() Возвращает |
Raster |
readRaster(int imageIndex,
ImageReadParam param) Возвращает новый объект |
BufferedImage |
readThumbnail(int imageIndex,
int thumbnailIndex) Возвращает миниатюрное предварительное изображение с индексом |
BufferedImage |
readTile(int imageIndex,
int tileX,
int tileY) Читает тайл, указанный параметрами |
Raster |
readTileRaster(int imageIndex,
int tileX,
int tileY) Возвращает новый объект |
void |
removeAllIIOReadProgressListeners() Удаляет все текущие зарегистрированные |
void |
removeAllIIOReadUpdateListeners() Удаляет все текущие зарегистрированные |
void |
removeAllIIOReadWarningListeners() Удаляет все текущие зарегистрированные |
void |
removeIIOReadProgressListener(IIOReadProgressListener listener) Удаляет |
void |
removeIIOReadUpdateListener(IIOReadUpdateListener listener) Удаляет |
void |
removeIIOReadWarningListener(IIOReadWarningListener listener) Удаляет |
void |
reset() Возвращает |
void |
setInput(Object input) Устанавливает в качестве входного источника указанный |
void |
setInput(Object input,
boolean seekForwardOnly) Устанавливает в качестве входного источника указанный |
void |
setInput(Object input,
boolean seekForwardOnly,
boolean ignoreMetadata) Устанавливает в качестве входного источника указанный |
void |
setLocale(Locale locale) Устанавливает текущее значение |
Методы, унаследованные от класса java.lang.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(java.lang.Object, boolean, boolean)
ignoreMetadata
protected boolean ignoreMetadata
Значение true, если текущий источник ввода помечен как допускающий игнорирование метаданных методом setInput. По умолчанию значение false.
- См. также:
setInput(java.lang.Object, boolean, boolean)
minIndex
protected int minIndex
Наименьший допустимый индекс для чтения, изначально 0. Когда seekForwardOnly имеет значение true, различные методы могут генерировать исключение IndexOutOfBoundsException при попытке получить данные, связанные с изображением с меньшим индексом.
availableLocales
protected Locale[] availableLocales
Массив Locale для локализации сообщений об ошибках, или null, если локализация не поддерживается.
locale
protected Locale locale
Текущий Locale для локализации, или null, если не задан.
warningListeners
protected List<IIOReadWarningListener> warningListeners
Список зарегистрированных слушателей List по умолчанию инициализирован как null, что эквивалентно пустому списку List.
warningLocales
protected List<Locale> warningLocales
Список List Locale для каждого зарегистрированного слушателя IIOReadWarningListener, по умолчанию инициализирован как null, что эквивалентно пустому списку List.
progressListeners
protected List<IIOReadProgressListener> progressListeners
Список зарегистрированных слушателей IIOReadProgressListener по умолчанию инициализирован как null, что эквивалентно пустому списку List.
updateListeners
protected List<IIOReadUpdateListener> updateListeners
Список зарегистрированных слушателей 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 будет инициализировано значением 0.
Параметр seekForwardOnly управляет тем, будет ли значение, возвращаемое getMinIndex, увеличиваться при чтении каждого изображения (или миниатюры, или метаданных изображения). Если seekForwardOnly имеет значение true, вызов read(index) выбросит исключение IndexOutOfBoundsException если index < this.minIndex; в противном случае значение minIndex будет установлено в index. Если seekForwardOnly имеет значение false, значение minIndex останется равным 0 независимо от операций чтения.
Параметр ignoreMetadata, если установлен в true, позволяет читателю игнорировать любые метаданные, встречающиеся во время чтения. Последующие вызовы методов getStreamMetadata и getImageMetadata могут вернуть null, а метод 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 будет инициализировано значением 0.
Параметр 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 будет инициализировано значением 0.
Этот метод эквивалентен методу setInput(input, false,
false).
- Параметры:
-
input-ImageInputStreamили другойObjectдля будущего декодирования. - Исключения:
-
IllegalArgumentException- еслиinputне является экземпляром одного из классов, возвращаемых методомgetInputTypesпоставщика услуг, или не являетсяImageInputStream. - См. также:
getInput()
getInput
public Object getInput()
Возвращает ImageInputStream или другой Object установленный в качестве источника ввода. Если источник ввода не установлен, возвращается null.
- Возвращает:
- значение
Object, которое будет использовано для будущего декодирования, илиnull. - См. также:
-
ImageInputStream,setInput(java.lang.Object, boolean, boolean)
isSeekForwardOnly
public boolean isSeekForwardOnly()
Возвращает true, если текущий источник ввода помечен как поддерживающий только поиск вперёд путём передачи true в качестве аргумента seekForwardOnly методу setInput.
- Возвращает:
-
true, если источник ввода поддерживает только поиск вперёд. - См. также:
setInput(java.lang.Object, boolean, boolean)
isIgnoringMetadata
public boolean isIgnoringMetadata()
Возвращает true, если текущий источник ввода помечен как разрешающий игнорирование метаданных путём передачи true в качестве аргумента ignoreMetadata методу setInput.
- Возвращает:
-
true, если метаданные могут быть проигнорированы. - См. также:
setInput(java.lang.Object, boolean, boolean)
getMinIndex
public int getMinIndex()
Возвращает наименьший допустимый индекс для чтения изображения, миниатюры или метаданных изображения. Если seekForwardOnly() равен false, это значение, как правило, останется 0, указывая на возможность произвольного доступа. В противном случае оно будет содержать значение последнего обращённого индекса и монотонно увеличиваться.
- Возвращает:
- минимальный допустимый индекс для чтения.
getAvailableLocales
public Locale[] getAvailableLocales()
Возвращает массив Locale , которые могут быть использованы для локализации слушателей предупреждений и параметров сжатия. Значение null указывает, что локализация не поддерживается.
Реализация по умолчанию возвращает копию переменной availableLocales , если она не null, в противном случае возвращает null.
- Возвращает:
- массив
Locale, которые могут быть использованы в качестве аргументов кsetLocale, илиnull.
setLocale
public void setLocale(Locale locale)
Устанавливает текущую Locale этого ImageReader на заданное значение. Значение null удаляет любое предыдущее значение и указывает, что чтец должен локализовать себя по своему усмотрению.
- Параметры:
-
locale- желаемаяLocale, илиnull. - Исключения:
-
IllegalArgumentException- еслиlocaleне пусто, но не является одним из значений, возвращаемыхgetAvailableLocales. - См. также:
getLocale()
getLocale
public Locale getLocale()
Возвращает текущую Locale, или null , если она не была установлена.
- Возвращает:
- текущую
Locale, илиnull. - См. также:
setLocale(java.util.Locale)
getNumImages
public abstract int getNumImages(boolean allowSearch)
throws IOException Возвращает количество изображений, не включая миниатюры, доступных из текущего источника ввода.
Обратите внимание, что некоторые форматы изображений (например, анимированные GIF) не указывают, сколько изображений присутствует в потоке. Таким образом, определение количества изображений потребует сканирования всего потока и может потребовать буферизацию памяти. Если изображения должны обрабатываться по порядку, может быть эффективнее просто вызывать read с возрастающими индексами до тех пор, пока не будет выброшено исключение IndexOutOfBoundsException, чтобы указать, что больше изображений нет. Параметр allowSearch может быть установлен в false , чтобы указать, что исчерпывающий поиск не требуется; возвращаемое значение будет -1 , чтобы указать, что поиск необходим. Если ввод был указан с seekForwardOnly установленным в true, этот метод выбросит исключение IllegalStateException, если allowSearch установлено в true.
- Параметры:
-
allowSearch- еслиtrue, то фактическое количество изображений будет возвращено, даже если поиск требуется. Еслиfalse, то чтец может вернуть-1без выполнения поиска. - Возвращает:
- количество изображений как
int, или-1еслиallowSearchравноfalseи поиск будет необходим. - Исключения:
-
IllegalStateException- если источник ввода не установлен, или если ввод был задан сseekForwardOnlyустановленным вtrue. -
IOException- если произошла ошибка при чтении информации из источника ввода. - См. также:
setInput(java.lang.Object, boolean, boolean)
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 , которые наиболее точно отражают "сырой" внутренний формат изображения. Например, для JPEG-изображения сырой тип может иметь цветовое пространство YCbCr, даже если изображение обычно преобразуется в цветовое пространство RGB перед отображением. Возвращаемое значение также должно быть включено в список значений, возвращаемых getImageTypes.
Реализация по умолчанию просто возвращает первый элемент из списка, предоставленного getImageType.
- Параметры:
-
imageIndex- индекс запрошенного изображения. - Возвращает:
- значение
ImageTypeSpecifier. - Исключения:
-
IllegalStateException- если источник ввода не установлен. -
IndexOutOfBoundsException- если заданный индекс вне диапазона. -
IOException- если при чтении информации о формате из источника ввода произошла ошибка.
getImageTypes
public abstract Iterator<ImageTypeSpecifier> getImageTypes(int imageIndex)
throws IOException Возвращает Iterator , содержащий возможные типы изображений, в которых заданное изображение может быть декодировано в виде ImageTypeSpecifiers . Будет возвращено по крайней мере один допустимый тип изображения.
Первый элемент итератора должен быть наиболее "естественным" типом для декодирования изображения с минимальными потерями. Например, для JPEG-изображения первым элементом должен быть RGB-образ, даже если данные изображения хранятся во внутренней форме YCbCr.
- Параметры:
-
imageIndex- индекс изображения, котороеretrieved. - Возвращает:
- объект
Iterator, содержащий по крайней мере одинImageTypeSpecifier, представляющий предлагаемые типы изображений для декодирования текущего заданного изображения. - Выбрасывает:
-
IllegalStateException- если исходный источник не задан. -
IndexOutOfBoundsException- если указанный индекс выходит за пределы границ. -
IOException- если при чтении информации о формате из исходного источника произошла ошибка. - См. также:
-
ImageReadParam.setDestination(BufferedImage),ImageReadParam.setDestinationType(ImageTypeSpecifier)
getDefaultReadParam
public ImageReadParam getDefaultReadParam()
Возвращает объект ImageReadParam, подходящий для данного формата. Все подклассы должны определять набор значений по умолчанию для всех параметров и возвращать их с этим вызовом. Этот метод может быть вызван до задания исходного источника.
Реализация по умолчанию создаёт и возвращает новый объект ImageReadParam, который не позволяет масштабировать источник (т.е., возвращает new
ImageReadParam()).
- Возвращает:
- объект
ImageReadParam, который может быть использован для управления процессом декодирования с использованием набора значений по умолчанию.
getStreamMetadata
public abstract IIOMetadata getStreamMetadata()
throws IOException Возвращает объект IIOMetadata, представляющий метаданные, связанные с исходным источником в целом (т. е. не связанные ни с каким конкретным изображением), или null, если читатель не поддерживает чтение метаданных, настроен на игнорирование метаданных или если метаданные недоступны.
- Возвращает:
- объект
IIOMetadata, илиnull. - Выбрасывает:
-
IOException- если при чтении произошла ошибка.
getStreamMetadata
public IIOMetadata getStreamMetadata(String formatName,
Set<String> nodeNames)
throws IOException Возвращает объект IIOMetadata, представляющий метаданные, связанные с исходным источником в целом (т. е. не связанные ни с каким конкретным изображением). Если таких данных нет, возвращается null.
Результирующий объект метаданных отвечает только за возврат документов в формате, указанном formatName. Внутри любых возвращаемых документов требуются только узлы, имена которых являются членами nodeNames. Таким образом, количество обработки метаданных, выполняемой читателем, может быть сведено к минимуму на основе необходимой информации.
Если formatName не является именем поддерживаемого формата метаданных, возвращается null.
Во всех случаях разрешается возвращать объект метаданных с большей функциональностью, чем строго необходимо. Имя формата и имена узлов — это лишь подсказки, которые могут быть использованы для уменьшения нагрузки на читатель.
Реализация по умолчанию просто возвращает результат вызова getStreamMetadata(), проверив, поддерживается ли имя формата. Если нет, возвращается null.
- Параметры:
-
formatName- имя формата метаданных, которое может быть использовано для извлечения документа из возвращаемого объектаIIOMetadata. -
nodeNames- множество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, javax.imageio.ImageReadParam),readTileRaster(int, int, int)
readRaster
public Raster readRaster(int imageIndex,
ImageReadParam param)
throws IOException Возвращает новый объект Raster, содержащий необработанные данные пикселей из потока изображения без применения преобразования цвета. Приложение должно определить способ интерпретации данных пикселей другими средствами. Любые параметры назначения или типа изображения в переданном объекте ImageReadParam игнорируются, но все остальные параметры используются точно так же, как и в методе read, за исключением того, что любой смещение назначения используется как логическое, а не физическое смещение. Размер возвращаемого Raster всегда будет таким же, как у исходной области, ограниченной фактическим изображением. Логические смещения в самом потоке игнорируются.
Этот метод позволяет форматам, которые обычно применяют преобразование цвета, например JPEG, и форматам, которые обычно не имеют связанного цветового пространства, например, данным дистанционного зондирования или медицинской визуализации, предоставлять доступ к необработанным данным пикселей.
Все зарегистрированные readUpdateListener игнорируются, так как нет BufferedImage, но все остальные слушатели вызываются точно так же, как и для метода read.
Если canReadRaster() возвращает false, этот метод выбросит исключение UnsupportedOperationException.
Если предоставленный ImageReadParam содержит значения необязательных настроек, не поддерживаемых этим читателем (например, размер рендеринга источника или настройки, специфичные для формата), они будут проигнорированы.
Реализация по умолчанию выбросит исключение UnsupportedOperationException.
- Параметры:
-
imageIndex- индекс изображения, которое нужно прочитать. -
param-ImageReadParamдля управления процессом чтения, илиnull. - Возвращает:
- необходимую часть изображения в виде
Raster. - Исключения:
-
UnsupportedOperationException- если этот плагин не поддерживает чтение необработанных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) в заданном изображении.
Читатель, для которого смещение сетки плиток всегда имеет одно и то же значение (обычно 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.
Реализация по умолчанию проверяет, поддерживается ли чтение Rasters, и если да, то вызывает readRaster(imageIndex, null), если tileX и tileY равны 0, или выбрасывает IllegalArgumentException в противном случае.
- Параметры:
-
imageIndex- индекс изображения, которое нужно получить. -
tileX- индекс столбца (начиная с 0) извлекаемой плитки. -
tileY- индекс строки (начиная с 0) извлекаемой плитки. - Возвращает:
- плитку в виде
Raster. - Выбрасывает:
-
UnsupportedOperationException- если этот плагин не поддерживает чтение необработанныхRasters. -
IllegalArgumentException- если индексы плитки находятся за пределами допустимого диапазона. -
IllegalStateException- если исходный источник не задан. -
IndexOutOfBoundsException- еслиimageIndexнаходится за пределами допустимого диапазона. -
IOException- если во время чтения произошла ошибка. - См. также:
-
readTile(int, int, int),readRaster(int, javax.imageio.ImageReadParam),Raster
readAsRenderedImage
public RenderedImage readAsRenderedImage(int imageIndex,
ImageReadParam param)
throws IOException Возвращает объект RenderedImage, содержащий содержимое изображения, индексированного по imageIndex. По умолчанию возвращаемое изображение просто BufferedImage , возвращенное read(imageIndex,
param).
Семантика этого метода может отличаться от семантики других методов read несколькими способами. Во-первых, любой целевой образ и/или тип изображения, установленный в ImageReadParam , может быть проигнорирован. Во-вторых, обычные вызовы слушателей не гарантируются и не гарантируется, что они будут осмысленны, если будут сделаны. Это потому, что возвращаемое изображение может быть не полностью заполнено данными пикселей к моменту возврата, или даже в любой момент.
Если предоставленный ImageReadParam содержит значения необязательных настроек, которые не поддерживаются этим читателем (например, размер рендеринга источника или любые настройки, специфичные для формата), они будут проигнорированы.
Реализация по умолчанию просто вызывает read(imageIndex, param).
- Параметры:
-
imageIndex- индекс извлекаемого изображения. -
param- объектImageReadParam, используемый для управления процессом чтения, илиnull. - Возвращает:
- объект
RenderedImage, предоставляющий представление изображения. - Выбрасывает:
-
IllegalStateException- если исходный источник не задан. -
IndexOutOfBoundsException- если предоставленный индекс находится за пределами допустимого диапазона. -
IllegalArgumentException- если набор исходных и целевых полос, указанный вparam.getSourceBandsиparam.getDestinationBands, отличаются по длине или включают индексы, находящиеся за пределами допустимого диапазона. -
IllegalArgumentException- если у результирующего изображения ширина или высота меньше 1. -
IOException- если во время чтения произошла ошибка.
readerSupportsThumbnails
public boolean readerSupportsThumbnails()
Возвращает true , если формат изображения, понятный этому читателю, поддерживает предварительные миниатюрные изображения, связанные с ним. Реализация по умолчанию возвращает false.
Если этот метод возвращает false, hasThumbnails и getNumThumbnails вернут false и 0 соответственно, а readThumbnail выбросит UnsupportedOperationException, независимо от их аргументов.
Читатель, не поддерживающий миниатюры, не должен реализовывать ни один из методов, связанных с миниатюрами.
- Возвращает:
-
trueесли миниатюры поддерживаются.
hasThumbnails
public boolean hasThumbnails(int imageIndex)
throws IOException Возвращает true , если заданное изображение имеет связанные с ним предварительные миниатюрные изображения. Если формат не поддерживает миниатюры (readerSupportsThumbnails возвращает false), false вернется независимо от того, установлен ли исходный источник или imageIndex находится в пределах допустимого диапазона.
Реализация по умолчанию возвращает 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(javax.imageio.event.IIOReadWarningListener)
removeIIOReadWarningListener
public void removeIIOReadWarningListener(IIOReadWarningListener listener)
Удаляет IIOReadWarningListener из списка зарегистрированных слушателей ошибок. Если слушатель не был ранее зарегистрирован, или если listener равно null, исключение не будет выброшено, и никаких действий не будет выполнено.
- Параметры:
-
listener- IIOReadWarningListener для отмены регистрации. - См. также:
addIIOReadWarningListener(javax.imageio.event.IIOReadWarningListener)
removeAllIIOReadWarningListeners
public void removeAllIIOReadWarningListeners()
Удаляет все текущие зарегистрированные объекты IIOReadWarningListener.
Реализация по умолчанию устанавливает переменные экземпляра warningListeners и warningLocales в значение null.
addIIOReadProgressListener
public void addIIOReadProgressListener(IIOReadProgressListener listener)
Добавляет IIOReadProgressListener в список зарегистрированных слушателей прогресса. Если listener равно null, исключение не будет выброшено, и никаких действий не будет выполнено.
- Параметры:
-
listener- IIOReadProgressListener для регистрации. - См. также:
removeIIOReadProgressListener(javax.imageio.event.IIOReadProgressListener)
removeIIOReadProgressListener
public void removeIIOReadProgressListener(IIOReadProgressListener listener)
Удаляет IIOReadProgressListener из списка зарегистрированных слушателей прогресса. Если слушатель не был ранее зарегистрирован, или если listener равно null, исключение не будет выброшено, и никаких действий не будет выполнено.
- Параметры:
-
listener- IIOReadProgressListener для отмены регистрации. - См. также:
addIIOReadProgressListener(javax.imageio.event.IIOReadProgressListener)
removeAllIIOReadProgressListeners
public void removeAllIIOReadProgressListeners()
Удаляет все текущие зарегистрированные объекты IIOReadProgressListener.
Реализация по умолчанию устанавливает переменную экземпляра progressListeners в значение null.
addIIOReadUpdateListener
public void addIIOReadUpdateListener(IIOReadUpdateListener listener)
Добавляет IIOReadUpdateListener в список зарегистрированных слушателей обновлений. Если listener равно null, исключение не будет выброшено, и никаких действий не будет выполнено. Слушатель получит уведомления об обновлениях пикселей по мере декодирования изображений и миниатюр, включая начало и конец проходных процессов.
Если слушатели обновлений отсутствуют, читатель может выбрать выполнение меньшего количества обновлений пикселей целевых изображений и/или миниатюр, что может привести к более эффективному декодированию.
Например, при проходном декодировании JPEG каждый проход содержит обновления набора коэффициентов, которые должны были бы преобразовываться в значения пикселей и преобразовываться в цветовое пространство RGB для каждого прохода, если слушатели присутствуют. Если слушатели отсутствуют, коэффициенты могут быть просто суммированы, а конечные результаты преобразованы и преобразуются в цвет только один раз.
Конечные результаты декодирования будут одинаковыми, независимо от того, выполняются ли промежуточные обновления. Поэтому, если требуется только конечное изображение, может быть предпочтительно не регистрировать IIOReadUpdateListener. Как правило, проходные обновления наиболее эффективны при получении изображений по сетевому соединению, которое очень медленное по сравнению с локальной обработкой процессором; при быстром соединении проходные обновления могут фактически замедлить отображение изображения.
- Параметры:
-
listener- IIOReadUpdateListener для регистрации. - См. также:
removeIIOReadUpdateListener(javax.imageio.event.IIOReadUpdateListener)
removeIIOReadUpdateListener
public void removeIIOReadUpdateListener(IIOReadUpdateListener listener)
Удаляет IIOReadUpdateListener из списка зарегистрированных слушателей обновлений. Если слушатель не был ранее зарегистрирован, или если listener равно null, исключение не будет выброшено, и никаких действий не будет выполнено.
- Параметры:
-
listener- IIOReadUpdateListener для отмены регистрации. - См. также:
addIIOReadUpdateListener(javax.imageio.event.IIOReadUpdateListener)
removeAllIIOReadUpdateListeners
public void removeAllIIOReadUpdateListeners()
Удаляет все текущие зарегистрированные IIOReadUpdateListener объекты.
В реализации по умолчанию переменная экземпляра updateListeners устанавливается в значение null.
processSequenceStarted
protected void processSequenceStarted(int minIndex)
Передает уведомление о начале последовательности считывания изображений всем зарегистрированным 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— изображение назначения, или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 возвращает ненулевое значение, то возвращается это изображение. В противном случае вызывается метод param.getDestinationType, чтобы определить, указан ли определенный тип изображения. Если да, то возвращаемое ImageTypeSpecifier используется после проверки, что оно равно одному из тех, которые включены в imageTypes.
Если param null или вышеперечисленные шаги не дали изображение или ImageTypeSpecifier, используется первое значение, полученное из параметра imageTypes. Обычно вызывающий метод установит imageTypes в значение getImageTypes(imageIndex).
Далее, размеры изображения определяются вызовом computeRegions. Фактическая ширина и высота декодируемого изображения передаются как параметры width и height.
- Параметры:
-
param—ImageReadParamдля получения изображения назначения или типа изображения, илиnull. -
imageTypes—IteratorImageTypeSpecifierс разрешенными типами изображений, где первый — по умолчанию. -
width— фактическая ширина декодируемого изображения или тайла. -
height— фактическая высота декодируемого изображения или тайла. - Возвращает:
BufferedImageдля записи данных декодированных пикселей.- Исключения:
-
IIOException— еслиImageTypeSpecifier, указанный вparam, не совпадает ни с одним из разрешенных вimageTypes. -
IllegalArgumentException— еслиimageTypesявляетсяnullили пустым, или если из него извлекается объект, не являющийсяImageTypeSpecifier. -
IllegalArgumentException— если результирующее изображение будет иметь ширину или высоту меньше 1. -
IllegalArgumentException— если произведениеwidthиheightбольшеInteger.MAX_VALUE.
© 1993, 2020, 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.