Spec-Zone.ru › OpenJDK 25

Класс 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

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

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
Массив ints, указывающий, какие исходные каналы будут использоваться, или 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. Например, изображение с четырьмя каналами может содержать данные 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, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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