Класс 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 |
Вертикальное смещение, применяемое к сетке подвыборки перед подвыборкой. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
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, который будет использоваться для предоставления настроек для этого объекта IIOParam при вызове метода activateController, переопределяя любой контроллер по умолчанию. |
void |
setDestinationOffset |
Задает смещение в целевом изображении, в котором будут размещаться декодированные пиксели при чтении или область, которая будет записана при записи. |
void |
setDestinationType |
Устанавливает желаемый тип изображения для изображения назначения, используя ImageTypeSpecifier. |
void |
setSourceBands |
Задает индексы полос источника, которые будут использоваться. |
void |
setSourceRegion |
Задает область источника, которая должна быть обработана. |
void |
setSourceSubsampling |
Задает децимационную подвыборку для применения при В/В. |
Подробное описание полей
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
defaultController
protected IIOParamController defaultController
IIOParamController, который будет использован для предоставления параметров для этого объекта IIOParam при вызове метода activateController. Этот параметр должен быть задан подклассами, которые выбирают предоставление собственного контроллера по умолчанию, обычно графического интерфейса, для настройки параметров.- См. также:
controller
protected IIOParamController controller
IIOParamController, который будет использован для предоставления параметров для этого объекта IIOParam при вызове метода activateController. Это значение переопределяет любой контроллер по умолчанию, даже если он равен null.- См. также:
Подробное описание конструкторов
IIOParam
protected IIOParam()
Подробное описание методов
setSourceRegion
public void setSourceRegion(Rectangle sourceRegion)
setSourceSubsampling. Если подвыборка задана так, что это число равно нулю, будет выброшено исключение IllegalStateException. Область интереса источника, заданная этим методом, будет обрезана по мере необходимости, чтобы поместиться в пределах границ источника, а также смещений назначения, ширины и высоты во время фактического ввода/вывода.
Значение null для sourceRegion удалит любое указание области, что приведет к использованию всего изображения.
- Параметры:
-
sourceRegion- aRectangle, задающая область интереса источника, илиnull. - Исключения:
-
IllegalArgumentException- еслиsourceRegionне равенnull, и либоsourceRegion.x, либоsourceRegion.yотрицательные. -
IllegalArgumentException- еслиsourceRegionне равенnullи либоsourceRegion.width, либоsourceRegion.heightотрицательные или равны 0. -
IllegalStateException- если подвыборка такова, что эта область будет иметь ширину или высоту подвыборки равную нулю. - См. также:
getSourceRegion
public Rectangle getSourceRegion()
setSourceRegion и будет null, если область не установлена.- Возвращает:
- область интереса источника как
Rectangleилиnull. - См. также:
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.
- См. также:
getSourceYSubsampling
public int getSourceYSubsampling()
Если setSourceSubsampling не был вызван, возвращается 1 (что является правильным значением).
- Возвращает:
- период субдискретизации источника по оси Y.
- См. также:
getSubsamplingXOffset
public int getSubsamplingXOffset()
Если setSourceSubsampling не был вызван, возвращается 0 (что является правильным значением).
- Возвращает:
- смещение сетки субдискретизации источника по оси X.
- См. также:
getSubsamplingYOffset
public int getSubsamplingYOffset()
Если setSourceSubsampling не был вызван, возвращается 0 (что является правильным значением).
- Возвращает:
- смещение сетки субдискретизации источника по оси Y.
- См. также:
setSourceBands
public void setSourceBands(int[] sourceBands)
Значение null указывает, что будут использованы все полосы источника.
При чтении, IllegalArgumentException будет выброшен читателем или писателем, если задано значение, большее максимального индекса полосы источника, или если количество полос источника и назначения различно. Метод ImageReader.checkReadParamBandSettings может быть использован для автоматизации этого теста.
Семантически, создается копия массива; изменения в содержимом массива после этого вызова не влияют на этот IIOParam.
- Параметры:
-
sourceBands- массив целочисленных индексов полос, которые нужно использовать. - Исключения:
-
IllegalArgumentException- еслиsourceBandsсодержит отрицательное или дублированное значение. - См. также:
getSourceBands
public int[] getSourceBands()
setSourceBands, или null, если вызовы setSourceBands отсутствуют. Семантически, возвращаемый массив является копией; изменения в содержимом массива после этого вызова не влияют на этот IIOParam.
- Возвращает:
- набор используемых полос источника или
null. - См. также:
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
public ImageTypeSpecifier getDestinationType()
setDestination(ImageTypeSpecifier), как ImageTypeSpecifier. Если он не был установлен, возвращается null.- Возвращает:
ImageTypeSpecifier, описывающий тип назначения, илиnull.- См. также:
setDestinationOffset
public void setDestinationOffset(Point destinationOffset)
При чтении область, которая будет записана в изображение назначения BufferedImage, начнется с этого смещения и будет иметь ширину и высоту, определенные областью интереса источника, параметрами субдискретизации и границами назначения.
Нормальные записи не затрагиваются этим методом, только записи, выполненные с помощью ImageWriter.replacePixels. Для таких записей указанное смещение находится внутри изображения потока вывода, пиксели которого изменяются.
Нет метода unsetDestinationOffset; просто вызовите setDestinationOffset(new Point(0, 0)) для восстановления значений по умолчанию.
- Параметры:
-
destinationOffset- смещение в назначении в видеPoint. - Исключения:
-
IllegalArgumentException- еслиdestinationOffsetявляетсяnull. - См. также:
getDestinationOffset
public Point getDestinationOffset()
Если setDestinationOffsets не был вызван, возвращается Point с нулевыми значениями X и Y (что является правильным значением).
- Возвращает:
- смещение назначения в виде
Point. - См. также:
setController
public void setController(IIOParamController controller)
IIOParamController, используемый для предоставления настроек для этого объекта IIOParam при вызове метода activateController, переопределяя любой контроллер по умолчанию. Если аргумент равен null, контроллер не будет использован, включая любой по умолчанию. Чтобы восстановить значения по умолчанию, используйте setController(getDefaultController()).- Параметры:
-
controller- подходящийIIOParamControllerилиnull. - См. также:
getController
public IIOParamController getController()
IIOParamController. Это может быть контроллер по умолчанию, если он есть, null или аргумент последнего вызова setController.- Возвращает:
- текущий установленный
IIOParamController, илиnull. - См. также:
getDefaultController
public IIOParamController getDefaultController()
IIOParamController, если он есть, независимо от текущего установленного контроллера. Если контроллера по умолчанию нет, возвращает null.- Возвращает:
- контроллер по умолчанию
IIOParamController, илиnull. - См. также:
hasController
public boolean hasController()
true, если для этого объекта IIOParam установлен контроллер. Возвращает true, если getController не вернёт null.- Возвращает:
-
true, если контроллер установлен. - См. также:
activateController
public boolean activateController()
IIOParamController для этого объекта IIOParam и возвращает результат. При возврате true все значения для этого объекта IIOParam будут готовы для следующей операции чтения или записи. Если возвращается false, никакие настройки в этом объекте не будут изменены (т.е., пользователь отменил операцию). Обычно контроллер представляет собой графический интерфейс пользователя, предоставляющий пользовательский интерфейс для подкласса IIOParam для конкретного плагина. Однако контроллеры необязательно являются графическими интерфейсами.
- Возвращает:
-
true, если контроллер завершил работу нормально. - Издаёт:
-
IllegalStateException- если в настоящее время не установлен ни один контроллер. - См. также:
© 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