Spec-Zone.ru › OpenJDK 27

Класс IIOParam

java.lang.Object
javax.imageio.IIOParam
Прямые известные подклассы:
ImageReadParam, ImageWriteParam
public abstract class IIOParam extends Object
Суперкласс всех классов, описывающих, как следует декодировать или кодировать потоки. Этот класс содержит все переменные и методы, общие для ImageReadParam и ImageWriteParam.

Этот класс предоставляет средства для указания области источника и области назначения. При чтении источником является поток, а назначением — изображение в памяти. При записи они меняются местами. При записи области назначения можно использовать только с модулем записи, поддерживающим замену пикселей.

Для устройств чтения и записи можно задать прореживание с помощью перемещаемой сетки прореживания.

Можно выбрать подмножества полос источника и назначения.

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

Модификатор и тип Поле Описание
protected IIOParamController controller
IIOParamController, который будет использоваться для задания параметров этого объекта IIOParam при вызове метода activateController.
protected IIOParamController defaultController
Контроллер IIOParamController по умолчанию, который будет использоваться для задания параметров этого объекта IIOParam при вызове метода activateController.
protected Point destinationOffset
Смещение в области назначения, куда следует поместить декодированный пиксель в верхнем левом углу.
protected ImageTypeSpecifier destinationType
ImageTypeSpecifier, используемый для создания изображения назначения при чтении или для задания выходного типа цвета при записи.
protected int[] sourceBands
Массив int, указывающих, какие полосы источника будут использоваться, либо null.
protected Rectangle sourceRegion
Область источника; null, если она не задана.
protected int sourceXSubsampling
Прореживание по горизонтали.
protected int sourceYSubsampling
Прореживание по вертикали.
protected int subsamplingXOffset
Горизонтальное смещение сетки прореживания, применяемое перед прореживанием.
protected int subsamplingYOffset
Вертикальное смещение сетки прореживания, применяемое перед прореживанием.

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

IIOParam()
Модификатор Конструктор Описание
protected
Защищенный конструктор может вызываться только подклассами.

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

Модификатор и тип Метод Описание
boolean activateController()
Активирует установленный IIOParamController для этого объекта IIOParam и возвращает полученное значение.
IIOParamController getController()
Возвращает текущий установленный IIOParamController.
IIOParamController getDefaultController()
Возвращает IIOParamController по умолчанию, если он есть, независимо от текущего установленного контроллера.
Point getDestinationOffset()
Возвращает смещение в изображении назначения, в котором следует разместить пиксели.
ImageTypeSpecifier getDestinationType()
Возвращает тип изображения, которое будет возвращено при чтении, если он был задан вызовом setDestination(ImageTypeSpecifier), в виде ImageTypeSpecifier.
int[] getSourceBands()
Возвращает набор используемых полос источника.
Rectangle getSourceRegion()
Возвращает используемую область источника.
int getSourceXSubsampling()
Возвращает количество столбцов источника, на которое нужно сместиться для каждого пикселя.
int getSourceYSubsampling()
Возвращает количество строк, на которое нужно сместиться для каждого пикселя.
int getSubsamplingXOffset()
Возвращает горизонтальное смещение сетки прореживания.
int getSubsamplingYOffset()
Возвращает вертикальное смещение сетки прореживания.
boolean hasController()
Возвращает true, если для этого объекта IIOParam установлен контроллер.
void setController(IIOParamController controller)
Задает IIOParamController, используемый для задания параметров этого объекта IIOParam при вызове метода activateController, переопределяя любой контроллер по умолчанию.
void setDestinationOffset(Point destinationOffset)
Задает смещение в изображении назначения, в котором следует разместить декодированные пиксели при чтении или куда следует записать область при записи.
void setDestinationType(ImageTypeSpecifier destinationType)
Задает желаемый тип изображения для изображения назначения с помощью ImageTypeSpecifier.
void setSourceBands(int[] sourceBands)
Задает индексы используемых полос источника.
void setSourceRegion(Rectangle sourceRegion)
Задает интересующую область источника.
void setSourceSubsampling(int sourceXSubsampling, int sourceYSubsampling, int subsamplingXOffset, int subsamplingYOffset)
Задает прореживание, применяемое при вводе-выводе.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API планируется удалить в будущей версии.
Финализация объявлена устаревшей и планируется к удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого объекта Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного периода реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного периода реального времени.

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

