Класс 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
Объект, который инициализировал этот объект, или null если его идентичность неизвестна или он отсутствует. По умолчанию инициализируется значением null.
input
protected Object input
Входной ImageInputStream или другой Object полученный от setInput и извлечённый getInput. По умолчанию инициализируется значением null.
seekForwardOnly
protected boolean seekForwardOnly
Указывает, если текущий источник ввода помечен как разрешающий только поиск вперёд по setInput. По умолчанию значение false.
- См. также:
-
minIndex,setInput(java.lang.Object, boolean, boolean)
ignoreMetadata
protected boolean ignoreMetadata
Указывает, если текущий источник ввода помечен как разрешающий игнорирование метаданных по 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
Список зарегистрированных IIOReadWarningListener , по умолчанию инициализирован null, что эквивалентно пустому списку.
warningLocales
protected List<Locale> warningLocales
Список Locale связанных с каждым зарегистрированным IIOReadWarningListener, по умолчанию инициализирован null, что эквивалентно пустому списку.
progressListeners
protected List<IIOReadProgressListener> progressListeners
Список зарегистрированных IIOReadProgressListener , по умолчанию инициализирован null, что эквивалентно пустому списку.
updateListeners
protected List<IIOReadUpdateListener> updateListeners
Список зарегистрированных IIOReadUpdateListener , по умолчанию инициализирован null, что эквивалентно пустому списку.
Конструкторы
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 возвращаемое значение из 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неnull, но не является одним из значений, возвращенных методом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- индекс изображения, которое необходимо запросить. - Возвращает:
- a
floatуказывающий на коэффициент пропорциональности заданного изображения. - Выбрасывает:
-
IllegalStateException- если источник ввода не задан. -
IndexOutOfBoundsException- если указанный индекс находится за пределами допустимого диапазона. -
IOException- если при чтении произошла ошибка.
getRawImageType
public ImageTypeSpecifier getRawImageType(int imageIndex)
throws IOException Возвращает ImageTypeSpecifier, указывающий на SampleModel и ColorModel, которые наиболее точно представляют "сырой" внутренний формат изображения. Если точного соответствия нет, должен быть возвращен тип, сохраняющий наибольшее количество информации из изображения. Возвращаемое значение также должно быть включено в список значений, возвращаемых getImageTypes.
Реализация по умолчанию просто возвращает первый элемент из списка, предоставленного getImageType.
- Параметры:
-
imageIndex- индекс изображения, которое необходимо запросить. - Возвращает:
- a
ImageTypeSpecifier. - Выбрасывает:
-
IllegalStateException- если источник ввода не задан. -
IndexOutOfBoundsException- если указанный индекс находится за пределами допустимого диапазона. -
IOException- если при чтении информации о формате из источника ввода произошла ошибка.
getImageTypes
public abstract Iterator<ImageTypeSpecifier> getImageTypes(int imageIndex)
throws IOException Возвращает Iterator, содержащий возможные типы изображений, в которых заданное изображение может быть декодировано, в виде ImageTypeSpecifiers. Будет возвращен как минимум один допустимый тип изображения.
Первый элемент итератора должен быть наиболее "естественным" типом для декодирования изображения с минимальными потерями. Например, для JPEG-изображения первым элементом должно быть RGB-изображение, даже если данные изображения хранятся во внутреннем представлении в цветовом пространстве YCbCr.
- Параметры:
-
imageIndex- индекс изображения, которое необходимоretrieved. - Возвращает:
- a
Iteratorсодержащий как минимум одинImageTypeSpecifierпредставляющий предлагаемые типы изображений для декодирования текущего заданного изображения. - Выбрасывает:
-
IllegalStateException- если источник ввода не задан. -
IndexOutOfBoundsException- если указанный индекс находится за пределами допустимого диапазона. -
IOException- если при чтении информации о формате из источника ввода произошла ошибка. - См. также:
-
ImageReadParam.setDestination(BufferedImage),IIOParam.setDestinationType(ImageTypeSpecifier)
getDefaultReadParam
public ImageReadParam getDefaultReadParam()
Возвращает объект ImageReadParam подходящий по умолчанию для данного формата. Все подклассы должны определять набор значений по умолчанию для всех параметров и возвращать их с этим вызовом. Этот метод может быть вызван до задания источника ввода.
Реализация по умолчанию создает и возвращает новый объект ImageReadParam, который не позволяет масштабировать источник (т.е., возвращает new ImageReadParam()).
- Возвращает:
- объект
ImageReadParamкоторый может использоваться для управления процессом декодирования с использованием набора параметров по умолчанию.
getStreamMetadata
public abstract IIOMetadata getStreamMetadata()
throws IOException Возвращает объект IIOMetadata представляющий метаданные, связанные с источником ввода в целом (т.е., не связанные с каким-либо конкретным изображением), или null если читатель не поддерживает чтение метаданных, установлен в режим игнорирования метаданных или если метаданные недоступны.
- Возвращает:
- объект
IIOMetadata, илиnull. - Выбрасывает:
-
IOException- если при чтении произошла ошибка.
getStreamMetadata
public IIOMetadata getStreamMetadata(String formatName,
Set<String> nodeNames)
throws IOException Возвращает объект IIOMetadata представляющий метаданные, связанные с источником ввода в целом (т.е., не связанные с каким-либо конкретным изображением). Если такие данные отсутствуют, возвращается null.
Результат метаданных ответственен только за возвращение документов в формате, названном formatName. В любых возвращаемых документах должны возвращаться только узлы, имена которых являются элементами nodeNames. Таким образом, объем обработки метаданных читателем может быть сведен к минимуму, исходя из необходимой информации.
Если formatName не является именем поддерживаемого формата метаданных, возвращается null.
Во всех случаях допустимо возвращать более мощный объект метаданных, чем строго необходимо. Имя формата и имена узлов являются всего лишь подсказками, которые могут быть использованы для снижения нагрузки на читатель.
Реализация по умолчанию просто возвращает результат вызова getStreamMetadata(), после проверки, поддерживается ли имя формата. Если нет, возвращается null.
- Параметры:
-
formatName- имя формата метаданных, которое может использоваться для извлечения документа из возвращаемого объектаIIOMetadata. -
nodeNames- объектSet, содержащий имена узлов, которые могут быть включены в извлеченный документ. - Возвращает:
- объект
IIOMetadata, илиnull. - Выбрасывает:
-
IllegalArgumentException- еслиformatNameимеет значениеnull. -
IllegalArgumentException- еслиnodeNamesимеет значениеnull. -
IOException- если при чтении произошла ошибка.
getImageMetadata
public abstract IIOMetadata getImageMetadata(int imageIndex)
throws IOException Возвращает объект IIOMetadata, содержащий метаданные, связанные с заданным изображением, или null, если чтец не поддерживает чтение метаданных, установлен параметр игнорирования метаданных или метаданные отсутствуют.
- Параметры:
-
imageIndex- индекс изображения, метаданные которого необходимо получить. - Возвращает:
- объект
IIOMetadata, илиnull. - Выбрасывает:
-
IllegalStateException- если источник ввода не задан. -
IndexOutOfBoundsException- если указанный индекс выходит за пределы допустимого диапазона. -
IOException- если при чтении произошла ошибка.
getImageMetadata
public IIOMetadata getImageMetadata(int imageIndex,
String formatName,
Set<String> nodeNames)
throws IOException Возвращает объект IIOMetadata, представляющий метаданные, связанные с заданным изображением, или null, если чтец не поддерживает чтение метаданных или они отсутствуют.
Возвращаемый объект метаданных отвечает только за возвращение документов в формате, указанном в formatName. В любых возвращаемых документах требуются только узлы, имена которых являются членами множества nodeNames. Таким образом, объем обработки метаданных, выполняемой чтецом, может быть сведен к минимуму, основываясь на необходимой информации.
Если formatName не является именем поддерживаемого формата метаданных, может быть возвращено значение null.
Во всех случаях допустимо возвращать объект метаданных с большей функциональностью, чем строго необходимо. Имя формата и имена узлов — это лишь подсказки, которые могут использоваться для уменьшения нагрузки на чтец.
Реализация по умолчанию просто возвращает результат вызова getImageMetadata(imageIndex), после проверки поддержки формата. Если нет, возвращается null.
- Параметры:
-
imageIndex- индекс изображения, метаданные которого необходимо получить. -
formatName- имя формата метаданных, которое может использоваться для извлечения документа из возвращаемого объектаIIOMetadata. -
nodeNames- объектSet, содержащий имена узлов, которые могут быть включены в извлеченный документ. - Возвращает:
- объект
IIOMetadata, илиnull. - Выбрасывает:
-
IllegalStateException- если источник ввода не задан. -
IndexOutOfBoundsException- если указанный индекс выходит за пределы допустимого диапазона. -
IllegalArgumentException- еслиformatNameимеет значениеnull. -
IllegalArgumentException- еслиnodeNamesимеет значениеnull. -
IOException- если при чтении произошла ошибка.
read
public BufferedImage read(int imageIndex)
throws IOException Считывает изображение с индексом imageIndex и возвращает его как полное BufferedImage, используя параметр ImageReadParam по умолчанию. Это вспомогательный метод, вызывающий read(imageIndex, null).
Возвращаемое изображение будет отформатировано в соответствии с первым ImageTypeSpecifier возвращенным getImageTypes.
Все зарегистрированные объекты IIOReadProgressListener будут уведомлены вызовом их метода imageStarted, за которым следуют вызовы их методов imageProgress по мере прогресса чтения. В завершении будет вызван метод imageComplete. Объекты IIOReadUpdateListener могут обновляться в другие моменты во время чтения по мере декодирования пикселей. Наконец, объекты IIOReadWarningListener получат уведомление о любых некритичных предупреждениях, возникающих во время декодирования.
- Параметры:
-
imageIndex- индекс изображения для извлечения. - Возвращает:
- требуемую часть изображения в виде
BufferedImage. - Выбрасывает:
-
IllegalStateException- если источник ввода не задан. -
IndexOutOfBoundsException- если указанный индекс выходит за пределы допустимого диапазона. -
IOException- если при чтении произошла ошибка.
read
public abstract BufferedImage read(int imageIndex,
ImageReadParam param)
throws IOException Считывает изображение с индексом imageIndex и возвращает его как полное BufferedImage, используя предоставленный параметр ImageReadParam.
Фактически возвращаемое BufferedImage будет выбрано по алгоритму, определенному методом getDestination.
Все зарегистрированные объекты IIOReadProgressListener будут уведомлены вызовом метода imageStarted, за которым следуют вызовы метода imageProgress по мере прогресса чтения. В завершении будет вызван метод imageComplete. Объекты IIOReadUpdateListener могут обновляться в другие моменты во время чтения по мере декодирования пикселей. Наконец, объекты IIOReadWarningListener получат уведомление о любых некритичных предупреждениях, возникающих во время декодирования.
Множество считываемых исходных полос и записываемых целевых полос определяется путем вызова getSourceBands и getDestinationBands на предоставленном ImageReadParam. Если длины массивов, возвращенных этими методами, отличаются, множество исходных полос содержит индекс, больший, чем наибольший доступный индекс источника, или множество целевых полос содержит индекс, больший, чем наибольший допустимый индекс назначения, будет выброшено исключение IllegalArgumentException.
Если предоставленный ImageReadParam содержит значения необязательных настроек, не поддерживаемые этим чтецом (например, размер рендеринга источника или любые настройки, специфичные для формата), они будут проигнорированы.
- Параметры:
-
imageIndex- индекс изображения для извлечения. -
param- объектImageReadParamиспользуемый для управления процессом чтения, илиnull. - Возвращает:
- требуемую часть изображения в виде
BufferedImage. - Выбрасывает:
-
IllegalStateException- если источник ввода не задан. -
IndexOutOfBoundsException- если указанный индекс выходит за пределы допустимого диапазона. -
IllegalArgumentException- если множества исходных и целевых полос, определенныеparam.getSourceBandsиparam.getDestinationBands, отличаются по длине или содержат индексы, выходящие за пределы допустимого диапазона. -
IllegalArgumentException- если полученное изображение будет иметь ширину или высоту менее 1. -
IOException- если при чтении произошла ошибка.
readAll
public IIOImage readAll(int imageIndex,
ImageReadParam param)
throws IOException Считывает изображение с индексом imageIndex и возвращает объект IIOImage, содержащий изображение, миниатюры и связанные метаданные изображения, используя предоставленный параметр ImageReadParam.
Фактически ссылаемое BufferedImage объект в возвращенном объекте IIOImage будет выбран с помощью алгоритма, определенного методом getDestination.
Все зарегистрированные объекты IIOReadProgressListener будут уведомлены вызовом метода imageStarted, за которым следуют вызовы методов imageProgress по мере прогресса чтения. В завершении будет вызван метод imageComplete. Объекты IIOReadUpdateListener могут обновляться в другие моменты во время чтения по мере декодирования пикселей. Наконец, объекты IIOReadWarningListener получат уведомление о любых некритичных предупреждениях, возникающих во время декодирования.
Множество считываемых исходных полос и записываемых целевых полос определяется путем вызова getSourceBands и getDestinationBands на предоставленном ImageReadParam. Если длины массивов, возвращенных этими методами, отличаются, множество исходных полос содержит индекс, больший, чем наибольший доступный индекс источника, или множество целевых полос содержит индекс, больший, чем наибольший допустимый индекс назначения, будет выброшено исключение IllegalArgumentException.
Миниатюры будут возвращены полностью независимо от настроек области.
Если предоставленный ImageReadParam содержит значения необязательных настроек, не поддерживаемые этим чтецом (например, размер рендеринга источника или любые настройки, специфичные для формата), эти значения будут проигнорированы.
- Параметры:
-
imageIndex- индекс изображения для извлечения. -
param- объектImageReadParamиспользуемый для управления процессом чтения, илиnull. - Возвращает:
- объект
IIOImage, содержащий требуемую часть изображения, набор миниатюр и связанные метаданные изображения. - Выбрасывает:
-
IllegalStateException- если источник ввода не задан. -
IndexOutOfBoundsException- если указанный индекс выходит за пределы допустимого диапазона. -
IllegalArgumentException- если множества исходных и целевых полос, определенныеparam.getSourceBandsиparam.getDestinationBands, отличаются по длине или содержат индексы, выходящие за пределы допустимого диапазона. -
IllegalArgumentException- если полученное изображение будет иметь ширину или высоту менее 1. -
IOException- если при чтении произошла ошибка.
readAll
public Iterator<IIOImage> readAll(Iterator<? extends ImageReadParam> params)
throws IOException Возвращает Iterator содержащий все изображения, миниатюры и метаданные, начиная с индекса, заданного getMinIndex, из входного источника в виде объектов IIOImage. Поставляется Iterator содержащий объекты ImageReadParam; каждый прочитанный из входного источника элемент используется для одного изображения, пока не будут доступны больше изображений. Если у параметра чтения Iterator закончились элементы, но из входного источника все ещё доступны изображения, для оставшихся изображений используются параметры чтения по умолчанию.
Если params равно null, для всех изображений будет использован параметр чтения по умолчанию.
Фактический BufferedImage, на который ссылается возвращаемый IIOImage, будет выбран с использованием алгоритма, определенного методом getDestination.
Все зарегистрированные объекты IIOReadProgressListener будут уведомлены вызовом их метода sequenceStarted один раз. Затем, для каждого декодированного изображения, будет вызов метода imageStarted, за которым последуют вызовы метода imageProgress по мере продвижения чтения, и, наконец, вызов метода imageComplete. Метод sequenceComplete будет вызван после декодирования последнего изображения. Объекты IIOReadUpdateListener могут быть обновлены в другое время во время чтения по мере декодирования пикселей. Наконец, объекты IIOReadWarningListener получат уведомление о любых некритичных предупреждениях, возникающих во время декодирования.
Набор считываемых исходных каналов и записываемых целевых каналов определяется вызовом методов getSourceBands и getDestinationBands на предоставленном ImageReadParam. Если длины массивов, возвращаемых этими методами, различаются, набор исходных каналов содержит индекс, больший, чем наибольший доступный индекс исходного канала, или набор целевых каналов содержит индекс, больший, чем наибольший допустимый индекс целевого канала, будет выброшено исключение IllegalArgumentException.
Миниатюры будут возвращены полностью, независимо от настроек области.
Если какие-либо из предоставленных ImageReadParam содержат значения необязательных настроек, не поддерживаемые этим чтецом (например, размер рендеринга источника или любые настройки, специфичные для формата), они будут проигнорированы.
- Параметры:
-
params-Iteratorсодержащий объектыImageReadParam. - Возвращает:
Iteratorпредставляющий содержимое входного источника в видеIIOImage.- Исключения:
-
IllegalStateException- если входной источник не задан. -
IllegalArgumentException- если любой элементparams, не являющийся элементомnull, не являетсяImageReadParam. -
IllegalArgumentException- если набор исходных и целевых каналов, определённыйparam.getSourceBandsиparam.getDestinationBands, различается по длине или содержит индексы, выходящие за пределы допустимого диапазона. -
IllegalArgumentException- если размер изображения будет меньше 1. -
IOException- если при чтении произошла ошибка. - См. также:
-
ImageReadParam,IIOImage
canReadRaster
public boolean canReadRaster()
Возвращает true, если этот плагин поддерживает чтение только Raster данных пикселей. Если этот метод возвращает false, вызовы readRaster или readTileRaster выбросят исключение UnsupportedOperationException.
Реализация по умолчанию возвращает false.
- Возвращает:
-
trueесли этот плагин поддерживает чтение сырыхRaster. - См. также:
-
readRaster(int, 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, что верно для изображений без разбиения на плитки и изображений с разбиением на плитки в большинстве форматов. Чтецы, поддерживающие разбиение на плитки с смещениями, отличными от (0, 0), должны переопределить этот метод.
- Параметры:
-
imageIndex- индекс изображения для запроса. - Возвращает:
- смещение сетки плиток по оси X.
- Исключения:
-
IllegalStateException- если для определения возвращаемого значения требуется источник ввода, но он не задан. -
IndexOutOfBoundsException- если для определения возвращаемого значения необходимо обращение к изображению, но предоставленный индекс находится вне допустимого диапазона. -
IOException- если при чтении произошла ошибка.
getTileGridYOffset
public int getTileGridYOffset(int imageIndex)
throws IOException Возвращает координату Y верхнего левого угла плитки (0, 0) в заданном изображении.
Чтец, для которого смещение сетки плиток всегда имеет одно и то же значение (обычно 0), может вернуть значение без доступа к данным изображения. В таких случаях нет необходимости выбрасывать исключение, даже если источник ввода не задан или индекс изображения находится вне допустимого диапазона.
Реализация по умолчанию просто возвращает 0, что верно для изображений без разбиения на плитки и изображений с разбиением на плитки в большинстве форматов. Чтецы, поддерживающие разбиение на плитки с смещениями, отличными от (0, 0), должны переопределить этот метод.
- Параметры:
-
imageIndex- индекс изображения, которое необходимо запросить. - Возвращает:
- смещение по Y сетки плиток.
- Исключения:
-
IllegalStateException- если для определения возвращаемого значения требуется источник входных данных, но он не установлен. -
IndexOutOfBoundsException- если для определения возвращаемого значения необходимо получить доступ к изображению, но предоставленный индекс выходит за границы. -
IOException- если во время чтения произошла ошибка.
readTile
public BufferedImage readTile(int imageIndex,
int tileX,
int tileY)
throws IOException Читает плитку, указанную аргументами tileX и tileY, возвращая её как BufferedImage. Если аргументы выходят за пределы допустимого диапазона, генерируется исключение IllegalArgumentException. Если изображение не является мозаичным, значения 0, 0 вернут всё изображение; любые другие значения приведут к генерации исключения IllegalArgumentException.
Этот метод является просто удобным эквивалентом вызова read(int, ImageReadParam) с параметром чтения, указывающим на область источника, имеющую смещения tileX*getTileWidth(imageIndex), tileY*getTileHeight(imageIndex) и ширину и высоту getTileWidth(imageIndex), getTileHeight(imageIndex); и коэффициенты субдискретизации 1 и смещения 0. Для субдискретизации плитки вызовите read с параметром чтения, указывающим эту область и другие параметры субдискретизации.
Реализация по умолчанию возвращает всё изображение, если tileX и tileY равны 0, или генерирует исключение IllegalArgumentException в противном случае.
- Параметры:
-
imageIndex- индекс изображения, которое необходимо получить. -
tileX- индекс столбца (начиная с 0) плитки, которая должна быть получена. -
tileY- индекс строки (начиная с 0) плитки, которая должна быть получена. - Возвращает:
- плитку как
BufferedImage. - Исключения:
-
IllegalStateException- если источник входных данных не установлен. -
IndexOutOfBoundsException- еслиimageIndexвыходит за границы. -
IllegalArgumentException- если индексы плиток выходят за границы. -
IOException- если во время чтения произошла ошибка.
readTileRaster
public Raster readTileRaster(int imageIndex,
int tileX,
int tileY)
throws IOException Возвращает новый объект Raster, содержащий необработанные данные пикселей из плитки без применения какого-либо преобразования цвета. Приложение должно определить, как интерпретировать данные пикселей другими способами.
Если canReadRaster() возвращает false, этот метод генерирует исключение UnsupportedOperationException.
Реализация по умолчанию проверяет, поддерживается ли чтение Rasterов, и если да, то вызывает readRaster(imageIndex, null), если tileX и tileY равны 0, или генерирует исключение IllegalArgumentException в противном случае.
- Параметры:
-
imageIndex- индекс изображения, которое необходимо получить. -
tileX- индекс столбца (начиная с 0) плитки, которая должна быть получена. -
tileY- индекс строки (начиная с 0) плитки, которая должна быть получена. - Возвращает:
- плитку как
Raster. - Исключения:
-
UnsupportedOperationException- если этот плагин не поддерживает чтение необработанныхRasterов. -
IllegalArgumentException- если индексы плиток выходят за границы. -
IllegalStateException- если источник входных данных не установлен. -
IndexOutOfBoundsException- еслиimageIndexвыходит за границы. -
IOException- если во время чтения произошла ошибка. - См. также:
-
readTile(int, int, int),readRaster(int, 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- если источник входных данных не установлен. - %%%NON_TRANSLATATABLE_1029%%% - если какой-либо из предоставленных индексов выходит за границы.
-
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- объект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- итераторIteratorImageTypeSpecifier, указывающий допустимые типы изображений, с первым по умолчанию. -
width- действительная ширина декодируемого изображения или тайла. -
height- действительная ширина декодируемого изображения или тайла. - Возвращаемое значение:
- объект
BufferedImage, в который должны быть записаны данные декодированных пикселей. - Исключения:
-
IIOException- еслиImageTypeSpecifier, указанный вparam, не соответствует ни одному из допустимых изimageTypes. -
IllegalArgumentException- еслиimageTypesпусто или пустой, или если из него извлечён объект не типа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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/ImageReader.html