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