sourceRegion

protected Rectangle sourceRegion
Исходная область или null, если она не задана.

sourceXSubsampling

protected int sourceXSubsampling
Коэффициент прореживания, применяемый в горизонтальном направлении. По умолчанию значение равно 1. Значение не должно быть отрицательным или равным 0.

sourceYSubsampling

protected int sourceYSubsampling
Коэффициент прореживания, применяемый в вертикальном направлении. По умолчанию значение равно 1. Значение не должно быть отрицательным или равным 0.

subsamplingXOffset

protected int subsamplingXOffset
Горизонтальное смещение сетки прореживания, применяемое перед прореживанием. Первый используемый пиксель будет смещён на это значение относительно начала области или изображения, если область не задана.

subsamplingYOffset

protected int subsamplingYOffset
Вертикальное смещение сетки прореживания, применяемое перед прореживанием. Первый используемый пиксель будет смещён на это значение относительно начала области или изображения, если область не задана.

sourceBands

protected int[] sourceBands
Массив int, указывающих, какие исходные каналы будут использоваться, или null. Если задано null, набор используемых исходных каналов определяется так, как описано в комментарии к методу setSourceBands. Значения не должны быть отрицательными.

destinationType

protected ImageTypeSpecifier destinationType
Объект ImageTypeSpecifier, используемый для создания целевого изображения при чтении или для задания выходного типа цвета при записи. Если значение не задано, оно будет равно null. По умолчанию значение равно null.

destinationOffset

protected Point destinationOffset
Смещение в целевом изображении, в которое следует поместить декодированный пиксель в левом верхнем углу. По умолчанию значение равно (0, 0).

defaultController

protected IIOParamController defaultController
Контроллер IIOParamController по умолчанию, который будет использоваться для задания параметров этого объекта IIOParam при вызове метода activateController. Подклассы, предоставляющие собственный контроллер по умолчанию, обычно графический интерфейс для задания параметров, должны установить его.
См. также:
  • IIOParamController
  • getDefaultController()
  • activateController()

controller

protected IIOParamController controller
Контроллер IIOParamController, который будет использоваться для задания параметров этого объекта IIOParam при вызове метода activateController. Это значение переопределяет любой контроллер по умолчанию, даже если оно равно null.
См. также:
  • IIOParamController
  • setController(IIOParamController)
  • hasController()
  • activateController()

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

IIOParam

protected IIOParam()
Защищённый конструктор, который могут вызывать только подклассы.

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

setSourceRegion

public void setSourceRegion(Rectangle sourceRegion)
Задаёт исходную область интереса. Область интереса задаётся прямоугольником, где левый верхний угол исходного изображения имеет координаты пикселя (0, 0), а значения увеличиваются вниз и вправо. Фактическое количество используемых пикселей зависит от коэффициентов прореживания, заданных методом setSourceSubsampling. Если прореживание задано так, что это количество равно нулю, будет выброшено исключение IllegalStateException.

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

Значение null для sourceRegion удаляет указание области, в результате чего используется всё изображение.

Параметры:
sourceRegion — Rectangle, задающий исходную область интереса, или null.
Выбрасывает:
IllegalArgumentException — если sourceRegion не равно null и sourceRegion.x или sourceRegion.y отрицательно.
IllegalArgumentException — если sourceRegion не равно null и sourceRegion.width или sourceRegion.height отрицательно или равно 0.
IllegalStateException — если из-за прореживания ширина или высота этой области станет равна нулю.
См. также:
  • getSourceRegion()
  • setSourceSubsampling(int, int, int, int)
  • setDestinationOffset(Point)
  • getDestinationOffset()

