Spec-Zone.ru › OpenJDK 21

Класс IIOParam

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

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

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

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

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

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

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

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

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

Модификатор и тип Метод Описание
boolean activateController()
Активирует установленный контроллер для этого объекта и возвращает результирующее значение.
IIOParamController getController()
Возвращает установленный контроллер.
IIOParamController getDefaultController()
Возвращает контроллер по умолчанию, если он есть, независимо от текущего установленного контроллера.
Point getDestinationOffset()
Возвращает смещение в целевом изображении для размещения пикселей.
ImageTypeSpecifier getDestinationType()
Возвращает тип изображения, возвращаемого при чтении, если он был установлен вызовом setDestination(ImageTypeSpecifier), как ImageTypeSpecifier.
int[] getSourceBands()
Возвращает набор каналов источника.
Rectangle getSourceRegion()
Возвращает область источника.
int getSourceXSubsampling()
Возвращает количество столбцов источника для продвижения за каждый пиксель.
int getSourceYSubsampling()
Возвращает количество строк для продвижения за каждый пиксель.
int getSubsamplingXOffset()
Возвращает горизонтальное смещение сетки подвыборки.
int getSubsamplingYOffset()
Возвращает вертикальное смещение сетки подвыборки.
boolean hasController()
Возвращает контроллер, если он установлен для этого объекта.
void setController(IIOParamController controller)
Устанавливает контроллер, который будет использоваться для предоставления настроек для этого объекта при вызове метода activateController, переопределяя любой контроллер по умолчанию.
void setDestinationOffset(Point destinationOffset)
Устанавливает смещение в целевом изображении для размещения декодированных пикселей при чтении или для определения области записи при записи.
void setDestinationType(ImageTypeSpecifier destinationType)
Устанавливает желаемый тип изображения для целевого изображения.
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 - 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()

getSourceYSubsampling

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

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

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

Сдвиг по оси X для субдискретизации

public int getSubsamplingXOffset()
Возвращает горизонтальный сдвиг сетки субдискретизации.

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

Возвращает:
сдвиг сетки субдискретизации по оси X.
См. также:
  • setSourceSubsampling(int, int, int, int)
  • getSubsamplingYOffset()

Сдвиг по оси Y для субдискретизации

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, никакие настройки в этом объекте не будут изменены (т.е., пользователь отменил операцию).

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

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

© 1993, 2023, 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/21/docs/api/java.desktop/javax/imageio/IIOParam.html

Spec-Zone.ru

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