Spec-Zone.ru › OpenJDK 17

Класс ComponentColorModel

java.lang.Object
java.awt.image.ColorModel
java.awt.image.ComponentColorModel
Все реализуемые интерфейсы:
Transparency
public class ComponentColorModel extends ColorModel
Класс, работающий с пиксельными значениями, представляющими информацию о цвете и альфа-канале как отдельные образцы, и хранящий каждый образец в отдельном элементе данных. Этот класс может быть использован с произвольным ColorSpace. Количество образцов цвета в пиксельных значениях должно быть таким же, как количество цветовых компонентов в ColorSpace. Может быть один образец альфа-канала.

Для методов, использующих примитивный массив пикселей типа transferType, длина массива совпадает с количеством образцов цвета и альфа-канала. Образцы цвета хранятся в массиве первыми, а затем образец альфа-канала, если он присутствует. Порядок образцов цвета определяется ColorSpace. Как правило, этот порядок отражает название типа цветового пространства. Например, для TYPE_RGB, индекс 0 соответствует красному, индекс 1 — зелёному, а индекс 2 — синему.

Перевод от пиксельных значений образцов к цветовым/альфа-компонентам для отображения или обработки основан на взаимно-однозначном соответствии образцов компонентам. В зависимости от типа преобразования, используемого для создания экземпляра ComponentColorModel, пиксельные значения образцов, представленные этим экземпляром, могут быть знаковыми или беззнаковыми, и могут быть целого типа, float или double (см. подробности ниже). Перевод от значений образцов к нормализованным цветовым/альфа-компонентам должен соответствовать определённым правилам. Для образцов float и double перевод является тождественным, т.е. нормализованные значения компонентов равны соответствующим значениям образцов. Для целочисленных образцов перевод должен быть простым масштабированием и сдвигом, где константы масштабирования и сдвига могут быть различными для каждого компонента. Результатом применения констант масштабирования и сдвига является набор значений цветовых/альфа-компонентов, гарантированно попадающих в определённый диапазон. Как правило, диапазон для цветового компонента будет диапазоном, определённым методами getMinValue и getMaxValue класса ColorSpace. Диапазон для альфа-компонента должен быть от 0,0 до 1,0.

Экземпляры ComponentColorModel, созданные с типами преобразования DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, и DataBuffer.TYPE_INT, имеют пиксельные значения образцов, которые рассматриваются как беззнаковые целочисленные значения. Количество битов в образце цвета или альфа-канала пиксельного значения может не совпадать с количеством битов для соответствующего образца цвета или альфа-канала, переданного в конструктор ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int). В этом случае этот класс предполагает, что n младших разрядов значения образца содержат значение компонента, где n — количество значимых битов для компонента, переданного в конструктор. Он также предполагает, что все старшие биты значения образца равны нулю. Таким образом, значения образцов варьируются от 0 до 2n - 1. Этот класс отображает эти значения образцов на нормализованные значения цветовых компонентов так, что 0 отображается на значение, полученное из метода ColorSpace's getMinValue для каждого компонента, а 2n - 1 отображается на значение, полученное из getMaxValue. Для создания ComponentColorModel с другим отображением цветовых образцов необходимо создать подкласс этого класса и переопределить метод getNormalizedComponents(Object, float[], int). Отображение для образца альфа-канала всегда отображает 0 на 0,0 и 2n - 1 на 1,0.

Для экземпляров с беззнаковыми значениями образцов, представление ненормализованных цветовых/альфа-компонентов поддерживается только в том случае, если выполняются два условия. Во-первых, значение образца 0 должно отображаться на нормализованное значение компонента 0,0, а значение образца 2n - 1 — на 1,0. Во-вторых, диапазон min/max всех цветовых компонентов ColorSpace должен быть от 0,0 до 1,0. В этом случае представление компонента представляет собой n младших разрядов соответствующего образца. Таким образом, каждый компонент является беззнаковым целым числом от 0 до 2n - 1, где n — количество значимых битов для определённого компонента. Если эти условия не выполнены, любой метод, принимающий аргумент ненормализованного компонента, выбросит IllegalArgumentException.

Экземпляры ComponentColorModel, созданные с типами преобразования DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, и DataBuffer.TYPE_DOUBLE, имеют пиксельные значения образцов, которые рассматриваются как знаковое short, float или double значения. Такие экземпляры не поддерживают представление ненормализованных цветовых/альфа-компонентов, поэтому любые методы, принимающие такое представление в качестве аргумента, выбросят IllegalArgumentException, когда вызываются на одном из этих экземпляров. Нормализованные значения компонентов экземпляров этого класса имеют диапазон, зависящий от типа преобразования следующим образом: для float образцов — весь диапазон типа float; для double образцов — весь диапазон типа float (в результате приведения double к float); для образцов short — примерно от -maxVal до +maxVal, где maxVal — максимальное значение для ColorSpace на компонент (-32767 отображается на -maxVal, 0 на 0,0, а 32767 на +maxVal). Подкласс может переопределить масштабирование для значений образцов short к нормализованным значениям компонента, переопределив метод getNormalizedComponents(Object, float[], int). Для float и double образцов нормализованные значения компонентов принимаются равными соответствующим значениям образцов, и подклассы не должны пытаться добавлять любое нетождественное масштабирование для этих типов преобразования.

