Класс 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 | Модификатор и тип | Поле | Описание |
|---|---|---|
protected int |
pixel_bits |
Общее число битов в пикселе. |
protected int |
transferType |
Тип данных массива, используемого для представления значений пикселей. |
Поля, объявленные в интерфейсе Transparency
BITMASK, OPAQUE, TRANSLUCENT | Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
BITMASK |
Представляет данные изображения, для которых гарантируется, что они либо полностью непрозрачны (значение альфа-канала равно 1.0), либо полностью прозрачны (значение альфа-канала равно 0.0). |
static final int |
OPAQUE |
Представляет данные изображения, для которых гарантируется полная непрозрачность, то есть все пиксели имеют значение альфа-канала 1.0. |
static final int |
TRANSLUCENT |
Представляет данные изображения, содержащие или потенциально содержащие произвольные значения альфа-канала в диапазоне от 0.0 до 1.0 включительно. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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 ColorSpace — 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 в используемом по умолчанию цветовом пространстве RGB ColorSpace — 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 | Модификатор и тип | Метод | Описание |
|---|---|---|
final ColorSpace |
getColorSpace() |
Возвращает ColorSpace, связанное с этим ColorModel. |
int[] |
getComponentSize() |
Возвращает массив, содержащий число битов на каждый компонент цвета/альфа-канала. |
int |
getComponentSize |
Возвращает число битов для указанного компонента цвета/альфа-канала. |
int |
getNumColorComponents() |
Возвращает число цветовых компонентов в этом ColorModel. |
int |
getNumComponents() |
Возвращает число компонентов, включая альфа-канал, в этом ColorModel. |
int |
getPixelSize() |
Возвращает число битов на пиксель, описываемое этим ColorModel. |
static ColorModel |
getRGBdefault() |
Возвращает DirectColorModel, описывающий формат по умолчанию для целочисленных значений RGB, используемый во многих методах интерфейсов изображений AWT для удобства программиста. |
final int |
getTransferType() |
Возвращает тип передачи этого ColorModel. |
int |
getTransparency() |
Возвращает тип прозрачности. |
final boolean |
hasAlpha() |
Возвращает информацию о том, поддерживается ли альфа-канал в этом ColorModel. |
final boolean |
isAlphaPremultiplied() |
Возвращает информацию о том, был ли альфа-канал предварительно умножен в значениях пикселей, преобразуемых этим ColorModel. |
String |
toString() |
Возвращает представление содержимого этого объекта String в виде ColorModel. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс этого Object во время выполнения. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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. Если значения цветовых компонентов для этой ColorModel невозможно удобно представить в ненормализованной форме, будет выброшено исключение IllegalArgumentException. Если массив components равен null, будет выделен новый массив. Будет возвращен массив components. Цветовые компоненты и компонент альфа-канала сохраняются в массиве components, начиная с позиции offset (даже если массив выделен этим методом). Если массив components не равен null и его размера недостаточно для хранения всех цветовых компонентов и компонента альфа-канала (начиная с offset), выбрасывается исключение ArrayIndexOutOfBoundsException. Если размер массива normComponents недостаточен для хранения всех цветовых компонентов и компонента альфа-канала, начиная с normOffset, выбрасывается исключение IllegalArgumentException.- Переопределяет:
-
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. Если значения цветовых компонентов для этой ColorModel невозможно удобно представить в ненормализованной форме, будет выброшено исключение IllegalArgumentException. Если массив normComponents равен null, будет выделен новый массив. Будет возвращен массив normComponents. Цветовые компоненты и компонент альфа-канала сохраняются в массиве normComponents, начиная с позиции normOffset (даже если массив выделен этим методом). Если массив normComponents не равен null и его размера недостаточно для хранения всех цветовых компонентов и компонента альфа-канала (начиная с normOffset), выбрасывается исключение ArrayIndexOutOfBoundsException. Если размер массива components недостаточен для хранения всех цветовых компонентов и компонента альфа-канала, начиная с offset, выбрасывается исключение IllegalArgumentException.- Переопределяет:
-
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.