Spec-Zone.ru › OpenJDK 24

Класс 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
Область источника, по умолчанию, если она не задана.
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)
Задает децимационную подвыборку для применения при В/В.

Методы, объявленные в классе java.lang.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
Массив 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 - a 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(java.awt.Point)
  • getDestinationOffset()

getSourceRegion

public Rectangle getSourceRegion()
Возвращает область источника для использования. Возвращаемое значение соответствует последнему вызову setSourceRegion и будет null, если область не установлена.
Возвращает:
область интереса источника как Rectangle или null.
См. также:
  • setSourceRegion(java.awt.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()
END_OF_DOCUMENT_MARKER ```

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(javax.imageio.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(javax.imageio.ImageTypeSpecifier)

setDestinationOffset

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

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

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

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

Параметры:
destinationOffset - смещение в назначении в виде Point.
Исключения:
IllegalArgumentException - если destinationOffset является null.
См. также:
  • getDestinationOffset()
  • ImageWriter.replacePixels(java.awt.image.RenderedImage, javax.imageio.ImageWriteParam)

getDestinationOffset

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

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

Возвращает:
смещение назначения в виде Point.
См. также:
  • setDestinationOffset(java.awt.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(javax.imageio.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()

© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/imageio/IIOParam.html

Spec-Zone.ru

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