Класс 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). Подкласс может переопределить масштабирование для коротких значений образцов до нормализованных значений компонентов путём переопределения метода 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.

См. также:
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 на основе указанных параметров.

ComponentColorModel​(ColorSpace colorSpace, int[] bits, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)

Создаёт ComponentColorModel на основе указанных параметров.

Методы

Модификатор и тип Метод Описание
ColorModel coerceData​(WritableRaster raster, boolean isAlphaPremultiplied)

Принудительно согласует данные растрового изображения с состоянием, указанным в переменной isAlphaPremultiplied, предполагая, что данные в настоящее время корректно описываются этим ColorModel.

SampleModel createCompatibleSampleModel​(int w, int h)

Создаёт SampleModel заданной ширины и высоты, имеющее структуру данных, совместимую с этим ColorModel.

WritableRaster createCompatibleWritableRaster​(int w, int h)

Создаёт WritableRaster заданной ширины и высоты, имеющее структуру данных (SampleModel), совместимую с этим ColorModel.

boolean equals​(Object obj)

Проверяет, является ли указанный Object экземпляром ComponentColorModel и равен ли этому ComponentColorModel.

int getAlpha​(int pixel)

Возвращает альфа-компонент для указанного пикселя, масштабированный от 0 до 255.

int getAlpha​(Object inData)

Возвращает альфа-компонент для указанного пикселя, масштабированный от 0 до 255.

WritableRaster getAlphaRaster​(WritableRaster raster)

Возвращает Raster, представляющий альфа-канал изображения, извлеченный из входного Raster.

int getBlue​(int pixel)

Возвращает синюю составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB.

int getBlue​(Object inData)

Возвращает синюю составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB ColorSpace, sRGB.

int[] getComponents​(int pixel, int[] components, int offset)

Возвращает массив ненормализованных компонентов цвета/альфа для пикселя в этом ColorModel.

int[] getComponents​(Object pixel, int[] components, int offset)

Возвращает массив ненормализованных компонентов цвета/альфа для пикселя в этом ColorModel.

int getDataElement​(float[] normComponents, int normOffset)

Возвращает значение пикселя, представленное как int в этом ColorModel, заданного массива нормализованных компонентов цвета/альфа.

int getDataElement​(int[] components, int offset)

Возвращает значение пикселя, представленное как целое число в этом ColorModel, заданного массива ненормализованных компонентов цвета/альфа.

Object getDataElements​(float[] normComponents, int normOffset, Object obj)

Возвращает представление пикселя в виде массива элементов данных в этом ColorModel, заданного массива нормализованных компонентов цвета/альфа.

Object getDataElements​(int[] components, int offset, Object obj)

Возвращает представление пикселя в виде массива элементов данных в этом ColorModel, заданного массива ненормализованных компонентов цвета/альфа.

Object getDataElements​(int rgb, Object pixel)

Возвращает представление пикселя в виде массива элементов данных в этом ColorModel, заданного целого представления пикселя в стандартной RGB цветовой модели.

int getGreen​(int pixel)

Возвращает зеленую составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB.

int getGreen​(Object inData)

Возвращает зеленую составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB ColorSpace, sRGB.

float[] getNormalizedComponents​(int[] components, int offset, float[] normComponents, int normOffset)

Возвращает массив всех компонентов цвета/альфа в нормализованной форме, заданного массива ненормализованных компонентов.

float[] getNormalizedComponents​(Object pixel, float[] normComponents, int normOffset)

Возвращает массив всех компонентов цвета/альфа в нормализованной форме, заданного пикселя в этом ColorModel.

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)

Возвращает массив всех компонентов цвета/альфа в ненормализованной форме, заданного массива нормализованных компонентов.

int hashCode()

Возвращает код хэша для этого ComponentColorModel.

boolean isCompatibleRaster​(Raster raster)

Возвращает true, если raster совместим с этим ColorModel, false — если нет.

boolean isCompatibleSampleModel​(SampleModel sm)

Проверяет, совместим ли указанный SampleModel с этим ColorModel.

Методы, объявленные в классе java.awt.image.ColorModel

finalize, getColorSpace, getComponentSize, getComponentSize, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, hasAlpha, 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 равно true, то boolean isAlphaPremultiplied указывает, как интерпретировать образцы цвета и альфы в значениях пикселей. Если boolean равен 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.
См. также:
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 равно true, то boolean isAlphaPremultiplied определяет, как интерпретировать образцы цвета и альфы в значениях пикселей. Если boolean равен 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
ColorSpace, Transparency

