Класс ColorModel
- Все реализованные интерфейсы:
Transparency
- Прямые известные подклассы:
-
ComponentColorModel,IndexColorModel,PackedColorModel
public abstract class ColorModel extends Object implements Transparency
ColorModel, encapsulating методы для преобразования значения пикселя в цветовые компоненты (например, красный, зелёный и синий) и альфа-компоненту. Для отрисовки изображения на экране, принтере или другом устройстве значения пикселей должны быть преобразованы в цветовые и альфа-компоненты. В качестве аргументов или возвращаемых значений методов этого класса пиксели представлены в виде 32-битных целых чисел или массивов примитивных типов. Количество, порядок и интерпретация цветовых компонентов для ColorModel задаются его ColorSpace. ColorModel используется с данными пикселей, не содержащими информацию об альфа-канале, обрабатывает все пиксели как непрозрачные, что соответствует значению альфа-канала 1.0. Этот ColorModel класс поддерживает два представления значений пикселей. Значение пикселя может быть одиночным 32-битным целым числом или массивом примитивных типов. В API Java(tm) Platform 1.0 и 1.1 пиксели представлялись как одиночные значения byte или одиночные значения int. Для целей ColorModel класса аргументы значений пикселей передавались как целые числа. API Java(tm) 2 Platform API представил дополнительные классы для представления изображений. С объектами BufferedImage или RenderedImage, основанных на классах Raster и SampleModel, значения пикселей могут не быть удобно представлены как единственное целое число. Соответственно, ColorModel теперь имеет методы, принимающие значения пикселей, представленные как массивы примитивных типов. Примитивный тип, используемый конкретным ColorModel объектом, называется его типом передачи.
ColorModel объекты, используемые с изображениями, для которых значения пикселей не могут быть удобно представлены как единственное целое число, выбрасывают исключение IllegalArgumentException, когда вызываются методы, принимающие одиночное целое число в качестве аргумента пикселя. Подклассы ColorModel должны указывать условия, при которых это происходит. Это не происходит с объектами DirectColorModel или IndexColorModel.
В настоящее время типы передачи, поддерживаемые API Java 2D(tm), это DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT и DataBuffer.TYPE_DOUBLE. Большинство операций рендеринга будут выполняться значительно быстрее при использовании ColorModel и изображений, основанных на первых трёх типах. Кроме того, некоторые операции фильтрации изображений не поддерживаются для ColorModel и изображений, основанных на последних трёх типах. Тип передачи для конкретного ColorModel объекта задаётся при создании объекта, явным образом или по умолчанию. Все подклассы ColorModel должны указать, каковы возможные типы передачи и как определяется количество элементов в примитивных массивах, представляющих пиксели.
Для BufferedImages, тип передачи его Raster и Raster объекта должен соответствовать типу передачи ColorModel. Количество элементов в массиве, представляющем пиксель для Raster и SampleModel (доступных из методов getNumDataElements этих классов), должно совпадать с количеством элементов ColorModel.
Алгоритм преобразования из значений пикселей в цветовые и альфа-компоненты зависит от подкласса. Например, необязательно существует взаимно однозначное соответствие между выборками, полученными от SampleModel объекта BufferedImage и цветовыми/альфа-компонентами. Даже если такое соответствие существует, количество битов в выборке не обязательно совпадает с количеством битов в соответствующей цветовой/альфа-компоненте. Каждый подкласс должен указать, как выполняется преобразование из значений пикселей в цветовые/альфа-компоненты.
Методы в классе ColorModel используют два различных представления цветовых и альфа-компонентов - нормализованную и ненормализованную форму. В нормализованной форме каждый компонент представляет собой float значение между некоторыми минимальными и максимальными значениями. Для альфа-компонента минимум равен 0.0, а максимум 1.0. Для цветовых компонентов минимальные и максимальные значения для каждого компонента можно получить из объекта ColorSpace. Эти значения часто будут 0.0 и 1.0 (например, нормализованные значения компонентов для стандартного цветового пространства sRGB находятся в диапазоне от 0.0 до 1.0), но некоторые цветовые пространства имеют значения компонентов с разными верхними и нижними пределами. Эти пределы можно получить, используя методы getMinValue и getMaxValue класса ColorSpace. Нормализованные значения цветовых компонентов не преумножены. Все ColorModels должны поддерживать нормализованную форму.
В ненормализованной форме каждый компонент представляет собой целое без знака от 0 до 2n - 1, где n - количество значащих битов для данного компонента. Если значения пикселей для данного ColorModel представляют цветовые выборки, умноженные на альфа-выборку, ненормализованные значения цветовых компонентов также преумножены. Ненормализованная форма используется только с экземплярами ColorModel, чьё ColorSpace имеет минимальные значения компонентов 0.0 для всех компонентов и максимальные значения 1.0 для всех компонентов. Ненормализованная форма для цветовых и альфа-компонентов может быть удобным представлением для ColorModels, чьи нормализованные значения компонентов находятся в диапазоне от 0.0 до 1.0. В таких случаях целое число 0 отображается как 0.0, а значение 2n - 1 отображается как 1.0. В других случаях, таких как когда нормализованные значения компонентов могут быть как отрицательными, так и положительными, ненормализованная форма неудобна. Такие ColorModel объекты выбрасывают исключение IllegalArgumentException, когда вызываются методы, включающие ненормализованный аргумент. Подклассы ColorModel должны указать условия, при которых это происходит.
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected int |
pixel_bits |
Общее количество битов в пикселе. |
protected int |
transferType |
Тип данных массива, используемого для представления значений пикселей. |
Объявленные в интерфейсе поля java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
| Создаёт ColorModel, который преобразует пиксели указанного количества битов в компоненты цвета/альфа. |
||
protected |
Создаёт ColorModel, который преобразует значения пикселей в компоненты цвета/альфа. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ColorModel |
coerceData |
Принудительно согласует данные растра с состоянием, указанным в переменной isAlphaPremultiplied, предполагая, что данные в настоящее время правильно описываются этим ColorModel. |
SampleModel |
createCompatibleSampleModel |
Создаёт SampleModel заданной ширины и высоты с макетом данных, совместимым с этим ColorModel. |
WritableRaster |
createCompatibleWritableRaster |
Создаёт WritableRaster заданной ширины и высоты с макетом данных (SampleModel), совместимым с этим ColorModel. |
boolean |
equals |
Этот метод просто делегирует выполнение по умолчанию в Object, что идентично тесту ==, поскольку этот класс не может гарантировать корректность теста равенства между несколькими независимыми ветвями подклассов. |
abstract int |
getAlpha |
Возвращает компонент альфа для указанного пикселя, масштабированный от 0 до 255. |
int |
getAlpha |
Возвращает компонент альфа для указанного пикселя, масштабированный от 0 до 255. |
WritableRaster |
getAlphaRaster |
Возвращает Raster, представляющий канал альфа изображения, извлечённый из входного Raster, при условии, что значения пикселей этого ColorModel представляют информацию о цвете и альфа как отдельные пространственные полосы (например. |
abstract int |
getBlue |
Возвращает синюю составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. |
int |
getBlue |
Возвращает синюю составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. |
final ColorSpace |
getColorSpace() |
Возвращает ColorSpace связанный с этим ColorModel. |
int[] |
getComponents |
Возвращает массив несведешённых компонентов цвета/альфа, заданных пикселем в этом ColorModel. |
int[] |
getComponents |
Возвращает массив несведешённых компонентов цвета/альфа, заданных пикселем в этом ColorModel. |
int[] |
getComponentSize() |
Возвращает массив количества битов на компонент цвета/альфа. |
int |
getComponentSize |
Возвращает количество битов для указанного компонента цвета/альфа. |
int |
getDataElement |
Возвращает значение пикселя, представленное как int в этом ColorModel, заданными массивом нормализованных компонентов цвета/альфа. |
int |
getDataElement |
Возвращает значение пикселя, представленное как int в этом ColorModel, заданными массивом ненормализованных компонентов цвета/альфа. |
Object |
getDataElements |
Возвращает массив данных элемента, представляющих пиксель в этом ColorModel, заданными массивом нормализованных компонентов цвета/альфа. |
Object |
getDataElements |
Возвращает массив данных элемента, представляющих пиксель в этом ColorModel, заданными массивом ненормализованных компонентов цвета/альфа. |
Object |
getDataElements |
Возвращает массив данных элемента, представляющих пиксель в этом ColorModel, заданным целочисленным представлением пикселя в стандартной цветовой модели RGB. |
abstract int |
getGreen |
Возвращает зелёную составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. |
int |
getGreen |
Возвращает зелёную составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. |
float[] |
getNormalizedComponents |
Возвращает массив всех компонентов цвета/альфа в нормализованной форме, заданным массивом ненормализованных компонентов. |
float[] |
getNormalizedComponents |
Возвращает массив всех компонентов цвета/альфа в нормализованной форме, заданным пикселем в этом ColorModel. |
int |
getNumColorComponents() |
Возвращает количество компонентов цвета в этом ColorModel. |
int |
getNumComponents() |
Возвращает количество компонентов, включая альфа, в этом ColorModel. |
int |
getPixelSize() |
Возвращает количество битов на пиксель, описанное этим ColorModel. |
abstract int |
getRed |
Возвращает красную составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. |
int |
getRed |
Возвращает красную составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. |
int |
getRGB |
Возвращает компоненты цвета/альфа пикселя в формате стандартной цветовой модели RGB. |
int |
getRGB |
Возвращает компоненты цвета/альфа для указанного пикселя в формате стандартной цветовой модели RGB. |
static ColorModel |
getRGBdefault() |
Возвращает DirectColorModel, описывающий стандартный формат целочисленных значений RGB, используемых во многих методах интерфейсов изображений AWT для удобства программиста. |
final int |
getTransferType() |
Возвращает тип преобразования этого ColorModel. |
int |
getTransparency() |
Возвращает прозрачность. |
int[] |
getUnnormalizedComponents |
Возвращает массив всех компонентов цвета/альфа в ненормализованной форме, заданных массивом нормализованных компонентов. |
final boolean |
hasAlpha() |
Возвращает, поддерживается ли альфа в этом ColorModel. |
int |
hashCode() |
Этот метод просто делегирует выполнение по умолчанию в Object, которое возвращает системный идентификатор класса. |
final boolean |
isAlphaPremultiplied() |
Возвращает, было ли значение альфа предварительно умножено в значениях пикселей, подлежащих преобразованию этим ColorModel. |
boolean |
isCompatibleRaster |
Возвращает true если raster совместим с этим ColorModel и false если нет. |
boolean |
isCompatibleSampleModel |
Проверяет, совместим ли SampleModel с этим ColorModel. |
String |
toString() |
Возвращает представление String содержимого этого объекта ColorModel. |
Подробное описание полей
pixel_bits
protected int pixel_bits
transferType
protected int transferType
Подробное описание конструкторов
ColorModel
public ColorModel(int bits)
ColorModel, который преобразует пиксели указанного количества бит в цветовые/альфа-компоненты. Цветовое пространство — стандартное RGB ColorSpace, которое является sRGB. Предполагается, что значения пикселей включают альфа-информацию. Если цветовая и альфа-информация представлены в значении пикселя как отдельные пространственные полосы, предполагается, что цветовые полосы не были предварительно умножены на альфа-значение. Тип прозрачности — java.awt.Transparency.TRANSLUCENT. Тип передачи будет наименьшим из DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT или DataBuffer.TYPE_INT, который может содержать один пиксель (или DataBuffer.TYPE_UNDEFINED, если bits больше 32). Поскольку в этом конструкторе нет информации о количестве бит на цветовой и альфа-компонент, любой подкласс, вызывающий этот конструктор, должен переопределить любой метод, требующий этой информации.- Параметры:
-
bits- количество бит в пикселе - Исключения:
-
IllegalArgumentException- если количество бит вbitsменьше 1
ColorModel
protected ColorModel(int pixel_bits, int[] bits, ColorSpace cspace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
ColorModel , который преобразует значения пикселей в цветовые/альфа-компоненты. Цветовые компоненты будут в указанном ColorSpace. pixel_bits — количество бит в значениях пикселей. Массив bits указывает количество значащих бит на цветовой и альфа-компонент. Его длина должна быть равна количеству компонентов в ColorSpace, если в значениях пикселей нет альфа-информации, или на единицу больше этого числа, если есть альфа-информация. hasAlpha указывает, присутствует ли альфа-информация. boolean isAlphaPremultiplied определяет, как интерпретировать значения пикселей, в которых цветовая и альфа-информация представлены как отдельные пространственные полосы. Если boolean true, предполагается, что цветовые образцы были умножены на альфа-образец. transparency указывает, какие значения альфа могут быть представлены этой цветовой моделью. Тип передачи — тип примитивного массива, используемого для представления значений пикселей. Обратите внимание, что массив bits содержит количество значащих бит на цветовой/альфа-компонент после преобразования из значений пикселей. Например, для IndexColorModel с pixel_bits, равным 16, массив bits может содержать четыре элемента, каждый из которых равен 8.- Параметры:
-
pixel_bits- количество бит в значениях пикселей -
bits- массив, определяющий количество значащих бит на цветовой и альфа-компонент -
cspace- указанноеColorSpace -
hasAlpha-trueесли альфа-информация присутствует;falseв противном случае -
isAlphaPremultiplied-trueесли цветовые образцы предполагается предварительно умножить на альфа-образцы;falseв противном случае -
transparency- какие значения альфа могут быть представлены этой цветовой моделью -
transferType- тип массива, используемого для представления значений пикселей - Исключения:
-
IllegalArgumentException- если длина массива bit меньше числа цветовых или альфа-компонентов в этомColorModel, или если тип прозрачности не является допустимым значением. -
IllegalArgumentException- если сумма количества бит вbitsменьше 1 или любой из элементов вbitsменьше 0. - См. также:
Подробное описание методов
getRGBdefault
public static ColorModel getRGBdefault()
DirectColorModel, описывающий стандартный формат целочисленных значений RGB, используемый во многих методах интерфейсов изображений AWT для удобства программиста. Цветовое пространство — стандартное ColorSpace, sRGB. Формат значений RGB — целое число с 8 битами на каждый из компонент альфа, красного, зелёного и синего цветов, упорядоченных соответственно от старшего байта к младшему, как в: 0xAARRGGBB. Цветовые компоненты не предварительно умножаются на альфа-компонент. Этот формат не обязательно представляет собой родной или наиболее эффективный ColorModel для конкретного устройства или для всех изображений. Он используется только в качестве стандартного формата цветовой модели.- Возвращает:
- объект
DirectColorModel, описывающий значения по умолчанию RGB.
hasAlpha
public final boolean hasAlpha()
ColorModel.- Возвращает:
-
trueесли альфа поддерживается в этомColorModel;falseв противном случае.
isAlphaPremultiplied
public final boolean isAlphaPremultiplied()
ColorModel. Если булево значение true, этот ColorModel используется для интерпретации значений пикселей, в которых цветовая и альфа-информация представлены как отдельные пространственные полосы, и цветовые образцы предполагается предварительно умножить на альфа-образец.- Возвращает:
-
trueесли значения альфа предварительно умножены в значениях пикселей, которые будут преобразованы этимColorModel;falseв противном случае.
getTransferType
public final int getTransferType()
ColorModel. Тип передачи — это тип примитивного массива, используемого для представления значений пикселей как массивов.- Возвращает:
- тип передачи.
- С тех пор:
- 1.3
getPixelSize
public int getPixelSize()
ColorModel.- Возвращает:
- количество бит на пиксель.
getComponentSize
public int getComponentSize(int componentIdx)
ColorSpace. Обычно этот порядок отражает имя типа цветового пространства. Например, для TYPE_RGB индекс 0 соответствует красному, индекс 1 — зелёному, а индекс 2 — синему. Если этот ColorModel поддерживает альфа, альфа-компонент соответствует индексу, следующему за последним цветовым компонентом.- Параметры:
-
componentIdx- индекс цветового/альфа-компонента - Возвращает:
- количество бит для цветового/альфа-компонента по указанному индексу.
- Исключения:
-
ArrayIndexOutOfBoundsException- еслиcomponentIdxбольше или равен количеству компонентов или меньше нуля -
NullPointerException- если массив битnull
getComponentSize
public int[] getComponentSize()
ColorSpace, за которыми следует альфа-компонент, если он присутствует.- Возвращает:
- массив количества бит на каждый цветовой/альфа-компонент
getTransparency
public int getTransparency()
- Определено в:
-
getTransparencyв интерфейсеTransparency - Возвращает:
- прозрачность этого
ColorModel. - См. также:
getNumComponents
public int getNumComponents()
ColorModel. Это равно количеству цветовых компонентов, возможно, плюс один, если есть альфа-компонент.- Возвращает:
- количество компонентов в этом
ColorModel
getNumColorComponents
public int getNumColorComponents()
ColorModel. Это число компонентов, возвращаемое ColorSpace.getNumComponents().- Возвращает:
- количество цветовых компонентов в этом
ColorModel. - См. также:
getRed
public abstract int getRed(int pixel)
IllegalArgumentException, если значения пикселей для этого ColorModel не могут быть удобно представлены как одно целое число. Возвращаемое значение не является предварительно умноженным значением. Например, если альфа предварительно умножена, этот метод делит её перед возвратом значения. Если значение альфа равно 0, значение красного цвета равно 0.- Параметры:
-
pixel- указанный пиксель - Возвращает:
- значение красного компонента указанного пикселя.
getGreen
public abstract int getGreen(int pixel)
IllegalArgumentException, если значения пикселей для этого ColorModel не могут быть удобно представлены как одно целое число. Возвращаемое значение — не умноженное на альфа-канал. Например, если альфа-канал умножен на цвет, этот метод делит его перед возвращением значения. Если значение альфа-канала равно 0, значение зелёного компонента равно 0.- Parameters:
-
pixel- указанный пиксель - Returns:
- значение зелёного компонента указанного пикселя.
getBlue
public abstract int getBlue(int pixel)
IllegalArgumentException, если значения пикселей для этого ColorModel не могут быть удобно представлены как одно целое число. Возвращаемое значение — не умноженное на альфа-канал, например, если альфа-канал умножен на цвет, этот метод делит его перед возвращением значения. Если значение альфа-канала равно 0, значение синего компонента равно 0.- Parameters:
-
pixel- указанный пиксель - Returns:
- значение синего компонента указанного пикселя.
getAlpha
public abstract int getAlpha(int pixel)
IllegalArgumentException, если значения пикселей для этого ColorModel не могут быть удобно представлены как одно целое число.- Parameters:
-
pixel- указанный пиксель - Returns:
- значение альфа-компонента указанного пикселя.
getRGB
public int getRGB(int pixel)
IllegalArgumentException, если значения пикселей для этого ColorModel не могут быть удобно представлены как одно целое число. Возвращаемое значение в формате без умножения на альфа-канал. Например, если альфа-канал умножен на цвет, этот метод делит его из компонент цвета. Если значение альфа-канала равно 0, значения цвета равны 0.- Parameters:
-
pixel- указанный пиксель - Returns:
- значение RGB компонент цвета/альфа указанного пикселя.
- See Also:
getRed
public int getRed(Object inData)
ColorSpace, sRGB. Если необходимо, выполняется преобразование цвета. Значение пикселя задаётся массивом элементов данных типа transferType, переданных в качестве ссылки на объект. Возвращаемое значение — не умноженное на альфа-канал. Например, если альфа-канал умножен, этот метод делит его перед возвращением значения. Если значение альфа-канала равно 0, значение красного компонента равно 0. Если inData не является примитивным массивом типа transferType, бросается исключение ClassCastException. Бросается исключение ArrayIndexOutOfBoundsException, если inData не достаточно велик, чтобы содержать значение пикселя для этого ColorModel. Если этот transferType не поддерживается, будет брошено исключение UnsupportedOperationException. Поскольку ColorModel — абстрактный класс, любой экземпляр должен быть экземпляром подкласса. Подклассы наследуют реализацию этого метода, и если они его не переопределяют, этот метод выбрасывает исключение, если подкласс использует тип transferType отличный от DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, или DataBuffer.TYPE_INT. - Parameters:
-
inData- массив значений пикселей - Returns:
- значение красного компонента указанного пикселя.
- Throws:
-
ClassCastException- еслиinDataне является примитивным массивом типаtransferType -
ArrayIndexOutOfBoundsException- еслиinDataне достаточно велик, чтобы содержать значение пикселя для этогоColorModel -
UnsupportedOperationException- если этотtransferTypeне поддерживается этимColorModel
getGreen
public int getGreen(Object inData)
ColorSpace, sRGB. Если необходимо, выполняется преобразование цвета. Значение пикселя задаётся массивом элементов данных типа transferType, переданных в качестве ссылки на объект. Возвращаемое значение — не умноженное на альфа-канал. Например, если альфа-канал умножен, этот метод делит его перед возвращением значения. Если значение альфа-канала равно 0, значение зелёного компонента равно 0. Если inData не является примитивным массивом типа transferType, бросается исключение ClassCastException. Бросается исключение ArrayIndexOutOfBoundsException, если inData не достаточно велик, чтобы содержать значение пикселя для этого ColorModel. Если этот transferType не поддерживается, будет брошено исключение UnsupportedOperationException. Поскольку ColorModel — абстрактный класс, любой экземпляр должен быть экземпляром подкласса. Подклассы наследуют реализацию этого метода, и если они его не переопределяют, этот метод выбрасывает исключение, если подкласс использует тип transferType отличный от DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, или DataBuffer.TYPE_INT.- Parameters:
-
inData- массив значений пикселей - Returns:
- значение зелёного компонента указанного пикселя.
- Throws:
-
ClassCastException- еслиinDataне является примитивным массивом типаtransferType -
ArrayIndexOutOfBoundsException- еслиinDataне достаточно велик, чтобы содержать значение пикселя для этогоColorModel -
UnsupportedOperationException- если этотtransferTypeне поддерживается этимColorModel
getBlue
public int getBlue(Object inData)
ColorSpace, sRGB. Если необходимо, выполняется преобразование цвета. Значение пикселя задаётся массивом элементов данных типа transferType, переданных в качестве ссылки на объект. Возвращаемое значение — не умноженное на альфа-канал. Например, если альфа-канал умножен, этот метод делит его перед возвращением значения. Если значение альфа-канала равно 0, значение синего компонента будет 0. Если inData не является примитивным массивом типа transferType, бросается исключение ClassCastException. Бросается исключение ArrayIndexOutOfBoundsException, если inData не достаточно велик, чтобы содержать значение пикселя для этого ColorModel. Если этот transferType не поддерживается, будет брошено исключение UnsupportedOperationException. Поскольку ColorModel — абстрактный класс, любой экземпляр должен быть экземпляром подкласса. Подклассы наследуют реализацию этого метода, и если они его не переопределяют, этот метод выбрасывает исключение, если подкласс использует тип transferType отличный от DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, или DataBuffer.TYPE_INT.- Parameters:
-
inData- массив значений пикселей - Returns:
- значение синего компонента указанного пикселя.
- Throws:
-
ClassCastException- еслиinDataне является примитивным массивом типаtransferType -
ArrayIndexOutOfBoundsException- еслиinDataне достаточно велик, чтобы содержать значение пикселя для этогоColorModel -
UnsupportedOperationException- если этотtransferTypeне поддерживается этимColorModel
getAlpha
public int getAlpha(Object inData)
ClassCastException. Бросается исключение ArrayIndexOutOfBoundsException, если inData не достаточно велик, чтобы содержать значение пикселя для этого ColorModel. Если этот transferType не поддерживается, будет брошено исключение UnsupportedOperationException. Поскольку ColorModel — абстрактный класс, любой экземпляр должен быть экземпляром подкласса. Подклассы наследуют реализацию этого метода, и если они его не переопределяют, этот метод выбрасывает исключение, если подкласс использует тип transferType отличный от DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, или DataBuffer.TYPE_INT.- Parameters:
-
inData- указанный пиксель - Returns:
- альфа-компонент указанного пикселя, масштабированный от 0 до 255.
- Throws:
-
ClassCastException- еслиinDataне является примитивным массивом типаtransferType -
ArrayIndexOutOfBoundsException- еслиinDataне достаточно велик, чтобы содержать значение пикселя для этогоColorModel -
UnsupportedOperationException- если этотtranferTypeне поддерживается этимColorModel
getRGB
public int getRGB(Object inData)
ClassCastException. Бросается исключение ArrayIndexOutOfBoundsException, если inData не достаточно велик, чтобы содержать значение пикселя для этого ColorModel. Возвращаемое значение будет в формате без умножения на альфа-канал, то есть если альфа-канал умножен, этот метод делит его из компонент цвета (если значение альфа-канала равно 0, значения цвета будут 0).- Parameters:
-
inData- указанный пиксель - Returns:
- компоненты цвета и альфа указанного пикселя.
- See Also:
getDataElements
public Object getDataElements(int rgb, Object pixel)
ColorModel, заданный целочисленным представлением пикселя в стандартной цветовой модели RGB. Этот массив затем можно передать методу WritableRaster.setDataElements(int, int, java.lang.Object) объекта WritableRaster. Если переменная пикселя null, будет выделен новый массив. Если pixel не является null, он должен быть примитивным массивом типа transferType; в противном случае будет брошено исключение ClassCastException. Бросается исключение ArrayIndexOutOfBoundsException, если pixel недостаточно велик для хранения значения пикселя для этого ColorModel. Если этот transferType не поддерживается, будет брошено исключение UnsupportedOperationException. Поскольку ColorModel является абстрактным классом, любой экземпляр является экземпляром подкласса. Подклассы должны переопределить этот метод, так как реализация в этом абстрактном классе выбрасывает исключение UnsupportedOperationException. - Parameters:
-
rgb- целочисленное представление пикселя в стандартной цветовой модели RGB -
pixel- указанный пиксель - Returns:
- массив, представляющий указанный пиксель в этом
ColorModel. - Throws:
-
ClassCastException- еслиpixelне является примитивным массивом типаtransferType -
ArrayIndexOutOfBoundsException- еслиpixelнедостаточно велик для хранения значения пикселя для этогоColorModel -
UnsupportedOperationException- если этот метод не поддерживается этимColorModel - See Also:
getComponents
public int[] getComponents(int pixel, int[] components, int offset)
ColorModel. Значение пикселя задано как int. Бросается исключение IllegalArgumentException, если значения пикселей для этого ColorModel не могут быть удобно представлены как единый int, или если значения цветовых компонентов для этого ColorModel не могут быть удобно представлены в ненормализованной форме. Например, этот метод может быть использован для извлечения компонентов для определенного значения пикселя в DirectColorModel. Если массив компонентов null, будет выделен новый массив. Массив компонентов будет возвращен. Цветовые/альфа-компоненты хранятся в массиве компонентов, начиная с offset (даже если массив выделен этим методом). Бросается исключение ArrayIndexOutOfBoundsException, если массив компонентов не null и не достаточно велик для хранения всех цветовых и альфа-компонентов (начиная с смещения). Поскольку ColorModel является абстрактным классом, любой экземпляр является экземпляром подкласса. Подклассы должны переопределить этот метод, так как реализация в этом абстрактном классе выбрасывает исключение UnsupportedOperationException. - Parameters:
-
pixel- указанный пиксель -
components- массив для получения цветовых и альфа-компонентов указанного пикселя -
offset- смещение в массивеcomponentsдля начала хранения цветовых и альфа-компонентов - Returns:
- массив, содержащий цветовые и альфа-компоненты указанного пикселя, начиная с указанного смещения.
- Throws:
-
UnsupportedOperationException- если этот метод не поддерживается этимColorModel
getComponents
public int[] getComponents(Object pixel, int[] components, int offset)
ColorModel. Значение пикселя задается массивом элементов данных типа transferType, переданным как ссылка на объект. Если pixel не является примитивным массивом типа transferType, будет брошено исключение ClassCastException. Бросается исключение IllegalArgumentException, если значения цветовых компонентов для этого ColorModel не могут быть удобно представлены в ненормализованной форме. Бросается исключение ArrayIndexOutOfBoundsException, если pixel недостаточно велик для хранения значения пикселя для этого ColorModel. Этот метод может быть использован для извлечения компонентов для определенного значения пикселя в любом ColorModel. Если массив компонентов null, будет выделен новый массив. Массив компонентов будет возвращен. Цветовые/альфа-компоненты хранятся в массиве components начиная с offset (даже если массив выделен этим методом). Бросается исключение ArrayIndexOutOfBoundsException, если массив компонентов не null и не достаточно велик для хранения всех цветовых и альфа-компонентов (начиная с offset). Поскольку ColorModel является абстрактным классом, любой экземпляр является экземпляром подкласса. Подклассы должны переопределить этот метод, так как реализация в этом абстрактном классе выбрасывает исключение UnsupportedOperationException. - Parameters:
-
pixel- указанный пиксель -
components- массив, получающий цветовые и альфа-компоненты указанного пикселя -
offset- индекс в массивеcomponentsдля начала хранения цветовых и альфа-компонентов указанного пикселя - Returns:
- массив, содержащий цветовые и альфа-компоненты указанного пикселя, начиная с указанного смещения.
- Throws:
-
UnsupportedOperationException- если этот метод не поддерживается этимColorModel
getUnnormalizedComponents
public int[] getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
ColorSpace для этого ColorModel. Бросается исключение IllegalArgumentException, если значения цветовых компонентов для этого ColorModel не могут быть удобно представлены в ненормализованной форме. Если массив components null, будет выделен новый массив. Массив components будет возвращен. Цветовые/альфа-компоненты хранятся в массиве components начиная с offset (даже если массив выделен этим методом). Бросается исключение ArrayIndexOutOfBoundsException, если массив components не null и не достаточно велик для хранения всех цветовых и альфа-компонентов (начиная с offset). Бросается исключение IllegalArgumentException, если массив normComponents не достаточно велик для хранения всех цветовых и альфа-компонентов, начиная со смещения normOffset. - Parameters:
-
normComponents- массив, содержащий нормализованные компоненты -
normOffset- смещение в массивеnormComponentsдля начала получения нормализованных компонентов -
components- массив, получающий компоненты изnormComponents -
offset- индекс в массивеcomponentsдля начала хранения нормализованных компонентов изnormComponents - Returns:
- массив, содержащий ненормализованные цветовые и альфа-компоненты.
- Throws:
-
IllegalArgumentException- Если значения компонентов для этогоColorModelне могут быть удобно представлены в ненормализованной форме. -
IllegalArgumentException- если длинаnormComponentsминусnormOffsetменьшеnumComponents -
UnsupportedOperationException- если конструктор этогоColorModelвызвал конструкторsuper(bits), но не переопределил этот метод. См. конструкторColorModel(int).
getNormalizedComponents
public float[] getNormalizedComponents(int[] components, int offset, float[] normComponents, int normOffset)
ColorSpace для этого ColorModel. Будет выброшено исключение IllegalArgumentException, если значения компонентов цвета для этого ColorModel не могут быть удобно представлены в ненормализованной форме. Если массив normComponents пуст, будет выделен новый массив. Будет возвращён массив normComponents. Компоненты цвета/альфа хранятся в массиве normComponents начиная с normOffset (даже если массив выделяется этим методом). Будет выброшено исключение ArrayIndexOutOfBoundsException, если массив normComponents не пуст и недостаточно велик для хранения всех компонентов цвета и альфа (начиная с normOffset). Будет выброшено исключение IllegalArgumentException, если массив components недостаточно велик для хранения всех компонентов цвета и альфа, начиная с offset. Так как ColorModel — это абстрактный класс, любой экземпляр является экземпляром подкласса. По умолчанию этот метод в этом абстрактном классе предполагает, что значения компонентов для этого класса могут быть удобно представлены в ненормализованной форме. Поэтому подклассы, экземпляры которых могут не поддерживать ненормализованную форму, должны переопределить этот метод.
- Parameters:
-
components- массив, содержащий ненормализованные компоненты -
offset- смещение в массивеcomponents, с которого начинать извлечение ненормализованных компонентов -
normComponents- массив, принимающий нормализованные компоненты -
normOffset- индекс вnormComponentsдля начала хранения нормализованных компонентов - Returns:
- массив, содержащий нормализованные компоненты цвета и альфа.
- Throws:
-
IllegalArgumentException- если значения компонентов для этогоColorModelне могут быть удобно представлены в ненормализованной форме. -
UnsupportedOperationException- если конструктор этогоColorModelвызвал конструкторsuper(bits), но не переопределил этот метод. См. конструкторColorModel(int). -
UnsupportedOperationException- если этот метод не может определить количество битов на компонент
getDataElement
public int getDataElement(int[] components, int offset)
int в этом ColorModel, заданное массивом ненормализованных компонентов цвета/альфа. Этот метод выбросит исключение IllegalArgumentException, если значения компонентов для этого ColorModel не могут быть удобно представлены как единственное int, или если значения компонентов цвета для этого ColorModel не могут быть удобно представлены в ненормализованной форме. Будет выброшено исключение ArrayIndexOutOfBoundsException, если массив components недостаточно велик для хранения всех компонентов цвета и альфа (начиная с offset). Так как ColorModel — абстрактный класс, любой его экземпляр является экземпляром подкласса. Подклассы должны переопределить этот метод, так как реализация в этом абстрактном классе выбросит исключение UnsupportedOperationException. - Parameters:
-
components- массив ненормализованных компонентов цвета и альфа -
offset- индекс вcomponentsдля начала извлечения компонентов цвета и альфа - Returns:
- значение пикселя
intв этомColorModel, соответствующее указанным компонентам. - Throws:
-
IllegalArgumentException- если значения пикселей для этогоColorModelне могут быть удобно представлены как единственноеint -
IllegalArgumentException- если значения компонентов для этогоColorModelне могут быть удобно представлены в ненормализованной форме -
ArrayIndexOutOfBoundsException- если массивcomponentsнедостаточно велик для хранения всех компонентов цвета и альфа, начиная сoffset -
UnsupportedOperationException- если этот метод не поддерживается этимColorModel
getDataElements
public Object getDataElements(int[] components, int offset, Object obj)
ColorModel, заданный массивом ненормализованных компонентов цвета/альфа. Этот массив затем можно передать методу setDataElements объекта WritableRaster. Этот метод выбросит исключение IllegalArgumentException, если значения компонентов цвета для этого ColorModel не могут быть удобно представлены в ненормализованной форме. Будет выброшено исключение ArrayIndexOutOfBoundsException, если массив components недостаточно велик для хранения всех компонентов цвета и альфа (начиная с offset). Если переменная obj равна null, будет выделен новый массив. Если obj не равен null, он должен быть примитивным массивом типа transferType; в противном случае будет выброшено исключение ClassCastException. Будет выброшено исключение ArrayIndexOutOfBoundsException, если obj недостаточно велик для хранения значения пикселя для этого ColorModel. Так как ColorModel — абстрактный класс, любой его экземпляр является экземпляром подкласса. Подклассы должны переопределить этот метод, так как реализация в этом абстрактном классе выбросит исключение UnsupportedOperationException. - Parameters:
-
components- массив ненормализованных компонентов цвета и альфа -
offset- индекс вcomponentsдля начала извлечения компонентов цвета и альфа -
obj-Objectпредставляющий массив компонентов цвета и альфа - Returns:
Objectпредставляющий массив компонентов цвета и альфа.- Throws:
-
ClassCastException- еслиobjне является примитивным массивом типаtransferType -
ArrayIndexOutOfBoundsException- еслиobjнедостаточно велик для хранения значения пикселя для этогоColorModelили массивcomponentsнедостаточно велик для хранения всех компонентов цвета и альфа, начиная сoffset -
IllegalArgumentException- если значения компонентов для этогоColorModelне могут быть удобно представлены в ненормализованной форме -
UnsupportedOperationException- если этот метод не поддерживается этимColorModel - See Also:
getDataElement
public int getDataElement(float[] normComponents, int normOffset)
int в этом ColorModel, заданное массивом нормализованных компонентов цвета/альфа. Этот метод выбросит исключение IllegalArgumentException, если значения пикселей для этого ColorModel не могут быть удобно представлены как единственное int. Будет выброшено исключение ArrayIndexOutOfBoundsException, если массив normComponents недостаточно велик для хранения всех компонентов цвета и альфа (начиная с normOffset). Так как ColorModel — абстрактный класс, любой его экземпляр является экземпляром подкласса. Реализация этого метода в этом абстрактном классе сначала выполняет преобразование из нормализованной формы в ненормализованную, а затем вызывает getDataElement(int[], int). Подклассы, экземпляры которых могут не поддерживать ненормализованную форму, должны переопределить этот метод.- Parameters:
-
normComponents- массив нормализованных компонентов цвета и альфа -
normOffset- индекс вnormComponentsдля начала извлечения компонентов цвета и альфа - Returns:
- значение пикселя
intв этомColorModel, соответствующее указанным компонентам. - Throws:
-
IllegalArgumentException- если значения пикселей для этогоColorModelне могут быть удобно представлены как единственноеint -
ArrayIndexOutOfBoundsException- если массивnormComponentsнедостаточно велик для хранения всех компонентов цвета и альфа, начиная сnormOffset - Since:
- 1.4
getDataElements
public Object getDataElements(float[] normComponents, int normOffset, Object obj)
ColorModel, заданный массивом нормализованных компонентов цвета/альфа. Этот массив затем можно передать в метод setDataElements объекта WritableRaster. Бросается исключение ArrayIndexOutOfBoundsException, если массив normComponents недостаточно велик, чтобы вместить все компоненты цвета и альфа (начиная с normOffset). Если переменная obj равна null, будет выделен новый массив. Если obj не является null, он должен быть примитивным массивом типа transferType; в противном случае бросится исключение ClassCastException. Бросается исключение ArrayIndexOutOfBoundsException, если obj недостаточно велик, чтобы вместить значение пикселя для этого ColorModel. Поскольку ColorModel является абстрактным классом, любой экземпляр является экземпляром подкласса. В реализации по умолчанию этого метода в этом абстрактном классе сначала выполняется преобразование из нормализованной формы в ненормализованную, а затем вызывается метод getDataElement(int[], int, Object). Подклассы, у экземпляров которых может отсутствовать поддержка ненормализованной формы, должны переопределить этот метод.- Parameters:
-
normComponents- массив нормализованных компонентов цвета и альфа -
normOffset- индекс вnormComponents, с которого начинать извлечение компонентов цвета и альфа -
obj- примитивный массив данных для хранения возвращаемого пикселя - Returns:
- примитивный массив данных, представляющий пиксель
- Throws:
-
ClassCastException- еслиobjне является примитивным массивом типаtransferType -
ArrayIndexOutOfBoundsException- еслиobjнедостаточно велик, чтобы вместить значение пикселя для этогоColorModelили массивnormComponentsнедостаточно велик, чтобы вместить все компоненты цвета и альфа, начиная сnormOffset - Since:
- 1.4
- See Also:
getNormalizedComponents
public float[] getNormalizedComponents(Object pixel, float[] normComponents, int normOffset)
ColorModel. Значение пикселя задаётся массивом элементов данных типа transferType, переданных в качестве ссылки на объект. Если пиксель не является примитивным массивом типа transferType, бросится исключение ClassCastException. Бросается исключение ArrayIndexOutOfBoundsException, если pixel недостаточно велик, чтобы вместить значение пикселя для этого ColorModel. Нормализованные компоненты — значения типа float, находящиеся между минимальным и максимальным значениями, заданными объектом ColorSpace для этого ColorModel. Если массив normComponents пуст, будет выделен новый массив. Будет возвращён массив normComponents. Компоненты цвета/альфа хранятся в массиве normComponents начиная с normOffset (даже если массив выделяется этим методом). Бросается исключение ArrayIndexOutOfBoundsException, если массив normComponents не пуст и недостаточно велик, чтобы вместить все компоненты цвета и альфа (начиная с normOffset). Поскольку ColorModel является абстрактным классом, любой экземпляр является экземпляром подкласса. В реализации по умолчанию этого метода в этом абстрактном классе сначала извлекаются компоненты цвета и альфа в ненормализованной форме с помощью getComponents(Object, int[], int), а затем вызывается метод getNormalizedComponents(int[], int, float[], int). Подклассы, у экземпляров которых может отсутствовать поддержка ненормализованной формы, должны переопределить этот метод.- Parameters:
-
pixel- указанный пиксель -
normComponents- массив для получения нормализованных компонентов -
normOffset- смещение в массивеnormComponents, с которого начинать хранение нормализованных компонентов - Returns:
- массив, содержащий нормализованные компоненты цвета и альфа.
- Throws:
-
ClassCastException- еслиpixelне является примитивным массивом типа transferType -
ArrayIndexOutOfBoundsException- еслиnormComponentsнедостаточно велик, чтобы вместить все компоненты цвета и альфа, начиная сnormOffset -
ArrayIndexOutOfBoundsException- еслиpixelнедостаточно велик, чтобы вместить значение пикселя для этогоColorModel. -
UnsupportedOperationException- если конструктор этогоColorModelвызвал конструкторsuper(bits), но не переопределил этот метод. См. конструкторColorModel(int). -
UnsupportedOperationException- если этот метод не может определить количество бит на компонент - Since:
- 1.4
equals
public boolean equals(Object obj)
Object, которая идентична тесту на ==, так как этот класс не может обеспечить надлежащий тест на равенство для различных независимых ветвей подклассов. Подклассам рекомендуется переопределить этот метод и предоставить тест на равенство для собственных свойств в дополнение к тестам на равенство для следующих общих базовых свойств ColorModel: - Поддержка компонента альфа.
- Альфа умножается на цвет.
- Количество бит на пиксель.
- Тип прозрачности (Непрозрачный, Маска или Полупрозрачный).
- Количество компонентов в пикселе.
-
ColorSpaceтип. - Тип массива, используемого для представления значений пикселей.
- Количество значащих бит на компонент цвета и альфа.
- Overrides:
-
equalsв классеObject - Parameters:
-
obj- ссылка на объект для сравнения. - Returns:
-
trueесли этот объект такой же, как аргумент obj;falseв противном случае. - See Also:
hashCode
public int hashCode()
Object, которая возвращает системный идентификатор для класса. Подклассам рекомендуется переопределить этот метод и предоставить хеш для собственных свойств в дополнение к хешированию значений следующих общих базовых свойств ColorModel: - Поддержка компонента альфа.
- Альфа умножается на цвет.
- Количество бит на пиксель.
- Тип прозрачности (Непрозрачный, Маска или Полупрозрачный).
- Количество компонентов в пикселе.
-
ColorSpaceтип. - Тип массива, используемого для представления значений пикселей.
- Количество значащих бит на компонент цвета и альфа.
- Overrides:
-
hashCodeв классеObject - Returns:
- значение хеш-кода для этого объекта.
- See Also:
getColorSpace
public final ColorSpace getColorSpace()
ColorSpace ассоциированный с этим ColorModel.- Returns:
ColorSpaceэтогоColorModel.
coerceData
public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
isAlphaPremultiplied, предполагая, что данные в настоящее время правильно описаны этим ColorModel. Может умножить или разделить данные растра цвета на альфа-канал или ничего не делать, если данные находятся в правильном состоянии. Если данные необходимо преобразовать, этот метод также вернёт экземпляр этого ColorModel с соответствующим флагом isAlphaPremultiplied. Этот метод бросит исключение UnsupportedOperationException, если он не поддерживается этим ColorModel. Поскольку ColorModel — абстрактный класс, любой экземпляр — экземпляр подкласса. Подклассы должны переопределить этот метод, так как реализация в этом абстрактном классе бросает исключение UnsupportedOperationException. - Parameters:
-
raster- данные растра -
isAlphaPremultiplied-trueесли альфа предварительно умножена;falseв противном случае - Returns:
- объект
ColorModel, представляющий преобразованные данные.
isCompatibleRaster
public boolean isCompatibleRaster(Raster raster)
true, если raster совместим с этим ColorModel, и false, если он не совместим. Поскольку ColorModel является абстрактным классом, любой его экземпляр является экземпляром подкласса. Подклассы должны переопределить этот метод, так как реализация в этом абстрактном классе бросает исключение UnsupportedOperationException.- Parameters:
-
raster- объектRasterдля проверки совместимости - Returns:
-
trueеслиrasterсовместим с этимColorModel. - Throws:
-
UnsupportedOperationException- если этот метод не реализован для этогоColorModel
createCompatibleWritableRaster
public WritableRaster createCompatibleWritableRaster(int w, int h)
WritableRaster с заданной шириной и высотой, имеющий структуру данных (SampleModel) совместимую с этим ColorModel. Поскольку ColorModel является абстрактным классом, любой экземпляр является экземпляром подкласса. Подклассы должны переопределить этот метод, так как реализация в этом абстрактном классе выбрасывает UnsupportedOperationException. - Parameters:
-
w- ширина, применяемая к новомуWritableRaster -
h- высота, применяемая к новомуWritableRaster - Returns:
- объект
WritableRasterс заданной шириной и высотой. - Throws:
-
UnsupportedOperationException- если этот метод не поддерживается даннымColorModel - See Also:
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel с заданной шириной и высотой, имеющий структуру данных, совместимую с этим ColorModel. Поскольку ColorModel является абстрактным классом, любой экземпляр является экземпляром подкласса. Подклассы должны переопределить этот метод, так как реализация в этом абстрактном классе выбрасывает UnsupportedOperationException. - Parameters:
-
w- ширина, применяемая к новомуSampleModel -
h- высота, применяемая к новомуSampleModel - Returns:
- объект
SampleModelс заданной шириной и высотой. - Throws:
-
UnsupportedOperationException- если этот метод не поддерживается даннымColorModel - See Also:
isCompatibleSampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel с данным ColorModel. Поскольку ColorModel является абстрактным классом, любой экземпляр является экземпляром подкласса. Подклассы должны переопределить этот метод, так как реализация в этом абстрактном классе выбрасывает UnsupportedOperationException. - Parameters:
-
sm- указанныйSampleModel - Returns:
-
trueесли указанныйSampleModelсовместим с этимColorModel;falseв противном случае. - Throws:
-
UnsupportedOperationException- если этот метод не поддерживается даннымColorModel - See Also:
getAlphaRaster
public WritableRaster getAlphaRaster(WritableRaster raster)
Raster, представляющий альфа-канал изображения, извлечённый из входного Raster, при условии, что значения пикселей в этом ColorModel представляют информацию о цвете и альфа-канале как отдельные пространственные полосы (например, ComponentColorModel и DirectColorModel). Этот метод предполагает, что объекты Raster, связанные с таким ColorModel, хранят альфа-полосу, если она присутствует, как последнюю полосу данных изображения. Возвращает null если нет отдельного пространственного альфа-канала, связанного с этим ColorModel. Если это IndexColorModel, имеющий альфа-канал в таблице поиска, этот метод вернёт null, так как нет пространственно дискретного альфа-канала. Этот метод создаст новый Raster (но будет использовать массив данных). Поскольку ColorModel является абстрактным классом, любой экземпляр является экземпляром подкласса. Подклассы должны переопределить этот метод, чтобы получить поведение, отличное от возврата null, потому что реализация в этом абстрактном классе возвращает null. - Parameters:
-
raster- указанныйRaster - Returns:
- объект
Raster, представляющий альфа-канал изображения, полученный из указанногоRaster.
toString
public String toString()
ColorModel.- Overrides:
-
toStringв классеObject - Returns:
- строковое представление содержимого объекта этого
ColorModel.
© 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/java/awt/image/ColorModel.html