Класс 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 |
Вертикальное смещение сетки подвыборки перед подвыборкой. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
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 |
Устанавливает контроллер, который будет использоваться для предоставления настроек для этого объекта при вызове метода activateController, переопределяя любой контроллер по умолчанию. |
void |
setDestinationOffset |
Устанавливает смещение в целевом изображении для размещения декодированных пикселей при чтении или для определения области записи при записи. |
void |
setDestinationType |
Устанавливает желаемый тип изображения для целевого изображения. |
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-Rectangleописывающий область источника, или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 источника.
- См. также:
Сдвиг по оси X для субдискретизации
public int getSubsamplingXOffset()
Если setSourceSubsampling не был вызван, возвращается 0 (что является правильным значением).
- Возвращает:
- сдвиг сетки субдискретизации по оси X.
- См. также:
Сдвиг по оси Y для субдискретизации
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, никакие настройки в этом объекте не будут изменены (т.е., пользователь отменил операцию). Обычно контроллер представляет собой графический интерфейс пользователя (GUI), предоставляющий интерфейс для подкласса IIOParam для конкретного плагина. Однако контроллеры не обязательно должны быть GUI.
- Возвращает:
-
trueв случае нормального завершения работы контроллера. - Выбрасывает:
-
IllegalStateException- если контроллер в настоящее время не установлен. - См. также:
© 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