Методы

getRed

public int getRed(int pixel)

Возвращает красный компонент цвета для указанного пикселя, масштабированный от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. При необходимости выполняется преобразование цвета. Значение пикселя задаётся как целое число. Возвращаемое значение будет не умноженным на альфа-канал. Если альфа-канал умножен, этот метод делит его перед возвращением значения (если значение альфа-канала равно 0, значение красного цвета будет равно 0).

Определено в:
getRed в классе ColorModel
Параметры:
pixel - Пиксель, из которого требуется получить красный компонент цвета.
Возвращает:
Красный компонент цвета для указанного пикселя как целое число.
Исключения:
IllegalArgumentException - Если в этом ColorModel содержится более одного компонента.
IllegalArgumentException - Если значение компонента для этого ColorModel со знаком

getGreen

public int getGreen(int pixel)

Возвращает зелёный компонент цвета для указанного пикселя, масштабированный от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. При необходимости выполняется преобразование цвета. Значение пикселя задаётся как целое число. Возвращаемое значение будет не умноженным на альфа-канал. Если альфа-канал умножен, этот метод делит его перед возвращением значения (если значение альфа-канала равно 0, значение зелёного цвета будет равно 0).

Определено в:
getGreen в классе ColorModel
Параметры:
pixel - Пиксель, из которого требуется получить зелёный компонент цвета.
Возвращает:
Зелёный компонент цвета для указанного пикселя как целое число.
Исключения:
IllegalArgumentException - Если в этом ColorModel содержится более одного компонента.
IllegalArgumentException - Если значение компонента для этого ColorModel со знаком

getBlue

public int getBlue(int pixel)

Возвращает синий компонент цвета для указанного пикселя, масштабированный от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. При необходимости выполняется преобразование цвета. Значение пикселя задаётся как целое число. Возвращаемое значение будет не умноженным на альфа-канал. Если альфа-канал умножен, этот метод делит его перед возвращением значения (если значение альфа-канала равно 0, значение синего цвета будет равно 0).

Определено в:
getBlue в классе ColorModel
Параметры:
pixel - Пиксель, из которого требуется получить синий компонент цвета.
Возвращает:
Синий компонент цвета для указанного пикселя как целое число.
Исключения:
IllegalArgumentException - Если в этом ColorModel содержится более одного компонента.
IllegalArgumentException - Если значение компонента для этого ColorModel со знаком

getAlpha

public int getAlpha(int pixel)

Возвращает альфа-компонент для указанного пикселя, масштабированный от 0 до 255. Значение пикселя задаётся как целое число.

Определено в:
getAlpha в классе ColorModel
Параметры:
pixel - Пиксель, из которого требуется получить альфа-компонент.
Возвращает:
Альфа-компонент для указанного пикселя как целое число.
Исключения:
IllegalArgumentException - Если в этом ColorModel содержится более одного компонента.
IllegalArgumentException - Если значение компонента для этого ColorModel со знаком

getRGB

public int getRGB(int pixel)

Возвращает компоненты цвета/альфа указанного пикселя в формате стандартной модели RGB. При необходимости выполняется преобразование цвета. Возвращаемое значение будет в формате без умножения на альфа-канал. Если альфа-канал умножен, этот метод делит компоненты цвета на него (если значение альфа-канала равно 0, значения цветов будут равны 0).

Переопределяет:
getRGB в классе ColorModel
Параметры:
pixel - Пиксель, из которого требуется получить компоненты цвета/альфа.
Возвращает:
Компоненты цвета/альфа для указанного пикселя как целое число.
Исключения:
IllegalArgumentException - Если в этом ColorModel содержится более одного компонента.
IllegalArgumentException - Если значение компонента для этого ColorModel со знаком
См. также:
ColorModel.getRGBdefault()

getRed

public int getRed(Object inData)

Возвращает красный компонент цвета для указанного пикселя, масштабированный от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. При необходимости выполняется преобразование цвета. Значение pixel задается массивом элементов данных типа transferType, переданным в качестве ссылки на объект. Возвращаемое значение будет не умноженным на альфа-канал. Если альфа-канал умножен, этот метод делит его перед возвращением значения (если значение альфа-канала равно 0, значение красного цвета будет равно 0). Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используют неподдерживаемый transferType.

