Spec-Zone.ru › OpenJDK 17

Класс 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()
Активирует установленный контроллер для этого объекта IIOParam и возвращает полученное значение.
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()
Возвращает контроллер, если он установлен для этого объекта IIOParam.
void setController(IIOParamController controller)
Устанавливает контроллер, который будет использоваться для предоставления настроек для этого объекта 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()

getSourceYSubsampling

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

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

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

Смещение по оси 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)
Устанавливает требуемый тип изображения для целевого изображения, используя спецификатор типа.

При чтении, если макет назначения был установлен с помощью этого метода, каждый вызов метода 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), как спецификатор типа. Если не был установлен, возвращается null.
Возвращает:
спецификатор типа назначения или null.
См. также:
  • setDestinationType(javax.imageio.ImageTypeSpecifier)

setDestinationOffset

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

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

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

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

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

getDestinationOffset

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

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

Возвращает:
смещение назначения как точка.
См. также:
  • 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()
Возвращает контроллер по умолчанию, если он есть, независимо от установленного контроллера. Если контроллер по умолчанию не существует, возвращает null.
Возвращает:
контроллер по умолчанию, или 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, 2021, 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/17/docs/api/java.desktop/javax/imageio/IIOParam.html

Spec-Zone.ru

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