getSourceRegion

public Rectangle getSourceRegion()
Возвращает исходную область, которая будет использоваться. Возвращаемое значение задаётся последним вызовом setSourceRegion и будет равно null, если область не задана.
Возвращает:
исходную область интереса в виде Rectangle или null.
См. также:
  • setSourceRegion(Rectangle)

setSourceSubsampling

public void setSourceSubsampling(int sourceXSubsampling, int sourceYSubsampling, int subsamplingXOffset, int subsamplingYOffset)
Задаёт прореживание, применяемое при операциях ввода-вывода. Параметры sourceXSubsampling и sourceYSubsampling задают период прореживания (т. е. количество строк и столбцов, на которое нужно перейти после каждого исходного пикселя). В частности, при периоде 1 используется каждая строка или столбец, а при периоде 2 — каждая вторая строка или столбец. Параметры subsamplingXOffset и subsamplingYOffset задают смещение первого прореживаемого пикселя относительно начала области (или изображения). Изменение начала сетки прореживания полезно для устранения швов при прореживании очень большого исходного изображения в целевые области, которые затем объединяются в полное прореженное изображение. Большинству пользователей следует просто оставить эти параметры равными 0.

Количество используемых пикселей и строк сканирования вычисляется следующим образом.

Количество прореженных пикселей в строке сканирования определяется выражением

truncate[(width - subsamplingXOffset + sourceXSubsampling - 1) / sourceXSubsampling].

Если ширина области при этом равна нулю, выбрасывается исключение IllegalStateException.

Количество используемых строк сканирования можно вычислить аналогичным образом.

Возможность задать начало сетки прореживания не в начале исходной области полезна, если область используется для создания прореженных фрагментов большого изображения, ширина и высота которых не кратны периодам прореживания. Если сетка прореживания не сохраняет согласованность от фрагмента к фрагменту, на их границах появляются артефакты. Этих артефактов можно избежать, скорректировав смещение сетки прореживания для каждого фрагмента. Компромисс заключается в том, что для устранения артефактов фрагменты будут иметь неодинаковый размер. В этом случае используемое смещение сетки определяется формулой:
смещение сетки = [период - (смещение области по модулю периода)] по модулю периода)

Если sourceXSubsampling или sourceYSubsampling равно 0 или меньше, будет выброшено исключение IllegalArgumentException.

Если subsamplingXOffset или subsamplingYOffset отрицательно или больше либо равно соответствующему периоду, будет выброшено исключение IllegalArgumentException.

Метода unsetSourceSubsampling нет; для восстановления значений по умолчанию достаточно вызвать setSourceSubsampling(1, 1, 0, 0).

Параметры:
sourceXSubsampling — количество столбцов между используемыми пикселями.
sourceYSubsampling — количество строк между используемыми пикселями.
subsamplingXOffset — горизонтальное смещение первого прореживаемого пикселя в пределах области или изображения, если область не задана.
subsamplingYOffset — горизонтальное смещение первого прореживаемого пикселя в пределах области или изображения, если область не задана.
Выбрасывает:
IllegalArgumentException — если любой период отрицателен или равен 0 либо любое смещение сетки отрицательно или больше соответствующего периода.
IllegalStateException — если исходная область такова, что прореженный результат не будет содержать пикселей.

getSourceXSubsampling

public int getSourceXSubsampling()
Возвращает количество исходных столбцов, на которое следует перейти для каждого пикселя.

Если метод setSourceSubsampling не вызывался, возвращается 1 (правильное значение).

Возвращает:
период прореживания источника по X.
См. также:
  • setSourceSubsampling(int, int, int, int)
  • getSourceYSubsampling()

getSourceYSubsampling

public int getSourceYSubsampling()
Возвращает количество строк, на которое следует перейти для каждого пикселя.