Экземпляры ComponentColorModel, созданные с типами преобразования DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, и DataBuffer.TYPE_DOUBLE, используют все биты всех значений образцов. Таким образом, все цветовые/альфа-компоненты имеют 16 битов при использовании DataBuffer.TYPE_SHORT, 32 бита при использовании DataBuffer.TYPE_FLOAT, и 64 бита при использовании DataBuffer.TYPE_DOUBLE. Когда используется форма конструктора ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int) с одним из этих типов преобразования, аргумент массива 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.

См. также:
  • ColorModel
  • ColorSpace
  • ComponentSampleModel
  • BandedSampleModel
  • PixelInterleavedSampleModel
  • BufferedImage
END_OF_DOCUMENT_MARKER

Краткое описание полей

Поля, объявленные в классе 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 ColorSpace, 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)
Возвращает значение пикселя, представленное как int в этом 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 ColorSpace, 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 ColorSpace, sRGB.
int getRed(Object inData)
Возвращает красную составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном RGB ColorSpace, 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, то булево значение 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.
См. также:
  • 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, то булево значение 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
См. также:
  • ColorSpace
  • Transparency

Подробное описание методов

getRed

public int getRed(int pixel)
Возвращает красный компонент цвета для указанного пикселя, масштабированный от 0 до 255 в стандартном RGB ColorSpace, sRGB. Если необходимо, выполняется преобразование цвета. Значение пикселя задаётся как целое число. Возвращаемое значение будет без предварительного умножения. Если альфа предварительно умножена, этот метод делит её перед возвратом значения (если значение альфы равно 0, значение красного цвета будет равно 0).
Определено в:
getRed в классе ColorModel
Параметры:
pixel - Пиксель, из которого нужно получить красный компонент цвета.
Возвращает:
Красный компонент цвета для указанного пикселя как целое число.
Исключения:
IllegalArgumentException - Если в этой ColorModel более одного компонента.
IllegalArgumentException - Если значение компонента для этой ColorModel со знаком

getGreen

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

getBlue

public int getBlue(int pixel)
Возвращает синий компонент цвета для указанного пикселя, масштабированный от 0 до 255 в стандартном RGB ColorSpace, 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.
Overrides:
getRed в классе ColorModel
Parameters:
inData - Пиксель, из которого требуется извлечь красный компонент цвета, заданный массивом элементов данных типа transferType.
Returns:
Красный компонент цвета для указанного пикселя в виде целого числа.
Throws:
ClassCastException - Если inData не является примитивным массивом типа transferType.
ArrayIndexOutOfBoundsException - если inData не достаточно велик для хранения значения пикселя для этого ColorModel.
UnsupportedOperationException - Если тип преобразования этого ComponentColorModel не является одним из поддерживаемых типов преобразований: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, или DataBuffer.TYPE_DOUBLE.

getGreen

public int getGreen(Object inData)
Возвращает зелёный компонент цвета для указанного пикселя, масштабированный от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. Необходимое преобразование цвета выполняется при необходимости. Значение 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)
Возвращает синий компонент цвета для указанного пикселя, масштабированный от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. Необходимое преобразование цвета выполняется при необходимости. Значение 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)
Возвращает альфа-компонент для указанного пикселя, масштабированный от 0 до 255. Значение пикселя задаётся массивом элементов данных типа transferType в виде ссылки на объект. Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используется неподдерживаемый transferType.
Overrides:
getAlpha в классе ColorModel
Parameters:
inData - Пиксель, из которого требуется извлечь альфа-компонент, заданный массивом элементов данных типа transferType.
Returns:
Альфа-компонент для указанного пикселя в виде целого числа.
Throws:
ClassCastException - Если inData не является примитивным массивом типа transferType.
ArrayIndexOutOfBoundsException - если inData не достаточно велик для хранения значения пикселя для этого ColorModel.
UnsupportedOperationException - Если тип преобразования этого ComponentColorModel не является одним из поддерживаемых типов преобразований: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, или DataBuffer.TYPE_DOUBLE.

getRGB

