Spec-Zone.ru › OpenJDK 24

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

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

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

Методы, использующие единственное целое число пиксельного представления, выбросят исключение IllegalArgumentException, за исключением случая, когда количество компонентов для ComponentColorModel равно одному, и значение компонента беззнаковое — то есть, одиночный цветовой компонент с типом преобразования DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT или DataBuffer.TYPE_INT и без альфы.

ComponentColorModel может использоваться совместно с ComponentSampleModel, BandedSampleModel или PixelInterleavedSampleModel для построения BufferedImage.

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

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

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

pixel_bits, transferType

Поля, объявленные в интерфейсе java.awt.Transparency

BITMASK, OPAQUE, TRANSLUCENT

Краткое описание конструкторов

Конструктор Описание
ComponentColorModel(ColorSpace colorSpace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
Создаёт ComponentColorModel по заданным параметрам.
ComponentColorModel(ColorSpace colorSpace, int[] bits, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
Создаёт ComponentColorModel по заданным параметрам.

Краткое описание методов

Модификатор и тип Метод Описание
ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
Принудительно согласовывает данные растра с состоянием, указанным в переменной isAlphaPremultiplied, предполагая, что данные в настоящее время правильно описаны этим ColorModel.
SampleModel createCompatibleSampleModel(int w, int h)
Создаёт SampleModel с указанной шириной и высотой, имеющей структуру данных, совместимую с этим ColorModel.
WritableRaster createCompatibleWritableRaster(int w, int h)
Создаёт WritableRaster с указанной шириной и высотой, имеющей структуру данных (SampleModel), совместимую с этим ColorModel.
boolean equals(Object obj)
Проверяет, является ли указанный Object экземпляром ComponentColorModel и равен ли этому ComponentColorModel.
int getAlpha(int pixel)
Возвращает альфа-компонент для указанного пикселя, масштабированный от 0 до 255.
int getAlpha(Object inData)
Возвращает альфа-компонент для указанного пикселя, масштабированный от 0 до 255.
WritableRaster getAlphaRaster(WritableRaster raster)
Возвращает Raster, представляющий альфа-канал изображения, извлеченный из входного Raster.
int getBlue(int pixel)
Возвращает синюю составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB.
int getBlue(Object inData)
Возвращает синюю составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB.
int[] getComponents(int pixel, int[] components, int offset)
Возвращает массив ненормализованных цветовых/альфа-компонентов, заданных пикселем в этом ColorModel.
int[] getComponents(Object pixel, int[] components, int offset)
Возвращает массив ненормализованных цветовых/альфа-компонентов, заданных пикселем в этом ColorModel.
int getDataElement(float[] normComponents, int normOffset)
Возвращает значение пикселя, представленное как int в этом ColorModel, заданном массивом нормализованных цветовых/альфа-компонентов.
int getDataElement(int[] components, int offset)
Возвращает значение пикселя, представленное как целое число в этом ColorModel, заданном массивом ненормализованных цветовых/альфа-компонентов.
Object getDataElements(float[] normComponents, int normOffset, Object obj)
Возвращает массив данных элементов, представляющий пиксель в этом ColorModel, заданный массивом нормализованных цветовых/альфа-компонентов.
Object getDataElements(int[] components, int offset, Object obj)
Возвращает массив данных элементов, представляющий пиксель в этом ColorModel, заданный массивом ненормализованных цветовых/альфа-компонентов.
Object getDataElements(int rgb, Object pixel)
Возвращает массив данных элементов, представляющий пиксель в этом ColorModel, заданный целым числовым представлением пикселя в стандартной модели цвета RGB.
int getGreen(int pixel)
Возвращает зеленую составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB.
int getGreen(Object inData)
Возвращает зеленую составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB.
float[] getNormalizedComponents(int[] components, int offset, float[] normComponents, int normOffset)
Возвращает массив всех цветовых/альфа-компонентов в нормализованной форме, заданный массивом ненормализованных компонентов.
float[] getNormalizedComponents(Object pixel, float[] normComponents, int normOffset)
Возвращает массив всех цветовых/альфа-компонентов в нормализованной форме, заданный пикселем в этом ColorModel.
int getRed(int pixel)
Возвращает красную составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB.
int getRed(Object inData)
Возвращает красную составляющую цвета для указанного пикселя, масштабированную от 0 до 255 в стандартном цветовом пространстве RGB, sRGB.
int getRGB(int pixel)
Возвращает цветовые/альфа-компоненты пикселя в формате стандартной модели цвета RGB.
int getRGB(Object inData)
Возвращает цветовые/альфа-компоненты для указанного пикселя в формате стандартной модели цвета RGB.
int[] getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
Возвращает массив всех цветовых/альфа-компонентов в ненормализованной форме, заданный массивом нормализованных компонентов.
int hashCode()
Возвращает код хэша для этого ComponentColorModel.
boolean isCompatibleRaster(Raster raster)
Возвращает true, если raster совместим с этим ColorModel; false, если нет.
boolean isCompatibleSampleModel(SampleModel sm)
Проверяет совместимость указанного SampleModel с этим ColorModel.

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

getColorSpace, getComponentSize, getComponentSize, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, hasAlpha, isAlphaPremultiplied, toString

Методы, объявленные в классе java.lang.Object

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

getGreen

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

getBlue

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

getAlpha

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

getRGB

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

getRed

public int getRed(Object inData)
Возвращает красный цветовой компонент для указанного пикселя, масштабированный от 0 до 255 в стандартном цветовом пространстве RGB, sRGB. Если необходимо, выполняется преобразование цвета. Значение pixel задаётся массивом элементов данных типа transferType, переданным в качестве ссылки на объект. Возвращаемое значение не является предварительно умноженным. Если альфа-компонент предварительно умножен, этот метод делит его перед возвращением значения (если значение альфы равно 0, значение красного цвета будет 0). Так как ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, то выбрасывают исключение, если используется неподдерживаемый transferType.
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. Если значение компонента для этого ColorModel не может быть удобно представлено в ненормализованной форме, выбрасывается исключение IllegalArgumentException. Цветовые/альфа-компоненты хранятся в массиве components, начиная с offset (даже если массив выделяется этим методом).
Overrides:
getComponents в классе ColorModel
Параметры:
pixel - Значение пикселя, указанное как целое число.
components - Массив целых чисел, в котором необходимо сохранить ненормализованные цветовые/альфа-компоненты. Если массив components равен null, новый массив выделяется.
offset - Смещение в массиве components.
Возвращает:
Массив компонентов.
Исключения:
IllegalArgumentException - Если в этом ColorModel более одного компонента.
IllegalArgumentException - Если этот ColorModel не поддерживает ненормализованную форму.
ArrayIndexOutOfBoundsException - Если массив components не равен null и не достаточно велик для хранения всех цветовых и альфа-компонентов (начиная со смещения).

getComponents

public int[] getComponents(Object pixel, int[] components, int offset)
Возвращает массив ненормализованных цветовых/альфа-компонентов для заданного пикселя в этом ColorModel. Значение пикселя задается массивом элементов данных типа transferType, переданным в качестве ссылки на объект. Если значения компонентов для этого ColorModel не могут быть удобно представлены в ненормализованной форме, выбрасывается исключение IllegalArgumentException. Цветовые/альфа-компоненты хранятся в массиве components, начиная с offset (даже если массив выделяется этим методом). Поскольку ComponentColorModel может быть подклассом, подклассы наследуют реализацию этого метода, и если они его не переопределяют, этот метод может выбросить исключение, если они используют неподдерживаемый transferType.
Overrides:
getComponents в классе ColorModel
Параметры:
pixel - Значение пикселя, заданное массивом элементов данных типа transferType.
components - Массив целых чисел, в котором необходимо сохранить ненормализованные цветовые/альфа-компоненты. Если массив components равен null, новый массив выделяется.
offset - Смещение в массиве components.
Возвращает:
Массив components.
Исключения:
IllegalArgumentException - Если этот ComponentColorModel не поддерживает ненормализованную форму.
UnsupportedOperationException - в некоторых случаях, если тип передачи этого ComponentColorModel не является одним из следующих типов передачи: DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT или DataBuffer.TYPE_INT.
ClassCastException - Если pixel не является примитивным массивом типа transferType.
IllegalArgumentException - Если массив components не равен null и не достаточно велик для хранения всех цветовых и альфа-компонентов (начиная со смещения), или если pixel не достаточно велик для хранения значения пикселя для этой модели цвета.

getUnnormalizedComponents

public int[] getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
Возвращает массив всех цветовых/альфа-компонентов в ненормализованной форме, исходя из массива нормализованных компонентов. Ненормализованные компоненты — это целые значения без знака от 0 до 2n - 1, где n — количество битов для определенного компонента. Нормализованные компоненты — это значения с плавающей точкой от минимального до максимального значения, заданного объектом ColorSpace для этого ColorModel. Будет выброшено исключение IllegalArgumentException, если значения цветовых компонентов для этого ColorModel не могут быть удобно представлены в ненормализованной форме. Если массив components равен null, будет выделен новый массив. Будет возвращен массив components. Цветовые/альфа-компоненты хранятся в массиве components, начиная со смещения offset (даже если массив выделяется этим методом). Будет выброшено исключение ArrayIndexOutOfBoundsException, если массив components не равен null и не достаточно велик для хранения всех цветовых и альфа-компонентов (начиная со смещения offset). Будет выброшено исключение IllegalArgumentException, если массив normComponents не достаточно велик для хранения всех цветовых и альфа-компонентов, начиная со смещения normOffset.
Overrides:
getUnnormalizedComponents в классе ColorModel
Параметры:
normComponents - массив, содержащий нормализованные компоненты
normOffset - смещение в массиве normComponents, с которого начинать извлечение нормализованных компонентов
components - массив, который получит компоненты из normComponents
offset - индекс в components, с которого начинать хранение нормализованных компонентов из normComponents
Возвращает:
массив, содержащий ненормализованные цветовые и альфа-компоненты.
Исключения:
IllegalArgumentException - Если этот ComponentColorModel не поддерживает ненормализованную форму
IllegalArgumentException - если длина normComponents минус normOffset меньше numComponents

getNormalizedComponents

public float[] getNormalizedComponents(int[] components, int offset, float[] normComponents, int normOffset)
Возвращает массив всех цветовых/альфа-компонентов в нормализованной форме, исходя из массива ненормализованных компонентов. Ненормализованные компоненты — это целые значения без знака от 0 до 2n - 1, где n — количество битов для определенного компонента. Нормализованные компоненты — это значения с плавающей точкой от минимального до максимального значения, заданного объектом ColorSpace для этого ColorModel. Будет выброшено исключение IllegalArgumentException, если значения цветовых компонентов для этого ColorModel не могут быть удобно представлены в ненормализованной форме. Если массив normComponents равен null, будет выделен новый массив. Будет возвращен массив normComponents. Цветовые/альфа-компоненты хранятся в массиве normComponents, начиная со смещения normOffset (даже если массив выделяется этим методом). Будет выброшено исключение ArrayIndexOutOfBoundsException, если массив normComponents не равен null и не достаточно велик для хранения всех цветовых и альфа-компонентов (начиная со смещения normOffset). Будет выброшено исключение IllegalArgumentException, если массив components не достаточно велик для хранения всех цветовых и альфа-компонентов, начиная со смещения offset.
Overrides:
getNormalizedComponents в классе ColorModel
Параметры:
components - массив, содержащий ненормализованные компоненты
offset - смещение в массиве components, с которого начинать извлечение ненормализованных компонентов
normComponents - массив, который получит нормализованные компоненты
normOffset - индекс в normComponents, с которого начинать хранение нормализованных компонентов
Возвращает:
массив, содержащий нормализованные цветовые и альфа-компоненты.
Исключения:
IllegalArgumentException - Если этот ComponentColorModel не поддерживает ненормализованную форму

getDataElement

public int getDataElement(int[] components, int offset)
Возвращает значение пикселя, представленное как целое число в этом ColorModel, исходя из массива ненормализованных цветовых/альфа-компонентов.
Overrides:
getDataElement в классе ColorModel
Параметры:
components - Массив ненормализованных цветовых/альфа-компонентов.
offset - Смещение в массиве components.
Возвращает:
Значение пикселя, представленное как целое число.
Исключения:
IllegalArgumentException - Если в этом ColorModel более одного компонента.
IllegalArgumentException - Если этот ComponentColorModel не поддерживает ненормализованную форму

getDataElements

public Object getDataElements(int[] components, int offset, Object obj)
Возвращает массив элементов данных, представляющий пиксель в этом ColorModel, заданный массивом ненормализованных цветовых/альфа-компонентов. Этот массив затем можно передать в метод setDataElements объекта WritableRaster.
Overrides:
getDataElements в классе ColorModel
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:
примитивный массив данных, представляющий пиксель
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 равен true и требуются корректировки данных.
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
Параметры:
raster - Объект Raster для проверки совместимости.
Возвращает:
true, если raster совместим с этим ColorModel, false в противном случае.

createCompatibleWritableRaster

public WritableRaster createCompatibleWritableRaster(int w, int h)
Создаёт WritableRaster с заданной шириной и высотой, имеющий структуру данных (SampleModel), совместимую с этим ColorModel.
Overrides:
createCompatibleWritableRaster в классе ColorModel
Параметры:
w - Ширина создаваемого WritableRaster.
h - Высота создаваемого WritableRaster.
Возвращает:
WritableRaster, совместимый с этим ColorModel.
См. также:
  • WritableRaster
  • SampleModel

createCompatibleSampleModel

public SampleModel createCompatibleSampleModel(int w, int h)
Создаёт SampleModel с заданной шириной и высотой, имеющий структуру данных, совместимую с этим ColorModel.
Overrides:
createCompatibleSampleModel в классе ColorModel
Параметры:
w - Ширина создаваемого SampleModel.
h - Высота создаваемого SampleModel.
Возвращает:
SampleModel, совместимый с этим ColorModel.
См. также:
  • SampleModel

isCompatibleSampleModel

public boolean isCompatibleSampleModel(SampleModel sm)
Проверяет, совместим ли указанный SampleModel с этим ColorModel.
Overrides:
isCompatibleSampleModel в классе ColorModel
Параметры:
sm - SampleModel для проверки совместимости.
Возвращает:
true, если SampleModel совместим с этим ColorModel, false в противном случае.
См. также:
  • SampleModel

getAlphaRaster

public WritableRaster getAlphaRaster(WritableRaster raster)
Возвращает Raster, представляющий альфа-канал изображения, извлечённый из входного Raster. Этот метод предполагает, что объекты Raster, связанные с этим ColorModel, хранят альфа-полосу (если она есть) как последнюю полосу данных изображения. Возвращает null, если нет отдельного пространственного альфа-канала, связанного с этим ColorModel. Этот метод создаёт новый Raster, но будет использовать общий массив данных.
Overrides:
getAlphaRaster в классе ColorModel
Параметры:
raster - WritableRaster для извлечения альфа-канала.
Возвращает:
WritableRaster, содержащий альфа-канал изображения.

equals

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

hashCode

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

© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/image/ComponentColorModel.html

Spec-Zone.ru

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