Класс ComponentColorModel
- Все реализуемые интерфейсы:
Transparency
public class ComponentColorModel extends ColorModel
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. Чтобы создать ComponentColorModel с другим сопоставлением цветовых отсчетов, необходимо создать подкласс этого класса и переопределить метод getNormalizedComponents(Object, float[], int). Сопоставление для отсчета альфа-канала всегда задает соответствие 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, обрабатывают значения пиксельных отсчетов как знаковые значения short, 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 создан подкласс, переопределяющий сопоставление беззнаковых значений отсчетов нормализованным значениям цветовых компонентов, или если используются знаковые значения отсчетов за пределами определенного диапазона. (Например, указание компонента альфа-канала как знакового значения short вне диапазона от 0 до 32767, нормализованный диапазон от 0.0 до 1.0, может привести к неожиданным результатам.) Приложения отвечают за надлежащее масштабирование данных пикселей перед визуализацией, чтобы цветовые компоненты находились в нормализованном диапазоне ColorSpace (полученном с помощью методов getMinValue и getMaxValue класса ColorSpace), а компонент альфа-канала — в диапазоне от 0.0 до 1.0. Если значения цветовых компонентов или компонента альфа-канала выходят за эти диапазоны, результаты визуализации не определены.
Методы, использующие представление пикселя в виде одного значения int, выбрасывают IllegalArgumentException, если только число компонентов для ComponentColorModel не равно единице и значение компонента не является беззнаковым — другими словами, если это не один цветовой компонент с типом передачи DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT или DataBuffer.TYPE_INT и без альфа-канала.
ComponentColorModel можно использовать вместе с ComponentSampleModel, BandedSampleModel или PixelInterleavedSampleModel для создания BufferedImage.
- См. также:
Краткое описание полей
Поля, объявленные в классе ColorModel
pixel_bits, transferType
Поля, объявленные в интерфейсе 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 в ColorSpace RGB по умолчанию, sRGB. |
int[] |
getComponents |
Возвращает массив ненормализованных компонентов цвета/альфа-канала для пикселя в этом ColorModel. |
int[] |
getComponents |
Возвращает массив ненормализованных компонентов цвета/альфа-канала для пикселя в этом ColorModel. |
int |
getDataElement |
Возвращает значение пикселя, представленное как int в этом ColorModel, на основе массива нормализованных компонентов цвета/альфа-канала. |
int |
getDataElement |
Возвращает значение пикселя, представленное как int в этом ColorModel, на основе массива ненормализованных компонентов цвета/альфа-канала. |
Object |
getDataElements |
Возвращает представление пикселя в виде массива элементов данных в этом ColorModel на основе массива нормализованных компонентов цвета/альфа-канала. |
Object |
getDataElements |
Возвращает представление пикселя в виде массива элементов данных в этом ColorModel на основе массива ненормализованных компонентов цвета/альфа-канала. |
Object |
getDataElements |
Возвращает представление пикселя в виде массива элементов данных в этом ColorModel на основе целочисленного представления пикселя в цветовой модели RGB по умолчанию. |
int |
getGreen |
Возвращает компонент зеленого цвета для указанного пикселя в масштабе от 0 до 255 в цветовом пространстве RGB по умолчанию, sRGB. |
int |
getGreen |
Возвращает компонент зеленого цвета для указанного пикселя в масштабе от 0 до 255 в ColorSpace 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. |
Методы, объявленные в классе 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. Если массив bits не равен null, он задает количество значащих битов для каждого цветового компонента и компонента альфа-канала; его длина должна быть не меньше количества компонентов в 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- Пиксель, из которого требуется получить компонент красного цвета. - Возвращает:
- Компонент красного цвета указанного пикселя в виде int.
- Исключения:
-
IllegalArgumentException- Если в этомColorModelбольше одного компонента. -
IllegalArgumentException- Если значение компонента для этогоColorModelявляется знаковым
getGreen
public int getGreen(int pixel)
- Указано в:
-
getGreenв классеColorModel - Параметры:
-
pixel- Пиксель, из которого требуется получить компонент зеленого цвета. - Возвращает:
- Компонент зеленого цвета указанного пикселя в виде int.
- Исключения:
-
IllegalArgumentException- Если в этомColorModelбольше одного компонента. -
IllegalArgumentException- Если значение компонента для этогоColorModelявляется знаковым
getBlue
public int getBlue(int pixel)
- Указано в:
-
getBlueв классеColorModel - Параметры:
-
pixel- Пиксель, из которого требуется получить компонент синего цвета. - Возвращает:
- Компонент синего цвета указанного пикселя в виде int.
- Исключения:
-
IllegalArgumentException- Если в этомColorModelбольше одного компонента. -
IllegalArgumentException- Если значение компонента для этогоColorModelявляется знаковым
getAlpha
public int getAlpha(int pixel)
- Указано в:
-
getAlphaв классеColorModel - Параметры:
-
pixel- Пиксель, из которого требуется получить компонент альфа-канала. - Возвращает:
- Компонент альфа-канала указанного пикселя в виде int.
- Исключения:
-
IllegalArgumentException- Если в этомColorModelбольше одного компонента. -
IllegalArgumentException- Если значение компонента для этогоColorModelявляется знаковым
getRGB
public int getRGB(int pixel)
- Переопределяет:
-
getRGBв классеColorModel - Параметры:
-
pixel- Пиксель, из которого требуется получить цветовые компоненты и компонент альфа-канала. - Возвращает:
- Цветовые компоненты и компонент альфа-канала указанного пикселя в виде int.
- Исключения:
-
IllegalArgumentException- Если в этомColorModelбольше одного компонента. -
IllegalArgumentException- Если значение компонента для этогоColorModelявляется знаковым - См. также:
getRed
public int getRed(Object inData)
pixel задается массивом элементов данных типа transferType, переданным в виде ссылки на объект. Возвращаемое значение не является предварительно умноженным. Если альфа-канал предварительно умножен, этот метод делит на него значение перед возвратом (если значение альфа-канала равно 0, значение красного цвета будет равно 0). Поскольку ComponentColorModel можно наследовать, подклассы наследуют реализацию этого метода и, если не переопределяют его, выбрасывают исключение при использовании неподдерживаемого transferType.- Переопределяет:
-
getRedв классеColorModel - Параметры:
-
inData- Пиксель, из которого требуется получить компонент красного цвета; задается массивом элементов данных типаtransferType. - Возвращает:
- Компонент красного цвета указанного пикселя в виде int.
- Исключения:
-
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)
ColorSpace — sRGB. При необходимости выполняется преобразование цвета. Значение pixel задается массивом элементов данных типа transferType, переданным в виде ссылки на объект. Возвращаемое значение не является предварительно умноженным. Если альфа-канал предварительно умножен, этот метод делит на него значение перед возвратом (если значение альфа-канала равно 0, значение зеленого цвета будет равно 0). Поскольку ComponentColorModel можно наследовать, подклассы наследуют реализацию этого метода и, если не переопределяют его, выбрасывают исключение при использовании неподдерживаемого transferType.- Переопределяет:
-
getGreenв классеColorModel - Параметры:
-
inData- Пиксель, из которого требуется получить компонент зеленого цвета; задается массивом элементов данных типаtransferType. - Возвращает:
- Компонент зеленого цвета указанного пикселя в виде int.
- Исключения:
-
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)
ColorSpace — sRGB. При необходимости выполняется преобразование цвета. Значение pixel задается массивом элементов данных типа transferType, переданным в виде ссылки на объект. Возвращаемое значение не является предварительно умноженным. Если альфа-канал предварительно умножен, этот метод делит на него значение перед возвратом (если значение альфа-канала равно 0, значение синего цвета будет равно 0). Поскольку ComponentColorModel можно наследовать, подклассы наследуют реализацию этого метода и, если не переопределяют его, выбрасывают исключение при использовании неподдерживаемого transferType.- Переопределяет:
-
getBlueв классеColorModel - Параметры:
-
inData- Пиксель, из которого требуется получить компонент синего цвета; задается массивом элементов данных типаtransferType. - Возвращает:
- Компонент синего цвета указанного пикселя в виде int.
- Исключения:
-
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.- Переопределяет:
-
getAlphaв классеColorModel - Параметры:
-
inData- Пиксель, из которого требуется получить компонент альфа-канала; задается массивом элементов данных типаtransferType. - Возвращает:
- Компонент альфа-канала указанного пикселя в виде int.
- Исключения:
-
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.- Переопределяет:
-
getRGBв классеColorModel - Параметры:
-
inData- Пиксель, из которого требуется получить цветовые компоненты и компонент альфа-канала; задается массивом элементов данных типаtransferType. - Возвращает:
- Цветовые компоненты и компонент альфа-канала указанного пикселя в виде int.
- Исключения:
-
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. - См. также:
getDataElements
public Object getDataElements(int rgb, Object pixel)
ColorModel, полученное из целочисленного представления пикселя в используемой по умолчанию цветовой модели RGB. Затем этот массив можно передать методу setDataElements объекта WritableRaster. Если параметр pixel равен null, выделяется новый массив. Поскольку ComponentColorModel можно наследовать, подклассы наследуют реализацию этого метода и, если не переопределяют его, выбрасывают исключение при использовании неподдерживаемого transferType.- Переопределяет:
-
getDataElementsв классеColorModel - Параметры:
-
rgb- целочисленное представление пикселя в цветовой модели RGB -
pixel- указанный пиксель - Возвращает:
- Представление пикселя в виде массива элементов данных для этой
ColorModel. - Исключения:
-
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. - См. также:
getComponents
public int[] getComponents(int pixel, int[] components, int offset)
ColorModel. Если значение компонента для этого ColorModel невозможно удобно представить в ненормализованной форме, выбрасывается IllegalArgumentException. Цветовые компоненты и компоненты альфа-канала сохраняются в массиве components начиная с позиции offset (даже если массив выделен этим методом).- Переопределяет:
-
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.- Переопределяет:
-
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недостаточно велик, чтобы вместить значение пикселя для этой 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.- Переопределяет:
-
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.- Переопределяет:
-
getNormalizedComponentsв классеColorModel - Параметры:
-
components- массив, содержащий ненормализованные компоненты -
offset- смещение в массивеcomponents, с которого начинается извлечение ненормализованных компонентов -
normComponents- массив, в который помещаются нормализованные компоненты -
normOffset- индекс вnormComponents, с которого начинается сохранение нормализованных компонентов - Возвращает:
- массив, содержащий нормализованные цветовые компоненты и компоненты альфа-канала.
- Исключения:
-
IllegalArgumentException- Если этаComponentColorModelне поддерживает ненормализованную форму
getDataElement
public int getDataElement(int[] components, int offset)
ColorModel, для заданного массива ненормализованных компонентов цвета/альфа-канала.- Переопределяет:
-
getDataElementв классеColorModel - Параметры:
-
components- массив ненормализованных компонентов цвета/альфа-канала. -
offset- смещение в массивеcomponents. - Возвращает:
- Значение пикселя, представленное в виде int.
- Выбрасывает:
-
IllegalArgumentException- если в этомColorModelсодержится более одного компонента. -
IllegalArgumentException- если этотComponentColorModelне поддерживает ненормализованную форму
getDataElements
public Object getDataElements(int[] components, int offset, Object obj)
ColorModel для заданного массива ненормализованных компонентов цвета/альфа-канала. Этот массив затем можно передать методу setDataElements объекта WritableRaster.- Переопределяет:
-
getDataElementsв классеColorModel - Параметры:
-
components- массив ненормализованных компонентов цвета/альфа-канала. -
offset- целочисленное смещение в массивеcomponents. -
obj- объект, в котором хранится представление пикселя в виде массива элементов данных. Если переменнаяobjимеет значение null, выделяется новый массив. Еслиobjне равен null, он должен быть примитивным массивом типаtransferType. ВыбрасываетсяArrayIndexOutOfBoundsException, еслиobjнедостаточно велик, чтобы вместить значение пикселя для этогоColorModel. ПосколькуComponentColorModelможет быть подклассом, подклассы наследуют реализацию этого метода. Если они его не переопределяют, то выбрасывают исключение при использовании неподдерживаемогоtransferType. - Возвращает:
- Представление пикселя в виде массива элементов данных в этом
ColorModel. - Выбрасывает:
-
IllegalArgumentException- если массив компонентов недостаточно велик, чтобы вместить все компоненты цвета и альфа-канала (начиная со смещения). -
ClassCastException- еслиobjне равен null и не является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- еслиobjнедостаточно велик, чтобы вместить значение пикселя для этогоColorModel. -
IllegalArgumentException- если этотComponentColorModelне поддерживает ненормализованную форму -
UnsupportedOperationException- если тип передачи этогоComponentColorModelне входит в число следующих типов передачи:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORTилиDataBuffer.TYPE_INT. - См. также:
getDataElement
public int getDataElement(float[] normComponents, int normOffset)
int в этом ColorModel, для заданного массива нормализованных компонентов цвета/альфа-канала. Этот метод выбрасывает IllegalArgumentException, если значения пикселей для этого ColorModel не могут быть удобно представлены одним int. Выбрасывается ArrayIndexOutOfBoundsException, если массив normComponents недостаточно велик, чтобы вместить все компоненты цвета и альфа-канала (начиная с normOffset).- Переопределяет:
-
getDataElementв классеColorModel - Параметры:
-
normComponents- массив нормализованных компонентов цвета и альфа-канала -
normOffset- индекс вnormComponents, с которого начинается получение компонентов цвета и альфа-канала - Возвращает:
- значение пикселя
intв этомColorModel, соответствующее указанным компонентам. - Выбрасывает:
-
IllegalArgumentException- если значения пикселей для этогоColorModelне могут быть удобно представлены однимint -
ArrayIndexOutOfBoundsException- если массивnormComponentsнедостаточно велик, чтобы вместить все компоненты цвета и альфа-канала, начиная сnormOffset - Начиная с:
- 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.- Переопределяет:
-
getDataElementsв классеColorModel - Параметры:
-
normComponents- массив нормализованных компонентов цвета и альфа-канала -
normOffset- индекс вnormComponents, с которого начинается получение компонентов цвета и альфа-канала -
obj- примитивный массив данных для хранения возвращаемого пикселя - Возвращает:
Object, представляющий пиксель в виде примитивного массива данных- Выбрасывает:
-
ClassCastException- еслиobjне является примитивным массивом типаtransferType -
ArrayIndexOutOfBoundsException- еслиobjнедостаточно велик, чтобы вместить значение пикселя для этогоColorModel, или если массивnormComponentsнедостаточно велик, чтобы вместить все компоненты цвета и альфа-канала, начиная сnormOffset - Начиная с:
- 1.4
- См. также:
getNormalizedComponents
public float[] getNormalizedComponents(Object pixel, float[] normComponents, int normOffset)
ColorModel. Значение пикселя задается массивом элементов данных типа transferType, переданным в виде ссылки на объект. Если pixel не является примитивным массивом типа transferType, выбрасывается ClassCastException. Выбрасывается ArrayIndexOutOfBoundsException, если pixel недостаточно велик, чтобы вместить значение пикселя для этого ColorModel. Нормализованные компоненты — это значения float между минимальным и максимальным значениями для каждого компонента, заданными объектом ColorSpace для этого ColorModel. Если массив normComponents имеет значение null, будет выделен новый массив. Будет возвращен массив normComponents. Компоненты цвета/альфа-канала сохраняются в массиве normComponents, начиная с normOffset (даже если массив выделяется этим методом). Выбрасывается ArrayIndexOutOfBoundsException, если массив normComponents не равен null и недостаточно велик, чтобы вместить все компоненты цвета и альфа-канала (начиная с normOffset). Этот метод должен быть переопределен подклассом, если он предназначен для нестандартного преобразования значений выборок пикселей в значения компонентов цвета. Реализация преобразований по умолчанию в этом классе описана в комментариях к классу. Любой подкласс, реализующий нестандартное преобразование, должен соблюдать указанные там ограничения на допустимые преобразования.
- Переопределяет:
-
getNormalizedComponentsв классеColorModel - Параметры:
-
pixel- указанный пиксель -
normComponents- массив для получения нормализованных компонентов -
normOffset- смещение в массивеnormComponents, с которого начинается сохранение нормализованных компонентов - Возвращает:
- массив, содержащий нормализованные компоненты цвета и альфа-канала.
- Выбрасывает:
-
ClassCastException- еслиpixelне является примитивным массивом типа transferType -
ArrayIndexOutOfBoundsException- еслиnormComponentsнедостаточно велик, чтобы вместить все компоненты цвета и альфа-канала, начиная сnormOffset -
ArrayIndexOutOfBoundsException- еслиpixelнедостаточно велик, чтобы вместить значение пикселя для этогоColorModel. - Начиная с:
- 1.4
coerceData
public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
isAlphaPremultiplied, при условии, что текущее состояние данных правильно описано этим ColorModel. Метод может умножить или разделить данные цветового растра на альфа-канал либо ничего не делать, если данные уже находятся в нужном состоянии. Если данные необходимо привести к нужному состоянию, этот метод также возвращает экземпляр этого ColorModel с соответствующим образом установленным флагом isAlphaPremultiplied. Поскольку ColorModel может быть подклассом, подклассы наследуют реализацию этого метода. Если они его не переопределяют, то выбрасывают исключение при использовании неподдерживаемого transferType.- Переопределяет:
-
coerceDataв классеColorModel - Параметры:
-
raster- данныеWritableRaster -
isAlphaPremultiplied-true, если альфа-канал предварительно умножен; в противном случае —false - Возвращает:
- объект
ColorModel, представляющий преобразованные данные. - Выбрасывает:
-
NullPointerException- еслиrasterимеет значениеnullи требуется преобразование данных. -
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.- Переопределяет:
-
isCompatibleRasterв классеColorModel - Параметры:
-
raster- объектRasterдля проверки совместимости. - Возвращает:
-
true, еслиrasterсовместим с этимColorModel;falseв противном случае.
createCompatibleWritableRaster
public WritableRaster createCompatibleWritableRaster(int w, int h)
WritableRaster заданной ширины и высоты с раскладкой данных (SampleModel), совместимой с этим ColorModel.- Переопределяет:
-
createCompatibleWritableRasterв классеColorModel - Параметры:
-
w- ширина создаваемогоWritableRaster. -
h- высота создаваемогоWritableRaster. - Возвращает:
WritableRaster, совместимый с этимColorModel.- См. также:
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel заданной ширины и высоты с раскладкой данных, совместимой с этим ColorModel.- Переопределяет:
-
createCompatibleSampleModelв классеColorModel - Параметры:
-
w- ширина создаваемогоSampleModel. -
h- высота создаваемогоSampleModel. - Возвращает:
SampleModel, совместимый с этимColorModel.- См. также:
isCompatibleSampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel с этим ColorModel.- Переопределяет:
-
isCompatibleSampleModelв классеColorModel - Параметры:
-
sm-SampleModelдля проверки совместимости. - Возвращает:
-
true, еслиSampleModelсовместим с этимColorModel;falseв противном случае. - См. также:
getAlphaRaster
public WritableRaster getAlphaRaster(WritableRaster raster)
Raster, представляющий альфа-канал изображения, извлеченный из входного Raster. Этот метод предполагает, что объекты Raster, связанные с этим ColorModel, хранят полосу альфа-канала, если она имеется, в последней полосе данных изображения. Возвращает null, если с этим ColorModel не связан отдельный пространственный альфа-канал. Этот метод создает новый Raster, но использует тот же массив данных.- Переопределяет:
-
getAlphaRasterв классеColorModel - Параметры:
-
raster-WritableRaster, из которого извлекается альфа-канал. - Возвращает:
WritableRaster, содержащий альфа-канал изображения.
equals
public boolean equals(Object obj)
Object экземпляром ComponentColorModel и равен ли он этому ComponentColorModel.- Переопределяет:
-
equalsв классеColorModel - Параметры:
-
obj-Object, для которого проверяется равенство - Возвращает:
-
true, если указанныйObjectявляется экземпляромComponentColorModelи равен этомуComponentColorModel; в противном случае —false. - См. также:
hashCode
public int hashCode()
- Переопределяет:
-
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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/image/ComponentColorModel.html