Переопределяет:
getRed в классе ColorModel
Параметры:
inData - Пиксель, из которого требуется получить красный компонент цвета, заданный массивом элементов данных типа transferType.
Возвращает:
Красный компонент цвета для указанного пикселя как целое число.
Исключения:
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. При необходимости выполняется преобразование цвета. Значение pixel задается массивом элементов данных типа transferType, переданным в качестве ссылки на объект. Возвращаемое значение - не умноженное на альфа-канал. Если альфа-канал умножен, этот метод делит его перед возвращением значения (если значение альфа-канала равно 0, значение зелёного цвета будет равно 0). Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используют неподдерживаемый transferType.

Переопределяет:
getGreen в классе ColorModel
Параметры:
inData - Пиксель, из которого требуется получить зелёный компонент цвета, заданный массивом элементов данных типа transferType.
Возвращает:
Зелёный компонент цвета для указанного пикселя как целое число.
Исключения:
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. При необходимости выполняется преобразование цвета. Значение pixel задаётся массивом элементов данных типа transferType, переданным в качестве ссылки на объект. Возвращаемое значение - не умноженное на альфа-канал. Если альфа-канал умножен, этот метод делит его перед возвращением значения (если значение альфа-канала равно 0, значение синего цвета будет равно 0). Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используют неподдерживаемый transferType.

Переопределяет:
getBlue в классе ColorModel
Параметры:
inData - Пиксель, из которого требуется получить синий компонент цвета, заданный массивом элементов данных типа transferType.
Возвращает:
Синий компонент цвета для указанного пикселя как целое число.
Исключения:
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.

Переопределяет:
getAlpha в классе ColorModel
Параметры:
inData - Пиксель, из которого требуется получить альфа-компонент, заданный массивом элементов данных типа transferType.
Возвращает:
Альфа-компонент для указанного пикселя как целое число.
Исключения:
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.

Переопределяет:
getRGB в классе ColorModel
Параметры:
inData — Пиксель, из которого необходимо получить цветовые/альфа-компоненты, заданный массивом элементов данных типа transferType.
Возвращает:
Цветовые/альфа-компоненты для указанного пикселя в виде целого числа.
Выбрасывает:
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.
См. также:
ColorModel.getRGBdefault()

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.
См. также:
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. Исключение IllegalArgumentException выбрасывается, если значение компонента для этого ColorModel не может быть удобно представлено в ненормализованной форме. Цветовые/альфа-компоненты хранятся в массиве 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 переданным в качестве ссылки на объект. Исключение IllegalArgumentException выбрасывается, если значения компонентов для этого ColorModel не могут быть удобно представлены в ненормализованной форме. Цветовые/альфа-компоненты хранятся в массиве 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 недостаточно велик для хранения значения пикселя для этой модели цвета.

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.

Переопределяет:
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.

Переопределяет:
getNormalizedComponents в классе ColorModel
Параметры:
components — массив, содержащий ненормализованные компоненты
offset — смещение в массиве components, с которого начинать извлечение ненормализованных компонентов
normComponents — массив, который получит нормализованные компоненты
normOffset — индекс в normComponents, с которого начать сохранение нормализованных компонентов
Возвращает:
массив, содержащий нормализованные цветовые и альфа-компоненты.
Выбрасывает:
IllegalArgumentException — если этот ComponentColorModel не поддерживает ненормализованную форму

getDataElement

public int getDataElement(int[] components,
                          int offset)

Возвращает значение пикселя, представленное как целое число в этом ColorModel, с учётом массива ненормализованных цветовых/альфа-компонентов.

Переопределяет:
getDataElement в классе ColorModel
Параметры:
components — Массив ненормализованных цветовых/альфа-компонентов.
offset — Смещение в массиве components.
Возвращает:
Значение пикселя, представленное как целое число.
Выбрасывает:
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.
См. также:
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).

Переопределяет:
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 — примитивный массив данных для хранения возвращённого пикселя
Возвращает:
примитивный массив данных-элементов, представляющий пиксель
Выбрасывает:
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 равен 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)

Возвращает 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)

Проверяет, является ли указанный Object экземпляром ComponentColorModel и равен ли этому ComponentColorModel.

Переопределяет:
equals в классе ColorModel
Параметры:
obj - Object для проверки на равенство
Возвращает:
true если указанный Object является экземпляром ComponentColorModel и равен этому ComponentColorModel; false в противном случае.
См. также:
Object.hashCode(), HashMap

hashCode

public int hashCode()

Возвращает код хэша для этого ComponentColorModel.

Переопределяет:
hashCode в классе ColorModel
Возвращает:
код хэша для этого ComponentColorModel.
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/ComponentColorModel.html

Spec-Zone .ru
спецификации, руководства, описания, API