Класс ComponentColorModel
- Все реализованные интерфейсы:
Transparency
public class ComponentColorModel extends ColorModel
ColorSpace. Количество цветовых образцов в пиксельных значениях должно быть таким же, как и количество цветовых компонентов в ColorSpace. Может быть один образец альфа-канала. Для методов, использующих примитивный массив пикселей типа transferType, длина массива совпадает с количеством цветовых и альфа-образцов. Цветовые образцы хранятся в массиве первыми, за ними, если есть, образец альфа-канала. Порядок цветовых образцов задаётся ColorSpace. Обычно, этот порядок отражает название типа цветового пространства. Например, для TYPE_RGB, индекс 0 соответствует красному, индекс 1 — зелёному, а индекс 2 — синему.
Преобразование из пиксельных значений образцов в цветовые/альфа-компоненты для отображения или обработки основано на взаимно однозначном соответствии образцов и компонентов. В зависимости от типа преобразования, используемого для создания экземпляра ComponentColorModel, пиксельные значения образцов, представленные этим экземпляром, могут быть знаковыми или беззнаковыми, и могут быть целочисленного типа, float или double (подробнее см. ниже). Преобразование из значений образцов в нормализованные цветовые/альфа-компоненты должно следовать определённым правилам. Для образцов float и double преобразование является тождественным, т.е. нормализованные значения компонентов равны соответствующим значениям образцов. Для целочисленных образцов преобразование должно быть просто масштабированием и сдвигом, где константы масштабирования и сдвига могут отличаться для каждого компонента. Результатом применения констант масштабирования и сдвига является набор значений цветовых/альфа-компонентов, которые гарантированно попадают в определённый диапазон. Обычно диапазон для цветового компонента будет диапазоном, определённым методами getMinValue и getMaxValue класса ColorSpace. Диапазон для альфа-компонента должен составлять от 0,0 до 1,0.
Экземпляры ComponentColorModel , созданные с типами преобразования DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, и DataBuffer.TYPE_INT, имеют пиксельные значения образцов, которые рассматриваются как беззнаковые целочисленные значения. Количество бит в цветовом или альфа-образце пиксельного значения может не совпадать с количеством бит для соответствующего цветового или альфа-образца, переданного конструктору ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int). В этом случае этот класс предполагает, что n младших значащих бит значения образца содержат значение компонента, где n — количество значащих бит для компонента, переданного в конструктор. Он также предполагает, что любые старшие биты в значении образца равны нулю. Таким образом, значения образцов изменяются от 0 до 2n - 1. Этот класс отображает эти значения образцов в нормализованные значения цветовых компонентов таким образом, что 0 отображается на значение, полученное из метода ColorSpace's getMinValue для каждого компонента, а 2n - 1 отображается на значение, полученное из getMaxValue. Для создания 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) с одним из этих типов преобразования, аргумент массива bits игнорируется.
Возможны значения цветовых/альфа-образцов, которые нельзя разумно интерпретировать как значения компонентов для отображения. Это может произойти, когда 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.
- См. также:
Краткое описание полей
Поля, объявленные в классе java.awt.image.ColorModel
pixel_bits, transferType
Поля, объявленные в интерфейсе java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ComponentColorModel |
Создаёт ComponentColorModel по указанным параметрам. |
ComponentColorModel |
Создаёт ComponentColorModel по указанным параметрам. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ColorModel |
coerceData |
Принудительно привязывает данные растра к состоянию, указанному в переменной isAlphaPremultiplied, предполагая, что данные в настоящее время корректно описаны этим ColorModel. |
SampleModel |
createCompatibleSampleModel |
Создаёт SampleModel заданной ширины и высоты, с макетом данных, совместимым с этим ColorModel. |
WritableRaster |
createCompatibleWritableRaster |
Создаёт WritableRaster заданной ширины и высоты, с макетом данных (SampleModel) совместимым с этим ColorModel. |
boolean |
equals |
Проверяет, является ли указанный Object экземпляром ComponentColorModel и равен ли этому ComponentColorModel. |
int |
getAlpha |
Возвращает альфа-компонент для указанного пикселя, масштабированный от 0 до 255. |
int |
getAlpha |
Возвращает альфа-компонент для указанного пикселя, масштабированный от 0 до 255. |
WritableRaster |
getAlphaRaster |
Возвращает Raster, представляющий альфа-канал изображения, извлечённый из входного Raster. |
int |
getBlue |
Возвращает синюю составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном RGB ColorSpace, 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 ColorSpace, sRGB. |
int |
getGreen |
Возвращает зеленую составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном RGB ColorSpace, sRGB. |
float[] |
getNormalizedComponents |
Возвращает массив всех цветовых/альфа-компонентов в нормализованной форме по массиву ненормализованных компонент. |
float[] |
getNormalizedComponents |
Возвращает массив всех цветовых/альфа-компонентов в нормализованной форме по пикселю в этом ColorModel. |
int |
getRed |
Возвращает красную составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном RGB ColorSpace, sRGB. |
int |
getRed |
Возвращает красную составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном RGB ColorSpace, sRGB. |
int |
getRGB |
Возвращает цветовые/альфа-компоненты пикселя в формате по умолчанию RGB. |
int |
getRGB |
Возвращает цветовые/альфа-компоненты для указанного пикселя в формате по умолчанию RGB. |
int[] |
getUnnormalizedComponents |
Возвращает массив всех цветовых/альфа-компонентов в ненормализованной форме по нормализованному массиву компонент. |
int |
hashCode() |
Возвращает хэш-код для этого ComponentColorModel. |
boolean |
isCompatibleRaster |
Возвращает true, если raster совместим с этим ColorModel; false, если нет. |
boolean |
isCompatibleSampleModel |
Проверяет, совместим ли указанный SampleModel с этим ColorModel. |
Методы, объявленные в классе java.awt.image.ColorModel
getColorSpace, getComponentSize, getComponentSize, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, hasAlpha, isAlphaPremultiplied, toString
Подробное описание конструкторов
ComponentColorModel
public ComponentColorModel(ColorSpace colorSpace, int[] bits, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
ComponentColorModel на основе указанных параметров. Цветовые компоненты будут в указанном ColorSpace. Поддерживаемые типы передачи — DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, и DataBuffer.TYPE_DOUBLE. Если не равно null, массив bits задаёт количество значащих битов на цветовой и альфа-компоненты, а его длина должна быть не менее количества компонентов в ColorSpace, если в пиксельных значениях нет информации об альфа-канале, или на единицу больше этого числа, если информация об альфа-канале есть. Когда transferType — DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, или DataBuffer.TYPE_DOUBLE, аргумент массива bits игнорируется. hasAlpha указывает, присутствует ли информация об альфа-канале. Если hasAlpha равно true, то булевое значение isAlphaPremultiplied указывает, как интерпретировать цветовые и альфа-образцы в пиксельных значениях. Если булево значение равно true, цветовые образцы предполагаются умноженными на альфа-образец. transparency указывает, какие значения альфа-канала могут быть представлены этой цветовой моделью. Допустимые значения transparency — OPAQUE, BITMASK или TRANSLUCENT. transferType — тип примитивного массива, используемого для представления пиксельных значений.- Parameters:
-
colorSpace-ColorSpace, связанная с этой цветовой моделью. -
bits- Количество значащих битов на компонент. Может быть null, в этом случае все биты всех компонентных образцов будут значащими. Игнорируется, если transferType равен одному изDataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOAT, илиDataBuffer.TYPE_DOUBLE, в этом случае все биты всех компонентных образцов будут значащими. -
hasAlpha- Если true, эта цветовая модель поддерживает альфа-канал. -
isAlphaPremultiplied- Если true, альфа-канал предварительно умножен. -
transparency- Указывает, какие значения альфа-канала могут быть представлены этой цветовой моделью. -
transferType- Указывает тип примитивного массива, используемого для представления пиксельных значений. - Throws:
-
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 — тип примитивного массива, используемого для представления пиксельных значений.- Parameters:
-
colorSpace-ColorSpace, связанная с этой цветовой моделью. -
hasAlpha- Если true, эта цветовая модель поддерживает альфа-канал. -
isAlphaPremultiplied- Если true, альфа-канал предварительно умножен. -
transparency- Указывает, какие значения альфа-канала могут быть представлены этой цветовой моделью. -
transferType- Указывает тип примитивного массива, используемого для представления пиксельных значений. - Throws:
-
IllegalArgumentException- Если transferType не равен одному изDataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOAT, илиDataBuffer.TYPE_DOUBLE. - Since:
- 1.4
- См. также:
Подробное описание методов
getRed
public int getRed(int pixel)
- Определено в:
-
getRedв классеColorModel - Parameters:
-
pixel- Пиксель, из которого необходимо получить красный цветовой компонент. - Returns:
- Красный цветовой компонент для указанного пикселя как целое число.
- Throws:
-
IllegalArgumentException- Если в этойColorModelболее одного компонента. -
IllegalArgumentException- Если значение компонента для этойColorModelсо знаком
getGreen
public int getGreen(int pixel)
- Определено в:
-
getGreenв классеColorModel - Parameters:
-
pixel- Пиксель, из которого необходимо получить зелёный цветовой компонент. - Returns:
- Зелёный цветовой компонент для указанного пикселя как целое число.
- Throws:
-
IllegalArgumentException- Если в этойColorModelболее одного компонента. -
IllegalArgumentException- Если значение компонента для этойColorModelсо знаком
getBlue
public int getBlue(int pixel)
- Определено в:
-
getBlueв классеColorModel - Parameters:
-
pixel- Пиксель, из которого необходимо получить синий цветовой компонент. - Returns:
- Синий цветовой компонент для указанного пикселя как целое число.
- Throws:
-
IllegalArgumentException- Если в этойColorModelболее одного компонента. -
IllegalArgumentException- Если значение компонента для этойColorModelсо знаком
getAlpha
public int getAlpha(int pixel)
- Определено в:
-
getAlphaв классеColorModel - Parameters:
-
pixel- Пиксель, из которого необходимо получить альфа-компонент. - Returns:
- Альфа-компонент для указанного пикселя как целое число.
- Throws:
-
IllegalArgumentException- Если в этойColorModelболее одного компонента. -
IllegalArgumentException- Если значение компонента для этойColorModelсо знаком
getRGB
public int getRGB(int pixel)
- Переопределяет:
-
getRGBв классеColorModel - Parameters:
-
pixel- Пиксель, из которого необходимо получить цветовые/альфа-компоненты. - Returns:
- Цветовые/альфа-компоненты для указанного пикселя как целое число.
- Throws:
-
IllegalArgumentException- Если в этойColorModelболее одного компонента. -
IllegalArgumentException- Если значение компонента для этойColorModelсо знаком - См. также:
getRed
public int getRed(Object inData)
pixel задается массивом элементов данных типа transferType, переданным в качестве ссылки на объект. Возвращаемое значение будет не предумноженным значением. Если альфа-компонент предумножен, этот метод делит его перед возвращением значения (если значение альфа равно 0, значение красного цвета будет 0). Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они не переопределяют его, они генерируют исключение, если используется неподдерживаемый transferType.- Overrides:
-
getRedв классеColorModel - Parameters:
-
inData- Пиксель, из которого требуется получить красный компонент цвета, заданный массивом элементов данных типаtransferType. - Returns:
- Красный компонент цвета указанного пикселя в виде целого числа.
- Throws:
-
ClassCastException- ЕслиinDataне является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- еслиinDataнедостаточно велик для хранения значения пикселя для этогоColorModel. -
UnsupportedOperationException- Если тип преобразования этогоComponentColorModelне является одним из поддерживаемых типов преобразования:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOAT, илиDataBuffer.TYPE_DOUBLE.
getGreen
public int getGreen(Object inData)
pixel задается массивом элементов данных типа transferType, переданным в качестве ссылки на объект. Возвращаемое значение — не предумноженное значение. Если альфа-компонент предумножен, этот метод делит его перед возвращением значения (если значение альфа равно 0, значение зеленого цвета будет 0). Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они не переопределяют его, они генерируют исключение, если используется неподдерживаемый transferType.- Overrides:
-
getGreenв классеColorModel - Parameters:
-
inData- Пиксель, из которого требуется получить зеленый компонент цвета, заданный массивом элементов данных типаtransferType. - Returns:
- Зеленый компонент цвета указанного пикселя в виде целого числа.
- Throws:
-
ClassCastException- ЕслиinDataне является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- еслиinDataнедостаточно велик для хранения значения пикселя для этогоColorModel. -
UnsupportedOperationException- Если тип преобразования этогоComponentColorModelне является одним из поддерживаемых типов преобразования:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOAT, илиDataBuffer.TYPE_DOUBLE.
getBlue
public int getBlue(Object inData)
pixel задается массивом элементов данных типа transferType, переданным в качестве ссылки на объект. Возвращаемое значение — не предумноженное значение. Если альфа-компонент предумножен, этот метод делит его перед возвращением значения (если значение альфа равно 0, значение синего цвета будет 0). Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они не переопределяют его, они генерируют исключение, если используется неподдерживаемый transferType.- Overrides:
-
getBlueв классеColorModel - Parameters:
-
inData- Пиксель, из которого требуется получить синий компонент цвета, заданный массивом элементов данных типаtransferType. - Returns:
- Синий компонент цвета указанного пикселя в виде целого числа.
- Throws:
-
ClassCastException- ЕслиinDataне является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- еслиinDataнедостаточно велик для хранения значения пикселя для этогоColorModel. -
UnsupportedOperationException- Если тип преобразования этогоComponentColorModelне является одним из поддерживаемых типов преобразования:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOAT, илиDataBuffer.TYPE_DOUBLE.
getAlpha
public int getAlpha(Object inData)
transferType, переданным в качестве ссылки на объект. Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они не переопределяют его, они генерируют исключение, если используется неподдерживаемый transferType.- Overrides:
-
getAlphaв классеColorModel - Parameters:
-
inData- Пиксель, из которого требуется получить альфа-компонент, заданный массивом элементов данных типаtransferType. - Returns:
- Альфа-компонент указанного пикселя в виде целого числа.
- Throws:
-
ClassCastException- ЕслиinDataне является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- еслиinDataнедостаточно велик для хранения значения пикселя для этогоColorModel. -
UnsupportedOperationException- Если тип преобразования этогоComponentColorModelне является одним из поддерживаемых типов преобразования:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOAT, илиDataBuffer.TYPE_DOUBLE.
getRGB
public int getRGB(Object inData)
transferType, переданным в качестве ссылки на объект. Возвращаемое значение находится в формате без предумножения. Если альфа-компонент предумножен, этот метод делит его из компонент цвета (если значение альфа равно 0, значения цвета будут 0). Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они не переопределяют его, они генерируют исключение, если используется неподдерживаемый transferType.- Overrides:
-
getRGBв классеColorModel - Parameters:
-
inData- Пиксель, из которого требуется получить компоненты цвета/альфа, заданный массивом элементов данных типаtransferType. - Returns:
- Компоненты цвета/альфа указанного пикселя в виде целого числа.
- Throws:
-
ClassCastException- ЕслиinDataне является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- еслиinDataнедостаточно велик для хранения значения пикселя для этогоColorModel. -
UnsupportedOperationException- Если тип преобразования этогоComponentColorModelне является одним из поддерживаемых типов преобразования:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOAT, илиDataBuffer.TYPE_DOUBLE. - See Also:
getDataElements
public Object getDataElements(int rgb, Object pixel)
ColorModel, заданный целым числовым представлением пикселя в стандартном цветовом пространстве RGB. Этот массив затем можно передать в метод setDataElements объекта WritableRaster. Если параметр pixel равен null, создается новый массив. Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они не переопределяют его, они генерируют исключение, если используется неподдерживаемый transferType.- Overrides:
-
getDataElementsв классеColorModel - Parameters:
-
rgb- целое числовое представление пикселя в цветовом пространстве RGB -
pixel- указанный пиксель - Returns:
- Массив элементов данных, представляющий пиксель в этом
ColorModel. - Throws:
-
ClassCastException- Еслиpixelне равен null и не является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- Еслиpixelнедостаточно велик для хранения значения пикселя для этогоColorModel. -
UnsupportedOperationException- Если тип преобразования этогоComponentColorModelне является одним из поддерживаемых типов преобразования:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOAT, илиDataBuffer.TYPE_DOUBLE. - See Also:
getComponents
public int[] getComponents(int pixel, int[] components, int offset)
ColorModel. Если значение компонента для этого ColorModel не может быть удобно представлено в ненормализованной форме, выбрасывается исключение IllegalArgumentException. Цветовые/альфа-компоненты хранятся в массиве components начиная с позиции offset (даже если массив выделен этим методом).- Overrides:
-
getComponentsв классеColorModel - Parameters:
-
pixel- Значение пикселя, заданное как целое число. -
components- Массив целых чисел, в котором необходимо сохранить ненормализованные цветовые/альфа-компоненты. Если массивcomponentsравен null, новый массив выделяется. -
offset- Смещение в массивеcomponents. - Returns:
- Массив компонентов.
- Throws:
-
IllegalArgumentException- Если в этомColorModelболее одного компонента. -
IllegalArgumentException- Если этотColorModelне поддерживает ненормализованную форму. -
ArrayIndexOutOfBoundsException- Если массивcomponentsне равен null и недостаточно велик для хранения всех цветовых и альфа-компонентов (начиная со смещения).
getComponents
public int[] getComponents(Object pixel, int[] components, int offset)
ColorModel. Значение пикселя задаётся массивом элементов данных типа transferType , переданным в качестве ссылки на объект. Если значения компонентов для этого ColorModel не могут быть удобно представлены в ненормализованной форме, выбрасывается исключение IllegalArgumentException. Цветовые/альфа-компоненты хранятся в массиве components начиная с позиции offset (даже если массив выделен этим методом). Так как ComponentColorModel может иметь подклассы, подклассы наследуют реализацию этого метода, и если они его не переопределяют, этот метод может выбросить исключение, если они используют неподдерживаемый transferType. - Overrides:
-
getComponentsв классеColorModel - Parameters:
-
pixel- Значение пикселя, заданное массивом элементов данных типаtransferType. -
components- Массив целых чисел, в котором необходимо сохранить ненормализованные цветовые/альфа-компоненты. Если массивcomponentsравен null, новый массив выделяется. -
offset- Смещение в массивеcomponents. - Returns:
- Массив
components. - Throws:
-
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.- Overrides:
-
getUnnormalizedComponentsв классеColorModel - Parameters:
-
normComponents- массив, содержащий нормализованные компоненты -
normOffset- смещение в массивеnormComponentsдля начала извлечения нормализованных компонентов -
components- массив, который получает компоненты изnormComponents -
offset- индекс вcomponentsдля начала хранения нормализованных компонентов изnormComponents - Returns:
- массив, содержащий ненормализованные цветовые и альфа-компоненты.
- Throws:
-
IllegalArgumentException- Если этотComponentColorModelне поддерживает ненормализованную форму. -
IllegalArgumentException- если длинаnormComponentsминусnormOffsetменьшеnumComponents
getNormalizedComponents
public float[] getNormalizedComponents(int[] components, int offset, float[] normComponents, int normOffset)
ColorSpace для этого ColorModel. Будет брошено исключение IllegalArgumentException, если значения цветовых компонентов для этого ColorModel не могут быть удобно представлены в ненормализованной форме. Если массив normComponents равен null, будет выделен новый массив. Массив normComponents будет возвращён. Цветовые/альфа-компоненты хранятся в массиве normComponents начиная с позиции normOffset (даже если массив выделен этим методом). Бросается исключение ArrayIndexOutOfBoundsException, если массив normComponents не null и недостаточно велик для хранения всех цветовых и альфа-компонентов (начиная с normOffset). Бросается исключение IllegalArgumentException, если массив components недостаточно велик для хранения всех цветовых и альфа-компонентов, начиная с offset.- Overrides:
-
getNormalizedComponentsв классеColorModel - Parameters:
-
components- массив, содержащий ненормализованные компоненты -
offset- смещение в массивеcomponentsдля начала извлечения ненормализованных компонентов -
normComponents- массив, который получает нормализованные компоненты -
normOffset- индекс вnormComponentsдля начала хранения нормализованных компонентов - Returns:
- массив, содержащий нормализованные цветовые и альфа-компоненты.
- Throws:
-
IllegalArgumentException- Если этотComponentColorModelне поддерживает ненормализованную форму.
getDataElement
public int getDataElement(int[] components, int offset)
ColorModel, заданное массивом ненормализованных цветовых/альфа-компонентов.- Overrides:
-
getDataElementв классеColorModel - Parameters:
-
components- Массив ненормализованных цветовых/альфа-компонентов. -
offset- Смещение в массивеcomponents. - Returns:
- Значение пикселя, представленное как целое число.
- Throws:
-
IllegalArgumentException- Если в этомColorModelболее одного компонента. -
IllegalArgumentException- Если этотComponentColorModelне поддерживает ненормализованную форму.
getDataElements
public Object getDataElements(int[] components, int offset, Object obj)
ColorModel, заданный массивом ненормализованных цветовых/альфа-компонентов. Этот массив затем можно передать методу setDataElements объекта WritableRaster. - Overrides:
-
getDataElementsв классеColorModel - Parameters:
-
components- Массив ненормализованных цветовых/альфа-компонентов. -
offset- Целочисленный смещение в массивеcomponents. -
obj- Объект, в котором будет храниться массив элементов данных, представляющий пиксель. Если переменнаяobjравна null, создаётся новый массив. Еслиobjне равен null, он должен быть примитивным массивом типаtransferType. Бросается исключениеArrayIndexOutOfBoundsException, еслиobjнедостаточно велик для хранения значения пикселя для этогоColorModel. ПосколькуComponentColorModelможет быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, они генерируют исключение, если используют неподдерживаемыйtransferType. - Returns:
- Массив элементов данных, представляющий пиксель в этом
ColorModel. - Throws:
-
IllegalArgumentException- Если массив компонентов недостаточно велик для хранения всех цветовых и альфа-компонентов (начиная со смещения). -
ClassCastException- Еслиobjне равен null и не является примитивным массивом типаtransferType. -
ArrayIndexOutOfBoundsException- Еслиobjнедостаточно велик для хранения значения пикселя для этогоColorModel. -
IllegalArgumentException- Если этотComponentColorModelне поддерживает ненормализованную форму. -
UnsupportedOperationException- Если тип преобразования этогоComponentColorModelне является одним из следующих типов преобразования:DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT, илиDataBuffer.TYPE_INT. - See Also:
getDataElement
public int getDataElement(float[] normComponents, int normOffset)
int в этом ColorModel, заданное массивом нормализованных цветовых/альфа-компонентов. Этот метод будет генерировать исключение IllegalArgumentException, если значения пикселей для этого ColorModel не могут удобно быть представлены как единственное int. Бросается исключение ArrayIndexOutOfBoundsException, если массив normComponents недостаточно велик для хранения всех цветовых и альфа-компонентов (начиная со смещения normOffset).- Overrides:
-
getDataElementв классеColorModel - Parameters:
-
normComponents- массив нормализованных цветовых и альфа-компонентов -
normOffset- индекс вnormComponents, с которого начинается получение цветовых и альфа-компонентов - Returns:
- значение пикселя
intв этомColorModel, соответствующее заданным компонентам. - Throws:
-
IllegalArgumentException- если значения пикселей для этогоColorModelне могут удобно быть представлены как одноint -
ArrayIndexOutOfBoundsException- если массивnormComponentsнедостаточно велик для хранения всех цветовых и альфа-компонентов, начиная со смещенияnormOffset - Since:
- 1.4
getDataElements
public Object getDataElements(float[] normComponents, int normOffset, Object obj)
ColorModel, заданный массивом нормализованных цветовых/альфа-компонентов. Этот массив можно затем передать методу setDataElements объекта WritableRaster. Бросается исключение ArrayIndexOutOfBoundsException, если массив normComponents недостаточно велик для хранения всех цветовых и альфа-компонентов (начиная со смещения normOffset). Если переменная obj равна null, будет выделен новый массив. Если obj не равен null, он должен быть примитивным массивом типа transferType; в противном случае бросится исключение ClassCastException. Исключение ArrayIndexOutOfBoundsException генерируется, если obj недостаточно велик для хранения значения пикселя для этого ColorModel.- Overrides:
-
getDataElementsв классеColorModel - Parameters:
-
normComponents- массив нормализованных цветовых и альфа-компонентов -
normOffset- индекс вnormComponents, с которого начинается получение цветовых и альфа-компонентов -
obj- примитивный массив данных для хранения возвращаемого пикселя - Returns:
- массив
Object, который является примитивным массивом данных, представляющим пиксель - Throws:
-
ClassCastException- еслиobjне является примитивным массивом типаtransferType -
ArrayIndexOutOfBoundsException- еслиobjнедостаточно велик для хранения значения пикселя для этогоColorModelили массивnormComponentsнедостаточно велик для хранения всех цветовых и альфа-компонентов, начиная со смещенияnormOffset - Since:
- 1.4
- See Also:
getNormalizedComponents
public float[] getNormalizedComponents(Object pixel, float[] normComponents, int normOffset)
ColorModel. Значение пикселя задаётся массивом элементов данных типа transferType, переданных как ссылка на объект. Если пиксель не является примитивным массивом типа transferType, бросается исключение ClassCastException. Бросается исключение ArrayIndexOutOfBoundsException, если pixel недостаточно велик для хранения значения пикселя для этого ColorModel. Нормализованные компоненты являются значениями типа float, находящимися между минимальным и максимальным значениями, заданными объектом ColorSpace для этого ColorModel. Если массив normComponents равен null, будет выделен новый массив. Возвращается массив normComponents. Цветовые/альфа-компоненты хранятся в массиве normComponents начиная со смещения normOffset (даже если массив выделен этим методом). Бросается исключение ArrayIndexOutOfBoundsException, если массив normComponents не равен null и недостаточно велик для хранения всех цветовых и альфа-компонентов (начиная со смещения normOffset). Этот метод должен быть переопределён подклассом, если этот подкласс предназначен для перевода значений образцов пикселей в значения цветовых компонентов нестандартным способом. Стандартные переводы, реализованные этим классом, описаны в комментариях к классу. Любой подкласс, реализующий нестандартный перевод, должен следовать ограничениям допустимых переводов, определённым там.
- Overrides:
-
getNormalizedComponentsв классеColorModel - Parameters:
-
pixel- указанный пиксель -
normComponents- массив для хранения нормализованных компонентов -
normOffset- смещение в массивеnormComponentsдля начала хранения нормализованных компонентов - Returns:
- массив, содержащий нормализованные цветовые и альфа-компоненты.
- Throws:
-
ClassCastException- еслиpixelне является примитивным массивом типа transferType -
ArrayIndexOutOfBoundsException- еслиnormComponentsнедостаточно велик для хранения всех цветовых и альфа-компонентов, начиная со смещенияnormOffset -
ArrayIndexOutOfBoundsException- еслиpixelнедостаточно велик для хранения значения пикселя для этогоColorModel. - Since:
- 1.4
coerceData
public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
isAlphaPremultiplied, предполагая, что данные в настоящее время корректно описываются этим ColorModel. Может умножать или делить данные цветового растра на альфа-канал или не делать ничего, если данные находятся в правильном состоянии. Если данные необходимо согласовать, этот метод также возвращает экземпляр этого ColorModel с соответствующим флагом isAlphaPremultiplied. Поскольку ColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, они бросают исключение, если используют неподдерживаемый transferType.- Overrides:
-
coerceDataв классеColorModel - Parameters:
-
raster- данныеWritableRaster -
isAlphaPremultiplied-true, если альфа-канал предопределён;falseв противном случае - Returns:
- объект
ColorModel, представляющий согласованные данные. - Throws:
-
NullPointerException- еслиrasterравен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, если нет.- Overrides:
-
isCompatibleRasterв классеColorModel - Parameters:
-
raster- ОбъектRasterдля проверки совместимости. - Returns:
-
trueеслиrasterсовместим с этимColorModel;falseесли нет.
createCompatibleWritableRaster
public WritableRaster createCompatibleWritableRaster(int w, int h)
WritableRaster с указанной шириной и высотой, имеющий схему данных (SampleModel) совместимую с этим ColorModel.- Overrides:
-
createCompatibleWritableRasterin classColorModel - Parameters:
-
w- Ширина создаваемогоWritableRaster. -
h- Высота создаваемогоWritableRaster. - Returns:
WritableRasterсовместимый с этимColorModel.- See Also:
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel с указанной шириной и высотой, имеющий схему данных совместимую с этим ColorModel.- Overrides:
-
createCompatibleSampleModelin classColorModel - Parameters:
-
w- Ширина создаваемогоSampleModel. -
h- Высота создаваемогоSampleModel. - Returns:
SampleModelсовместимый с этимColorModel.- See Also:
isCompatibleSampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel с этим ColorModel.- Overrides:
-
isCompatibleSampleModelin classColorModel - Parameters:
-
sm-SampleModelдля проверки совместимости. - Returns:
-
trueеслиSampleModelсовместим с этимColorModel,falseв противном случае. - See Also:
getAlphaRaster
public WritableRaster getAlphaRaster(WritableRaster raster)
Raster представляющий альфа-канал изображения, извлечённый из входного Raster. Этот метод предполагает, что объекты Raster, связанные с этим ColorModel хранят альфа-полосу, если она есть, как последнюю полосу данных изображения. Возвращает null, если нет отдельного пространственного альфа-канала, связанного с этим ColorModel. Этот метод создаёт новый Raster, но будет использовать общий массив данных.- Overrides:
-
getAlphaRasterin classColorModel - Parameters:
-
raster-WritableRasterдля извлечения альфа-канала. - Returns:
WritableRasterсодержащий альфа-канал изображения.
equals
public boolean equals(Object obj)
Object экземпляром ComponentColorModel и равен этому ComponentColorModel.- Overrides:
-
equalsin classColorModel - Parameters:
-
obj-Objectдля проверки на равенство - Returns:
-
trueесли указанныйObjectявляется экземпляромComponentColorModelи равен этомуComponentColorModel;falseв противном случае. - See Also:
hashCode
public int hashCode()
- Overrides:
-
hashCodein classColorModel - Returns:
- хеш-код для этого ComponentColorModel.
- See Also:
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/java/awt/image/ComponentColorModel.html