public int getRGB(Object inData)
Возвращает компоненты цвета/альфы для указанного пикселя в стандартном формате RGB. Необходимое преобразование цвета выполняется при необходимости. Значение пикселя задаётся массивом элементов данных типа transferType в виде ссылки на объект. Возвращаемое значение не является предварительно умноженным. Если альфа-компонент предварительно умножен, этот метод делит его из компонентов цвета (если значение альфы равно 0, значения цвета будут 0). Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используется неподдерживаемый transferType.
Overrides:
getRGB в классе ColorModel
Parameters:
inData - Пиксель, из которого требуется извлечь компоненты цвета/альфы, заданный массивом элементов данных типа transferType.
Returns:
Компоненты цвета/альфы для указанного пикселя в виде целого числа.
Throws:
ClassCastException - Если inData не является примитивным массивом типа transferType.
ArrayIndexOutOfBoundsException - если inData не достаточно велик для хранения значения пикселя для этого ColorModel.
UnsupportedOperationException - Если тип преобразования этого ComponentColorModel не является одним из поддерживаемых типов преобразований: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, или DataBuffer.TYPE_DOUBLE.
See Also:
  • ColorModel.getRGBdefault()

getDataElements

public Object getDataElements(int rgb, Object pixel)
Возвращает массив элементов данных, представляющий пиксель в этом ColorModel, заданный целым значением пикселя в стандартном цветовом пространстве RGB. Этот массив может быть передан методу setDataElements объекта WritableRaster. Если параметр pixel равен null, создаётся новый массив. Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используется неподдерживаемый transferType.
Overrides:
getDataElements в классе ColorModel
Parameters:
rgb - целое представление пикселя в цветовом пространстве RGB
pixel - указанный пиксель
Returns:
Массив элементов данных, представляющий пиксель в этом ColorModel.
Throws:
ClassCastException - Если pixel не равен null и не является примитивным массивом типа transferType.
ArrayIndexOutOfBoundsException - Если pixel не достаточно велик для хранения значения пикселя для этого ColorModel.
UnsupportedOperationException - Если тип преобразования этого ComponentColorModel не является одним из поддерживаемых типов преобразований: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, или DataBuffer.TYPE_DOUBLE.
See Also:
  • WritableRaster.setDataElements(int, int, java.lang.Object)
  • SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)

getComponents

public int[] getComponents(int pixel, int[] components, int offset)
Возвращает массив ненормализованных цветовых/альфа-компонентов, заданных пикселем в этом ColorModel. Бросает 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)
Возвращает массив всех цветовых/альфа-компонентов в ненормализованной форме, заданных массивом нормализованных компонентов. Ненормализованные компоненты — это целые беззнаковые значения от 0 до 2n - 1, где n — количество битов для конкретного компонента. Нормализованные компоненты — это значения с плавающей точкой от минимального и максимального значений, заданных объектом 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)
Возвращает массив всех цветовых/альфа-компонентов в нормализованной форме, заданных массивом ненормализованных компонентов. Ненормализованные компоненты — это целые беззнаковые значения от 0 до 2n - 1, где n — количество битов для конкретного компонента. Нормализованные компоненты — это значения с плавающей точкой от минимального и максимального значений, заданных объектом 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:
  • WritableRaster.setDataElements(int, int, java.lang.Object)
  • SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)

getDataElement

public int getDataElement(float[] normComponents, int normOffset)
Возвращает значение пикселя, представленное как int в этом ColorModel, заданное массивом нормализованных компонентов цвета/альфа. Этот метод бросит IllegalArgumentException, если значения пикселей для этого ColorModel не могут быть удобно представлены как одно int. Бросается ArrayIndexOutOfBoundsException, если массив normComponents недостаточно велик для хранения всех компонентов цвета и альфа (начиная со смещения normOffset).
Overrides:
getDataElement в классе ColorModel
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:
  • 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. Нормализованные компоненты представляют собой значения с плавающей точкой от минимального до максимального значения, заданного объектом 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)
Возвращает true, если 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:
  • WritableRaster
  • SampleModel

созданиеСовместимойОбразцовойМодели

public SampleModel createCompatibleSampleModel(int w, int h)
Создаёт образцовую модель с указанной шириной и высотой, имеющую структуру данных, совместимую с этим ColorModel.
Overrides:
createCompatibleSampleModel в классе ColorModel
Parameters:
w - Ширина создаваемой образцовой модели.
h - Высота создаваемой образцовой модели.
Returns:
Образцовая модель, совместимая с этим ColorModel.
See Also:
  • SampleModel

совместимаОбразцоваяМодель

public boolean isCompatibleSampleModel(SampleModel sm)
Проверяет, совместима ли указанная SampleModel с этим ColorModel.
Overrides:
isCompatibleSampleModel в классе ColorModel
Parameters:
sm - Образцовая модель для проверки совместимости.
Returns:
true если SampleModel совместима с этим ColorModel, false в противном случае.
See Also:
  • SampleModel

получитьРастрАльфа

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:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает хэш-код для этого компонента цветовой модели.
Overrides:
hashCode в классе ColorModel
Returns:
Хэш-код для этого компонента цветовой модели.
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API