Класс ComponentColorModel
- Все реализованные интерфейсы:
Transparency
public class ComponentColorModel extends ColorModel
ColorSpace. Количество цветовых образцов в пиксельных значениях должно совпадать с количеством цветовых компонентов в ColorSpace. Может быть один образец альфы. Для методов, использующих примитивный массив пикселей типа transferType, длина массива равна количеству цветовых и альфа-образцов. Цветовые образцы хранятся в массиве первыми, а затем образец альфы, если он присутствует. Порядок цветовых образцов задаётся ColorSpace. Обычно этот порядок отражает имя типа цветового пространства. Например, для TYPE_RGB индекс 0 соответствует красному, индекс 1 — зелёному, а индекс 2 — синему.
Перевод от пиксельных образцов к цветовым/альфа-компонентам для отображения или обработки основан на взаимно-однозначном соответствии образцов компонентам. В зависимости от типа преобразования, используемого для создания экземпляра ComponentColorModel, пиксельные образцы, представленные этим экземпляром, могут быть знаковыми или беззнаковыми, и могут быть целого типа, или float или double (см. подробности ниже). Перевод от значений образцов к нормализованным цветовым/альфа-компонентам должен следовать определённым правилам. Для образцов float и double перевод — тождественный, т.е. нормализованные значения компонентов равны соответствующим значениям образцов. Для целочисленных образцов перевод должен быть просто масштабированием и сдвигом, где константы масштабирования и сдвига могут отличаться для каждого компонента. Результатом применения констант масштабирования и сдвига является набор значений цветовых/альфа-компонентов, которые гарантированно попадают в определённый диапазон. Обычно диапазон для цветового компонента определяется методами getMinValue и getMaxValue класса ColorSpace. Диапазон для альфа-компонента должен быть от 0,0 до 1,0.
Экземпляры класса ComponentColorModel, созданные с типами преобразования DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT и DataBuffer.TYPE_INT, имеют пиксельные значения образцов, которые рассматриваются как беззнаковые целые значения. Количество битов в цветовом или альфа-образце пиксельного значения может не совпадать с количеством битов для соответствующего цветового или альфа-образца, переданного конструктору ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int). В этом случае этот класс предполагает, что n младших битов значения образца содержат значение компонента, где n — количество значащих битов для компонента, переданного в конструктор. Он также предполагает, что все старшие биты в значении образца равны нулю. Таким образом, значения образцов находятся в диапазоне от 0 до 2n - 1. Этот класс отображает эти значения образцов в нормализованные значения цветовых компонентов таким образом, что 0 отображается на значение, полученное из метода ColorSpace's getMinValue для каждого компонента, а 2n - 1 отображается на значение, полученное из метода getMaxValue. Для отображения альфа-образца 0 всегда отображается на 0,0, а 2n - 1 на 1,0.
Для экземпляров с беззнаковыми значениями образцов представление ненормализованных цветовых/альфа-компонентов поддерживается только при выполнении двух условий. Во-первых, значение образца 0 должно отображаться на нормализованное значение компонента 0,0, а значение образца 2n - 1 на 1,0. Во-вторых, диапазон min/max всех цветовых компонентов ColorSpace должен быть от 0,0 до 1,0. В этом случае представление компонента — n младших значащих битов соответствующего образца. Таким образом, каждый компонент представляет собой беззнаковое целое значение от 0 до 2n - 1, где n — количество значащих битов для конкретного компонента. Если эти условия не выполнены, любой метод, принимающий аргумент ненормализованного компонента, выбросит исключение IllegalArgumentException.
Экземпляры класса ComponentColorModel, созданные с типами преобразования DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT и DataBuffer.TYPE_DOUBLE, имеют пиксельные значения образцов, которые рассматриваются как знаковое короткое число, float или double. Такие экземпляры не поддерживают представление ненормализованных цветовых/альфа-компонентов, поэтому любые методы, принимающие такое представление в качестве аргумента, выбросят исключение IllegalArgumentException при вызове для одного из этих экземпляров. Нормализованные значения компонентов экземпляров этого класса имеют диапазон, зависящий от типа преобразования следующим образом: для float образцов — весь диапазон типа float; для double образцов — весь диапазон типа float (в результате приведения double к float); для short образцов — примерно от -maxVal до +maxVal, где maxVal — максимальное значение на компонент для ColorSpace (-32767 отображается на -maxVal, 0 — на 0,0, а 32767 — на +maxVal). Подкласс может переопределить масштабирование для значений образцов short в нормализованные значения компонентов, переопределив метод getNormalizedComponents(Object, float[], int). Для float и double образцов нормализованные значения компонентов принимаются равными соответствующим значениям образцов, и подклассы не должны пытаться добавить какое-либо нетождественное масштабирование для этих типов преобразования.
Экземпляры класса ComponentColorModel, созданные с типами преобразования DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT и DataBuffer.TYPE_DOUBLE, используют все биты всех значений образцов. Таким образом, все цветовые/альфа-компоненты имеют 16 битов при использовании DataBuffer.TYPE_SHORT, 32 бита при использовании DataBuffer.TYPE_FLOAT и 64 бита при использовании DataBuffer.TYPE_DOUBLE. При использовании конструктора формы ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int) с одним из этих типов преобразования аргумент массива битов игнорируется.
Возможны значения цветовых/альфа-образцов, которые нельзя разумно интерпретировать как значения компонентов для отрисовки. Это может произойти, когда ComponentColorModel наследуется для переопределения отображения беззнаковых значений образцов в нормализованные значения цветовых компонентов или при использовании знаковых значений образцов за пределами определённого диапазона. (Например, указание альфа-компонента как знаковое короткое значение за пределами диапазона от 0 до 32767, нормализованный диапазон от 0,0 до 1,0, может привести к неожиданным результатам.) Приложения должны правильно масштабировать пиксельные данные перед отрисовкой так, чтобы цветовые компоненты находились в нормализованном диапазоне ColorSpace (получаемом с помощью методов getMinValue и getMaxValue класса ColorSpace), а альфа-компонент находился между 0,0 и 1,0. Если значения цветовых или альфа-компонентов выходят за эти пределы, результаты отрисовки неопределённы.
Методы, использующие единственное целое число пиксельного представления, выбросят исключение IllegalArgumentException, за исключением случая, когда количество компонентов для ComponentColorModel равно одному, и значение компонента беззнаковое — то есть, одиночный цветовой компонент с типом преобразования DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT или DataBuffer.TYPE_INT и без альфы.
ComponentColorModel может использоваться совместно с ComponentSampleModel, BandedSampleModel или PixelInterleavedSampleModel для построения BufferedImage.
- См. также:
Краткое описание полей
Поля, объявленные в классе java.awt.image.ColorModel
pixel_bits, transferType
Поля, объявленные в интерфейсе java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ComponentColorModel |
Создаёт ComponentColorModel по заданным параметрам. |
ComponentColorModel |
Создаёт ComponentColorModel по заданным параметрам. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ColorModel |
coerceData |
Принудительно согласовывает данные растра с состоянием, указанным в переменной isAlphaPremultiplied, предполагая, что данные в настоящее время правильно описаны этим ColorModel. |
SampleModel |
createCompatibleSampleModel |
Создаёт SampleModel с указанной шириной и высотой, имеющей структуру данных, совместимую с этим ColorModel. |
WritableRaster |
createCompatibleWritableRaster |
Создаёт WritableRaster с указанной шириной и высотой, имеющей структуру данных (SampleModel), совместимую с этим ColorModel. |
boolean |
equals |
Проверяет, является ли указанный Object экземпляром ComponentColorModel и равен ли этому ComponentColorModel. |
int |
getAlpha |
Возвращает альфа-компонент для указанного пикселя, масштабированный от 0 до 255. |
int |
getAlpha |
Возвращает альфа-компонент для указанного пикселя, масштабированный от 0 до 255. |
WritableRaster |
getAlphaRaster |
Возвращает Raster, представляющий альфа-канал изображения, извлеченный из входного Raster. |
int |
getBlue |
Возвращает синюю составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. |
int |
getBlue |
Возвращает синюю составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. |
int[] |
getComponents |
Возвращает массив ненормализованных цветовых/альфа-компонентов, заданных пикселем в этом ColorModel. |
int[] |
getComponents |
Возвращает массив ненормализованных цветовых/альфа-компонентов, заданных пикселем в этом ColorModel. |
int |
getDataElement |
Возвращает значение пикселя, представленное как int в этом ColorModel, заданном массивом нормализованных цветовых/альфа-компонентов. |
int |
getDataElement |
Возвращает значение пикселя, представленное как целое число в этом ColorModel, заданном массивом ненормализованных цветовых/альфа-компонентов. |
Object |
getDataElements |
Возвращает массив данных элементов, представляющий пиксель в этом ColorModel, заданный массивом нормализованных цветовых/альфа-компонентов. |
Object |
getDataElements |
Возвращает массив данных элементов, представляющий пиксель в этом ColorModel, заданный массивом ненормализованных цветовых/альфа-компонентов. |
Object |
getDataElements |
Возвращает массив данных элементов, представляющий пиксель в этом ColorModel, заданный целым числовым представлением пикселя в стандартной модели цвета RGB. |
int |
getGreen |
Возвращает зеленую составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. |
int |
getGreen |
Возвращает зеленую составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. |
float[] |
getNormalizedComponents |
Возвращает массив всех цветовых/альфа-компонентов в нормализованной форме, заданный массивом ненормализованных компонентов. |
float[] |
getNormalizedComponents |
Возвращает массив всех цветовых/альфа-компонентов в нормализованной форме, заданный пикселем в этом ColorModel. |
int |
getRed |
Возвращает красную составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. |
int |
getRed |
Возвращает красную составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. |
int |
getRGB |
Возвращает цветовые/альфа-компоненты пикселя в формате стандартной модели цвета RGB. |
int |
getRGB |
Возвращает цветовые/альфа-компоненты для указанного пикселя в формате стандартной модели цвета RGB. |
int[] |
getUnnormalizedComponents |
Возвращает массив всех цветовых/альфа-компонентов в ненормализованной форме, заданный массивом нормализованных компонентов. |
int |
hashCode() |
Возвращает код хэша для этого ComponentColorModel. |
boolean |
isCompatibleRaster |
Возвращает true, если raster совместим с этим ColorModel; false, если нет. |
boolean |
isCompatibleSampleModel |
Проверяет совместимость указанного SampleModel с этим ColorModel. |
Методы, объявленные в классе java.awt.image.ColorModel
getColorSpace, getComponentSize, getComponentSize, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, hasAlpha, isAlphaPremultiplied, toString
Подробное описание конструкторов
ComponentColorModel
public ComponentColorModel(ColorSpace colorSpace, int[] bits, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
ComponentColorModel на основе указанных параметров. Компоненты цвета будут в указанном ColorSpace. Поддерживаемые типы передачи — DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT и DataBuffer.TYPE_DOUBLE. Если не равно null, массив bits задаёт количество значащих битов на каждый цветовой и альфа-компонент, и его длина должна быть не меньше количества компонентов в ColorSpace, если в пиксельных значениях нет альфа-информации, или на единицу больше этого числа, если альфа-информация присутствует. Когда transferType равен DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT или DataBuffer.TYPE_DOUBLE, аргумент массива bits игнорируется. hasAlpha указывает, присутствует ли альфа-информация. Если hasAlpha равно true, то булево значение isAlphaPremultiplied определяет, как интерпретировать цветовые и альфа-образцы в пиксельных значениях. Если булево значение равно true, цветовые образцы предполагаются умноженными на альфа-образец. transparency определяет, какие значения альфа могут быть представлены этой цветовой моделью. Допустимые значения transparency — OPAQUE, BITMASK или TRANSLUCENT. transferType — тип примитивного массива, используемого для представления пиксельных значений.- Параметры:
-
colorSpace—ColorSpace, связанная с этой цветовой моделью. -
bits— Количество значащих битов на каждый компонент. Может быть равно null, в этом случае все биты всех образцов компонентов будут значащими. Игнорируется, если transferType равен одному изDataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOATилиDataBuffer.TYPE_DOUBLE, в этом случае все биты всех образцов компонентов будут значащими. -
hasAlpha— Если true, эта цветовая модель поддерживает альфа-канал. -
isAlphaPremultiplied— Если true, альфа-канал предварительно умножен. -
transparency— Определяет, какие значения альфа могут быть представлены этой цветовой моделью. -
transferType— Определяет тип примитивного массива, используемого для представления пиксельных значений. - Исключения:
-
IllegalArgumentException— Если аргумент массиваbitsне равен null, его длина меньше числа цветовых и альфа-компонентов, а transferType равен одному изDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORTилиDataBuffer.TYPE_INT. -
IllegalArgumentException— Если transferType не равен одному изDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOATилиDataBuffer.TYPE_DOUBLE. - См. также:
ComponentColorModel
public ComponentColorModel(ColorSpace colorSpace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
ComponentColorModel на основе указанных параметров. Компоненты цвета будут в указанном ColorSpace. Поддерживаемые типы передачи — DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT и DataBuffer.TYPE_DOUBLE. Количество значащих битов на каждый цветовой и альфа-компонент будет 8, 16, 32, 16, 32 или 64 соответственно. Количество цветовых компонентов будет равно количеству компонентов в ColorSpace. Будет альфа-компонент, если hasAlpha равно true. Если hasAlpha равно true, то булево значение isAlphaPremultiplied определяет, как интерпретировать цветовые и альфа-образцы в пиксельных значениях. Если булево значение равно true, цветовые образцы предполагаются умноженными на альфа-образец. transparency определяет, какие значения альфа могут быть представлены этой цветовой моделью. Допустимые значения transparency — OPAQUE, BITMASK или TRANSLUCENT. transferType — тип примитивного массива, используемого для представления пиксельных значений.- Параметры:
-
colorSpace—ColorSpace, связанная с этой цветовой моделью. -
hasAlpha— Если true, эта цветовая модель поддерживает альфа-канал. -
isAlphaPremultiplied— Если true, альфа-канал предварительно умножен. -
transparency— Определяет, какие значения альфа могут быть представлены этой цветовой моделью. -
transferType— Определяет тип примитивного массива, используемого для представления пиксельных значений. - Исключения:
-
IllegalArgumentException— Если transferType не равен одному изDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOATилиDataBuffer.TYPE_DOUBLE. - С:
- 1.4
- См. также:
Подробное описание методов
getRed
public int getRed(int pixel)
- Унаследованно от:
-
getRedв классеColorModel - Параметры:
-
pixel— Пиксель, из которого нужно получить красный цветовой компонент. - Возвращает:
- Красный цветовой компонент для указанного пикселя, как целое число.
- Исключения:
-
IllegalArgumentException— Если в этойColorModelболее одного компонента. -
IllegalArgumentException— Если значение компонента для этойColorModelсо знаком
getGreen
public int getGreen(int pixel)
- Унаследованно от:
-
getGreenв классеColorModel - Параметры:
-
pixel— Пиксель, из которого нужно получить зелёный цветовой компонент. - Возвращает:
- Зелёный цветовой компонент для указанного пикселя, как целое число.
- Исключения:
-
IllegalArgumentException— Если в этойColorModelболее одного компонента. -
IllegalArgumentException— Если значение компонента для этойColorModelсо знаком
getBlue
public int getBlue(int pixel)
- Унаследованно от:
-
getBlueв классеColorModel - Параметры:
-
pixel— Пиксель, из которого нужно получить синий цветовой компонент. - Возвращает:
- Синий цветовой компонент для указанного пикселя, как целое число.
- Исключения:
-
IllegalArgumentException— Если в этойColorModelболее одного компонента. -
IllegalArgumentException— Если значение компонента для этойColorModelсо знаком
getAlpha
public int getAlpha(int pixel)
- Унаследованно от:
-
getAlphaв классеColorModel - Параметры:
-
pixel— Пиксель, из которого нужно получить альфа-компонент. - Возвращает:
- Альфа-компонент для указанного пикселя, как целое число.
- Исключения:
-
IllegalArgumentException— Если в этойColorModelболее одного компонента. -
IllegalArgumentException— Если значение компонента для этойColorModelсо знаком
getRGB
public int getRGB(int pixel)
- Переопределяет:
-
getRGBв классеColorModel - Параметры:
-
pixel— Пиксель, из которого нужно получить цветовые/альфа-компоненты. - Возвращает:
- Цветовые/альфа-компоненты для указанного пикселя, как целое число.
- Исключения:
-
IllegalArgumentException— Если в этойColorModelболее одного компонента. -
IllegalArgumentException— Если значение компонента для этойColorModelсо знаком - См. также:
getRed
public int getRed(Object inData)
pixel задаётся массивом элементов данных типа transferType, переданным в качестве ссылки на объект. Возвращаемое значение не является предварительно умноженным. Если альфа-компонент предварительно умножен, этот метод делит его перед возвращением значения (если значение альфы равно 0, значение красного цвета будет 0). Так как ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используется неподдерживаемый transferType.- Overrides:
-
getRedв классеColorModel - Parameters:
-
inData- Пиксель, из которого требуется получить красный цветовой компонент, заданный массивом элементов данных типаtransferType. - Returns:
- Красный цветовой компонент для указанного пикселя в виде целого числа.
- Throws:
-
ClassCastException- ЕслиinDataне является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- еслиinDataнедостаточно велик для хранения значения пикселя для этогоColorModel. -
UnsupportedOperationException- Если тип передачи этогоComponentColorModelне является одним из поддерживаемых типов передачи:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOATилиDataBuffer.TYPE_DOUBLE.
getGreen
public int getGreen(Object inData)
pixel задаётся массивом элементов данных типа transferType, переданным в качестве ссылки на объект. Возвращаемое значение не является предварительно умноженным. Если альфа-компонент предварительно умножен, этот метод делит его перед возвращением значения (если значение альфы равно 0, значение зелёного цвета будет 0). Так как ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используется неподдерживаемый transferType.- Overrides:
-
getGreenв классеColorModel - Parameters:
-
inData- Пиксель, из которого требуется получить зелёный цветовой компонент, заданный массивом элементов данных типаtransferType. - Returns:
- Зелёный цветовой компонент для указанного пикселя в виде целого числа.
- Throws:
-
ClassCastException- ЕслиinDataне является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- еслиinDataнедостаточно велик для хранения значения пикселя для этогоColorModel. -
UnsupportedOperationException- Если тип передачи этогоComponentColorModelне является одним из поддерживаемых типов передачи:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOATилиDataBuffer.TYPE_DOUBLE.
getBlue
public int getBlue(Object inData)
pixel задаётся массивом элементов данных типа transferType, переданным в качестве ссылки на объект. Возвращаемое значение не является предварительно умноженным. Если альфа-компонент предварительно умножен, этот метод делит его перед возвращением значения (если значение альфы равно 0, значение синего цвета будет 0). Так как ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используется неподдерживаемый transferType.- Overrides:
-
getBlueв классеColorModel - Parameters:
-
inData- Пиксель, из которого требуется получить синий цветовой компонент, заданный массивом элементов данных типаtransferType. - Returns:
- Синий цветовой компонент для указанного пикселя в виде целого числа.
- Throws:
-
ClassCastException- ЕслиinDataне является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- еслиinDataнедостаточно велик для хранения значения пикселя для этогоColorModel. -
UnsupportedOperationException- Если тип передачи этогоComponentColorModelне является одним из поддерживаемых типов передачи:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOATилиDataBuffer.TYPE_DOUBLE.
getAlpha
public int getAlpha(Object inData)
transferType, переданным в качестве ссылки на объект. Так как ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используется неподдерживаемый transferType.- Overrides:
-
getAlphaв классеColorModel - Parameters:
-
inData- Пиксель, из которого требуется получить альфа-компонент, заданный массивом элементов данных типаtransferType. - Returns:
- Альфа-компонент для указанного пикселя в виде целого числа.
- Throws:
-
ClassCastException- ЕслиinDataне является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- еслиinDataнедостаточно велик для хранения значения пикселя для этогоColorModel. -
UnsupportedOperationException- Если тип передачи этогоComponentColorModelне является одним из поддерживаемых типов передачи:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOATилиDataBuffer.TYPE_DOUBLE.
getRGB
public int getRGB(Object inData)
transferType, переданным в качестве ссылки на объект. Возвращаемое значение в формате без предварительного умножения. Если альфа-компонент предварительно умножен, этот метод делит его из цветовых компонентов (если значение альфы равно 0, значения цветов будут 0). Так как ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используется неподдерживаемый transferType.- Overrides:
-
getRGBв классеColorModel - Parameters:
-
inData- Пиксель, из которого требуется получить цветовые/альфа-компоненты, заданный массивом элементов данных типаtransferType. - Returns:
- Цветовые/альфа-компоненты для указанного пикселя в виде целого числа.
- Throws:
-
ClassCastException- ЕслиinDataне является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- еслиinDataнедостаточно велик для хранения значения пикселя для этогоColorModel. -
UnsupportedOperationException- Если тип передачи этогоComponentColorModelне является одним из поддерживаемых типов передачи:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOATилиDataBuffer.TYPE_DOUBLE. - See Also:
getDataElements
public Object getDataElements(int rgb, Object pixel)
ColorModel, на основе целого представления пикселя в стандартной цветовой модели RGB. Этот массив затем можно передать методу setDataElements объекта WritableRaster. Если параметр pixel равен null, создаётся новый массив. Так как ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используется неподдерживаемый transferType.- Overrides:
-
getDataElementsв классеColorModel - Parameters:
-
rgb- целое представление пикселя в цветовой модели RGB -
pixel- указанный пиксель - Returns:
- Массив элементов данных, представляющий пиксель в этом
ColorModel. - Throws:
-
ClassCastException- Еслиpixelне равен null и не является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- Еслиpixelнедостаточно велик для хранения значения пикселя для этогоColorModel. -
UnsupportedOperationException- Если тип передачи этогоComponentColorModelне является одним из поддерживаемых типов передачи:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOATилиDataBuffer.TYPE_DOUBLE. - See Also:
getComponents
public int[] getComponents(int pixel, int[] components, int offset)
ColorModel. Если значение компонента для этого ColorModel не может быть удобно представлено в ненормализованной форме, выбрасывается исключение IllegalArgumentException. Цветовые/альфа-компоненты хранятся в массиве components, начиная с offset (даже если массив выделяется этим методом).- Overrides:
-
getComponentsв классеColorModel - Параметры:
-
pixel- Значение пикселя, указанное как целое число. -
components- Массив целых чисел, в котором необходимо сохранить ненормализованные цветовые/альфа-компоненты. Если массивcomponentsравен null, новый массив выделяется. -
offset- Смещение в массивеcomponents. - Возвращает:
- Массив компонентов.
- Исключения:
-
IllegalArgumentException- Если в этомColorModelболее одного компонента. -
IllegalArgumentException- Если этотColorModelне поддерживает ненормализованную форму. -
ArrayIndexOutOfBoundsException- Если массивcomponentsне равен null и не достаточно велик для хранения всех цветовых и альфа-компонентов (начиная со смещения).
getComponents
public int[] getComponents(Object pixel, int[] components, int offset)
ColorModel. Значение пикселя задается массивом элементов данных типа transferType, переданным в качестве ссылки на объект. Если значения компонентов для этого ColorModel не могут быть удобно представлены в ненормализованной форме, выбрасывается исключение IllegalArgumentException. Цветовые/альфа-компоненты хранятся в массиве components, начиная с offset (даже если массив выделяется этим методом). Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, этот метод может выбросить исключение, если они используют неподдерживаемый transferType.- Overrides:
-
getComponentsв классеColorModel - Параметры:
-
pixel- Значение пикселя, заданное массивом элементов данных типаtransferType. -
components- Массив целых чисел, в котором необходимо сохранить ненормализованные цветовые/альфа-компоненты. Если массивcomponentsравен null, новый массив выделяется. -
offset- Смещение в массивеcomponents. - Возвращает:
- Массив
components. - Исключения:
-
IllegalArgumentException- Если этотComponentColorModelне поддерживает ненормализованную форму. -
UnsupportedOperationException- в некоторых случаях, если тип передачи этогоComponentColorModelне является одним из следующих типов передачи:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORTилиDataBuffer.TYPE_INT. -
ClassCastException- Еслиpixelне является примитивным массивом типаtransferType. -
IllegalArgumentException- Если массивcomponentsне равен null и не достаточно велик для хранения всех цветовых и альфа-компонентов (начиная со смещения), или еслиpixelне достаточно велик для хранения значения пикселя для этой модели цвета.
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.- Overrides:
-
getUnnormalizedComponentsв классеColorModel - Параметры:
-
normComponents- массив, содержащий нормализованные компоненты -
normOffset- смещение в массивеnormComponents, с которого начинать извлечение нормализованных компонентов -
components- массив, который получит компоненты изnormComponents -
offset- индекс вcomponents, с которого начинать хранение нормализованных компонентов изnormComponents - Возвращает:
- массив, содержащий ненормализованные цветовые и альфа-компоненты.
- Исключения:
-
IllegalArgumentException- Если этотComponentColorModelне поддерживает ненормализованную форму -
IllegalArgumentException- если длинаnormComponentsминусnormOffsetменьшеnumComponents
getNormalizedComponents
public float[] getNormalizedComponents(int[] components, int offset, float[] normComponents, int normOffset)
ColorSpace для этого ColorModel. Будет выброшено исключение IllegalArgumentException, если значения цветовых компонентов для этого ColorModel не могут быть удобно представлены в ненормализованной форме. Если массив normComponents равен null, будет выделен новый массив. Будет возвращен массив normComponents. Цветовые/альфа-компоненты хранятся в массиве normComponents, начиная со смещения normOffset (даже если массив выделяется этим методом). Будет выброшено исключение ArrayIndexOutOfBoundsException, если массив normComponents не равен null и не достаточно велик для хранения всех цветовых и альфа-компонентов (начиная со смещения normOffset). Будет выброшено исключение IllegalArgumentException, если массив components не достаточно велик для хранения всех цветовых и альфа-компонентов, начиная со смещения offset.- Overrides:
-
getNormalizedComponentsв классеColorModel - Параметры:
-
components- массив, содержащий ненормализованные компоненты -
offset- смещение в массивеcomponents, с которого начинать извлечение ненормализованных компонентов -
normComponents- массив, который получит нормализованные компоненты -
normOffset- индекс вnormComponents, с которого начинать хранение нормализованных компонентов - Возвращает:
- массив, содержащий нормализованные цветовые и альфа-компоненты.
- Исключения:
-
IllegalArgumentException- Если этотComponentColorModelне поддерживает ненормализованную форму
getDataElement
public int getDataElement(int[] components, int offset)
ColorModel, исходя из массива ненормализованных цветовых/альфа-компонентов.- Overrides:
-
getDataElementв классеColorModel - Параметры:
-
components- Массив ненормализованных цветовых/альфа-компонентов. -
offset- Смещение в массивеcomponents. - Возвращает:
- Значение пикселя, представленное как целое число.
- Исключения:
-
IllegalArgumentException- Если в этомColorModelболее одного компонента. -
IllegalArgumentException- Если этотComponentColorModelне поддерживает ненормализованную форму
getDataElements
public Object getDataElements(int[] components, int offset, Object obj)
ColorModel, заданный массивом ненормализованных цветовых/альфа-компонентов. Этот массив затем можно передать в метод setDataElements объекта WritableRaster.- Overrides:
-
getDataElementsв классеColorModel - Parameters:
-
components- Массив ненормализованных цветовых/альфа-компонентов. -
offset- Целочисленный смещение в массивеcomponents. -
obj- Объект, в котором хранится массив элементов данных, представляющий пиксель. Если переменнаяobjравна null, то выделяется новый массив. Еслиobjне null, то он должен быть примитивным массивом типаtransferType. Бросается исключениеArrayIndexOutOfBoundsException, еслиobjнедостаточно велик, чтобы содержать значение пикселя для этогоColorModel. Так какComponentColorModelможет быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то они бросают исключение, если используют неподдерживаемыйtransferType. - Returns:
- Массив элементов данных, представляющий пиксель в этом
ColorModel. - Throws:
-
IllegalArgumentException- Если массив компонентов недостаточно велик, чтобы вместить все цветовые и альфа-компоненты (начиная со смещения). -
ClassCastException- Еслиobjне null и не является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- Еслиobjнедостаточно велик, чтобы содержать значение пикселя для этогоColorModel. -
IllegalArgumentException- Если этотComponentColorModelне поддерживает ненормализованную форму. -
UnsupportedOperationException- Если тип преобразования этогоComponentColorModelне является одним из следующих типов преобразования:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORTилиDataBuffer.TYPE_INT. - See Also:
getDataElement
public int getDataElement(float[] normComponents, int normOffset)
int в этом ColorModel, заданное массивом нормализованных цветовых/альфа-компонентов. Этот метод бросит исключение IllegalArgumentException, если значения пикселей для этого ColorModel не могут быть удобно представлены как единое int. Бросается исключение ArrayIndexOutOfBoundsException, если массив normComponents недостаточно велик, чтобы содержать все цветовые и альфа-компоненты (начиная со смещения normOffset).- Overrides:
-
getDataElementв классеColorModel - 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.- Overrides:
-
getDataElementsв классеColorModel - 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. Нормализованные компоненты — это значения с плавающей точкой от минимального до максимального значения для каждого компонента, определённые объектом ColorSpace для этого ColorModel. Если массив normComponents равен null, то выделяется новый массив. Будет возвращен массив normComponents. Цветовые/альфа-компоненты хранятся в массиве normComponents, начиная с normOffset (даже если массив выделяется этим методом). Бросается исключение ArrayIndexOutOfBoundsException, если массив normComponents не null и недостаточно велик, чтобы вместить все цветовые и альфа-компоненты, начиная со смещения normOffset. Этот метод должен быть переопределён подклассом, если этот подкласс предназначен для перевода значений образцов пикселей в значения цветовых компонентов нестандартным способом. Стандартные преобразования, реализованные в этом классе, описаны в комментариях к классу. Любой подкласс, реализующий нестандартное преобразование, должен следовать ограничениям на разрешённые преобразования, определённые там.
- Overrides:
-
getNormalizedComponentsв классеColorModel - Parameters:
-
pixel- указанный пиксель -
normComponents- массив для получения нормализованных компонентов -
normOffset- смещение в массивеnormComponents, с которого начинать хранение нормализованных компонентов - Returns:
- массив, содержащий нормализованные цветовые и альфа-компоненты.
- Throws:
-
ClassCastException- еслиpixelне является примитивным массивом типа transferType -
ArrayIndexOutOfBoundsException- еслиnormComponentsнедостаточно велик, чтобы вместить все цветовые и альфа-компоненты, начиная со смещенияnormOffset -
ArrayIndexOutOfBoundsException- еслиpixelнедостаточно велик, чтобы вместить значение пикселя для этогоColorModel. - Since:
- 1.4
coerceData
public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
isAlphaPremultiplied, предполагая, что данные в настоящее время корректно описываются этим ColorModel. Может умножить или разделить цветовые данные растра на альфа-канал или ничего не делать, если данные находятся в правильном состоянии. Если данные требуют принудительного согласования, этот метод также возвращает экземпляр этого ColorModel с соответствующим флагом isAlphaPremultiplied. Так как ColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то они бросают исключение, если используют неподдерживаемый transferType.- Overrides:
-
coerceDataв классеColorModel - Parameters:
-
raster- данныеWritableRaster -
isAlphaPremultiplied- true, если альфа-канал предварительно умножен; false в противном случае - Returns:
- объект
ColorModel, представляющий скорректированные данные. - Throws:
-
NullPointerException- еслиrasterравен true и требуются корректировки данных. -
UnsupportedOperationException- если тип преобразования этогоComponentColorModelне является одним из поддерживаемых типов преобразования:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOATилиDataBuffer.TYPE_DOUBLE.
isCompatibleRaster
public boolean isCompatibleRaster(Raster raster)
raster совместим с этим ColorModel; false, если не совместим.- Overrides:
-
isCompatibleRasterв классеColorModel - Параметры:
-
raster- ОбъектRasterдля проверки совместимости. - Возвращает:
-
true, еслиrasterсовместим с этимColorModel,falseв противном случае.
createCompatibleWritableRaster
public WritableRaster createCompatibleWritableRaster(int w, int h)
WritableRaster с заданной шириной и высотой, имеющий структуру данных (SampleModel), совместимую с этим ColorModel.- Overrides:
-
createCompatibleWritableRasterв классеColorModel - Параметры:
-
w- Ширина создаваемогоWritableRaster. -
h- Высота создаваемогоWritableRaster. - Возвращает:
WritableRaster, совместимый с этимColorModel.- См. также:
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel с заданной шириной и высотой, имеющий структуру данных, совместимую с этим ColorModel.- Overrides:
-
createCompatibleSampleModelв классеColorModel - Параметры:
-
w- Ширина создаваемогоSampleModel. -
h- Высота создаваемогоSampleModel. - Возвращает:
SampleModel, совместимый с этимColorModel.- См. также:
isCompatibleSampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel с этим ColorModel.- Overrides:
-
isCompatibleSampleModelв классеColorModel - Параметры:
-
sm-SampleModelдля проверки совместимости. - Возвращает:
-
true, еслиSampleModelсовместим с этимColorModel,falseв противном случае. - См. также:
getAlphaRaster
public WritableRaster getAlphaRaster(WritableRaster raster)
Raster, представляющий альфа-канал изображения, извлечённый из входного Raster. Этот метод предполагает, что объекты Raster, связанные с этим ColorModel, хранят альфа-полосу (если она есть) как последнюю полосу данных изображения. Возвращает null, если нет отдельного пространственного альфа-канала, связанного с этим ColorModel. Этот метод создаёт новый Raster, но будет использовать общий массив данных.- Overrides:
-
getAlphaRasterв классеColorModel - Параметры:
-
raster-WritableRasterдля извлечения альфа-канала. - Возвращает:
WritableRaster, содержащий альфа-канал изображения.
equals
public boolean equals(Object obj)
Object экземпляром ComponentColorModel и равен ли этому ComponentColorModel.- Overrides:
-
equalsв классеColorModel - Параметры:
-
obj- ОбъектObjectдля проверки равенства - Возвращает:
-
true, если указанныйObjectявляется экземпляромComponentColorModelи равен этомуComponentColorModel;falseв противном случае. - См. также:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеColorModel - Возвращает:
- хэш-код для этого ComponentColorModel.
- См. также:
© 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/java/awt/image/ComponentColorModel.html