Если метод setSourceSubsampling не вызывался, возвращается 1 (правильное значение).

Возвращает:
период прореживания источника по Y.
См. также:
  • setSourceSubsampling(int, int, int, int)
  • getSourceXSubsampling()

getSubsamplingXOffset

public int getSubsamplingXOffset()
Возвращает горизонтальное смещение сетки прореживания.

Если метод setSourceSubsampling не вызывался, возвращается 0 (правильное значение).

Возвращает:
смещение сетки прореживания источника по X.
См. также:
  • setSourceSubsampling(int, int, int, int)
  • getSubsamplingYOffset()

getSubsamplingYOffset

public int getSubsamplingYOffset()
Возвращает вертикальное смещение сетки прореживания.

Если метод setSourceSubsampling не вызывался, возвращается 0 (правильное значение).

Возвращает:
смещение сетки прореживания источника по Y.
См. также:
  • setSourceSubsampling(int, int, int, int)
  • getSubsamplingXOffset()

setSourceBands

public void setSourceBands(int[] sourceBands)
Задаёт индексы используемых исходных каналов. Повторяющиеся индексы не допускаются.

Значение null указывает, что будут использоваться все исходные каналы.

При чтении средство чтения или записи выбросит исключение IllegalArgumentException, если задано значение больше наибольшего доступного индекса исходного канала или если количество используемых исходных и целевых каналов различается. Для автоматической проверки можно использовать метод ImageReader.checkReadParamBandSettings.

Семантически создаётся копия массива; изменения его содержимого после этого вызова не влияют на данный объект IIOParam.

Параметры:
sourceBands — массив целочисленных индексов используемых каналов.
Выбрасывает:
IllegalArgumentException — если sourceBands содержит отрицательное или повторяющееся значение.
См. также:
  • getSourceBands()
  • ImageReadParam.setDestinationBands(int[])
  • ImageReader.checkReadParamBandSettings(ImageReadParam, int, int)

getSourceBands

public int[] getSourceBands()
Возвращает набор используемых исходных каналов. Возвращаемое значение задаётся последним вызовом setSourceBands или равно null, если вызовов setSourceBands не было.

Семантически возвращаемый массив является копией; изменения его содержимого после этого вызова не влияют на данный объект IIOParam.

Возвращает:
набор используемых исходных каналов или null.
См. также:
  • setSourceBands(int[])

setDestinationType

public void setDestinationType(ImageTypeSpecifier destinationType)
Задаёт желаемый тип изображения для целевого изображения с помощью ImageTypeSpecifier.

При чтении, если разметка целевого изображения была задана этим методом, каждый вызов метода ImageReader read будет возвращать новый объект BufferedImage, использующий формат, указанный переданным спецификатором типа. Побочным эффектом является отмена ранее заданного назначения BufferedImage с помощью ImageReadParam.setDestination(BufferedImage). Иными словами, этот метод можно рассматривать как вызов setDestination((BufferedImage)null).

При записи тип назначения может использоваться для определения типа цвета изображения. Информация SampleModel будет игнорироваться и может быть null. Например, изображение с 4 каналами может содержать данные CMYK или RGBA. Если задан тип назначения, его ColorModel переопределит любой ColorModel самого изображения. Это особенно важно при использовании setSourceBands, поскольку ColorModel изображения будет относиться ко всему изображению, а не к подмножеству записываемых каналов.

Параметры:
destinationType — объект ImageTypeSpecifier, используемый для определения разметки и типа цвета назначения.
См. также:
  • getDestinationType()

getDestinationType

public ImageTypeSpecifier getDestinationType()
Возвращает тип изображения, которое будет возвращено при чтении, если он был задан вызовом setDestination(ImageTypeSpecifier), в виде объекта ImageTypeSpecifier. Если тип не задан, возвращается null.
Возвращает:
объект ImageTypeSpecifier, описывающий тип назначения, или null.
См. также:
  • setDestinationType(ImageTypeSpecifier)

