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