Класс IIOParam
- java.lang.Object
-
- javax.imageio.IIOParam
- Прямые известные подклассы:
- ImageReadParam, ImageWriteParam
public abstract class IIOParam extends Object
Базовый класс для всех классов, описывающих, как следует декодировать или кодировать потоки. Этот класс содержит все переменные и методы, общие для ImageReadParam и ImageWriteParam.
Этот класс предоставляет механизмы для указания области источника и области назначения. При чтении источником является поток, а целевым объектом — изображение в памяти. При записи эти роли меняются. В случае записи области назначения могут использоваться только с писателем, поддерживающим замену пикселей.
Децимационное подвыборка может быть задана как для читателей, так и для писателей, используя подвижную сетку подвыборки.
Могут быть выбраны подмножества полос источника и назначения.
Поля
| Модификатор и тип | Поле и описание |
|---|---|
protected IIOParamController |
controller Контроллер, который будет использоваться для предоставления настроек для этого объекта |
protected IIOParamController |
defaultController Значение по умолчанию |
protected Point |
destinationOffset Смещение в области назначения, куда должен быть помещен верхний левый декодированный пиксель. |
protected ImageTypeSpecifier |
destinationType
|
protected int[] |
sourceBands Массив |
protected Rectangle |
sourceRegion Область источника по умолчанию, если не указана другая. |
protected int |
sourceXSubsampling Децимационное подвыборка, применяемая в горизонтальном направлении. |
protected int |
sourceYSubsampling Децимационное подвыборка, применяемое в вертикальном направлении. |
protected int |
subsamplingXOffset Горизонтальное смещение, применяемое к сетке подвыборки перед подвыборкой. |
protected int |
subsamplingYOffset Вертикальное смещение, применяемое к сетке подвыборки перед подвыборкой. |
Конструкторы
| Модификатор | Конструктор и описание |
|---|---|
protected |
IIOParam() Защищённый конструктор может быть вызван только подклассами. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
boolean |
activateController() Активирует установленный |
IIOParamController |
getController() Возвращает установленный в настоящее время |
IIOParamController |
getDefaultController() Возвращает значение по умолчанию |
Point |
getDestinationOffset() Возвращает смещение в целевом изображении, в котором будут размещаться пиксели. |
ImageTypeSpecifier |
getDestinationType() Возвращает тип изображения, которое будет возвращено при чтении, если он был установлен вызовом |
int[] |
getSourceBands() Возвращает набор полос источника, которые будут использованы. |
Rectangle |
getSourceRegion() Возвращает область источника, которая будет использоваться. |
int |
getSourceXSubsampling() Возвращает количество столбцов источника, которые нужно пропустить для каждого пикселя. |
int |
getSourceYSubsampling() Возвращает количество строк, которые нужно пропустить для каждого пикселя. |
int |
getSubsamplingXOffset() Возвращает горизонтальное смещение сетки подвыборки. |
int |
getSubsamplingYOffset() Возвращает вертикальное смещение сетки подвыборки. |
boolean |
hasController() Возвращает |
void |
setController(IIOParamController controller) Устанавливает |
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
Массив ints, указывающий, какие полосы источника будут использоваться, или 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()
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, 2020, 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.