setDestinationOffset

public void setDestinationOffset(Point destinationOffset)
Задаёт смещение в целевом изображении, в которое будут помещаться декодированные пиксели при чтении или по которому будет записываться область при записи.

При чтении область записи в целевом изображении BufferedImage начинается с этого смещения, а её ширина и высота определяются исходной областью интереса, параметрами прореживания и границами целевого изображения.

Обычная запись не зависит от этого метода; он влияет только на запись с помощью ImageWriter.replacePixels. При такой записи заданное смещение относится к изображению в выходном потоке, пиксели которого изменяются.

Метода unsetDestinationOffset нет; для восстановления значений по умолчанию достаточно вызвать setDestinationOffset(new Point(0, 0)).

Параметры:
destinationOffset — смещение в целевом изображении в виде Point.
Выбрасывает:
IllegalArgumentException — если destinationOffset равно null.
См. также:
  • getDestinationOffset()
  • ImageWriter.replacePixels(RenderedImage, ImageWriteParam)

getDestinationOffset

public Point getDestinationOffset()
Возвращает смещение в целевом изображении, в которое будут помещаться пиксели.

Если метод setDestinationOffsets не вызывался, возвращается Point с нулевыми значениями X и Y (правильное значение).

Возвращает:
смещение в целевом изображении в виде Point.
См. также:
  • setDestinationOffset(Point)

setController

public void setController(IIOParamController controller)
Задаёт контроллер IIOParamController, используемый для задания параметров этого объекта IIOParam при вызове метода activateController, переопределяя любой контроллер по умолчанию. Если аргумент равен null, контроллер не будет использоваться, в том числе контроллер по умолчанию. Чтобы восстановить значение по умолчанию, используйте setController(getDefaultController()).
Параметры:
controller — подходящий объект IIOParamController или null.
См. также:
  • IIOParamController
  • getController()
  • getDefaultController()
  • hasController()
  • activateController()

getController

public IIOParamController getController()
Возвращает установленный в данный момент контроллер IIOParamController. Это может быть контроллер по умолчанию, если он есть, null или аргумент последнего вызова setController.
Возвращает:
установленный в данный момент контроллер IIOParamController или null.
См. также:
  • IIOParamController
  • setController(IIOParamController)
  • getDefaultController()
  • hasController()
  • activateController()

getDefaultController

public IIOParamController getDefaultController()
Возвращает контроллер IIOParamController по умолчанию, если он есть, независимо от установленного в данный момент контроллера. Если контроллер по умолчанию отсутствует, возвращает null.
Возвращает:
контроллер IIOParamController по умолчанию или null.
См. также:
  • IIOParamController
  • setController(IIOParamController)
  • getController()
  • hasController()
  • activateController()

hasController

public boolean hasController()
Возвращает true, если для этого объекта IIOParam установлен контроллер. Возвращает true, если getController не вернёт null.
Возвращает:
true, если контроллер установлен.
См. также:
  • IIOParamController
  • setController(IIOParamController)
  • getController()
  • getDefaultController()
  • activateController()

activateController

public boolean activateController()
Активирует установленный контроллер IIOParamController для этого объекта IIOParam и возвращает полученное значение. Если метод возвращает true, все значения этого объекта IIOParam будут готовы к следующей операции чтения или записи. Если возвращается false, параметры объекта не изменятся (т. е. пользователь отменил операцию).

Обычно контроллер представляет собой графический интерфейс, предоставляющий пользовательский интерфейс для подкласса IIOParam конкретного подключаемого модуля. Однако контроллеры не обязательно должны быть графическими интерфейсами.

Возвращает:
true, если контроллер завершил работу обычным образом.
Выбрасывает:
IllegalStateException — если в данный момент контроллер не установлен.
См. также:
  • IIOParamController
  • setController(IIOParamController)
  • getController()
  • getDefaultController()
  • hasController()

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

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

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