Spec-Zone.ru › OpenJDK 21

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

Методы, использующие единственное целое число (int) для представления пикселей, выбросят исключение 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

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 — тип примитивного массива, используемого для представления пиксельных значений.
Parameters:
colorSpace - ColorSpace , связанная с этой цветовой моделью.
bits - Количество значащих битов на компонент. Может быть null, в этом случае все биты всех компонентных образцов будут значащими. Игнорируется, если transferType равен одному из DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, или DataBuffer.TYPE_DOUBLE, в этом случае все биты всех компонентных образцов будут значащими.
hasAlpha - Если true, эта цветовая модель поддерживает альфа-канал.
isAlphaPremultiplied - Если true, альфа-канал предварительно умножен.
transparency - Указывает, какие значения альфа-канала могут быть представлены этой цветовой моделью.
transferType - Указывает тип примитивного массива, используемого для представления пиксельных значений.
Throws:
IllegalArgumentException - Если аргумент массива bits не равен null, его длина меньше количества цветовых и альфа-компонентов, и transferType равен одному из DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, или DataBuffer.TYPE_INT.
IllegalArgumentException - Если transferType не равен одному из DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, или DataBuffer.TYPE_DOUBLE.
См. также:
  • 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 — тип примитивного массива, используемого для представления пиксельных значений.
Parameters:
colorSpace - ColorSpace , связанная с этой цветовой моделью.
hasAlpha - Если true, эта цветовая модель поддерживает альфа-канал.
isAlphaPremultiplied - Если true, альфа-канал предварительно умножен.
transparency - Указывает, какие значения альфа-канала могут быть представлены этой цветовой моделью.
transferType - Указывает тип примитивного массива, используемого для представления пиксельных значений.
Throws:
IllegalArgumentException - Если transferType не равен одному из DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT, DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, или DataBuffer.TYPE_DOUBLE.
Since:
1.4
См. также:
  • ColorSpace
  • Transparency

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

getRed

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

getGreen

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

getBlue

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

getAlpha

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

getRGB

public int getRGB(int pixel)
Возвращает цветовые/альфа-компоненты пикселя в формате стандартной цветовой модели RGB. Если необходимо, выполняется преобразование цвета. Возвращаемое значение будет в формате без предварительного умножения. Если альфа-канал предварительно умножен, этот метод делит его из цветовых компонентов (если значение альфа-канала равно 0, значения цветов будут 0).
Переопределяет:
getRGB в классе ColorModel
Parameters:
pixel - Пиксель, из которого необходимо получить цветовые/альфа-компоненты.
Returns:
Цветовые/альфа-компоненты для указанного пикселя как целое число.
Throws:
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
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 , переданным в качестве ссылки на объект. Если значения компонентов для этого ColorModel не могут быть удобно представлены в ненормализованной форме, выбрасывается исключение IllegalArgumentException. Цветовые/альфа-компоненты хранятся в массиве 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. Нормализованные компоненты являются значениями типа float, находящимися между минимальным и максимальным значениями, заданными объектом 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 если нет.

createCompatibleWritableRaster

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

createCompatibleSampleModel

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

isCompatibleSampleModel

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

getAlphaRaster

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

equals

public boolean equals(Object obj)
Проверяет, является ли указанный Object экземпляром ComponentColorModel и равен этому ComponentColorModel.
Overrides:
equals in class ColorModel
Parameters:
obj - Object для проверки на равенство
Returns:
true если указанный Object является экземпляром ComponentColorModel и равен этому ComponentColorModel; false в противном случае.
See Also:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает хеш-код для этого ComponentColorModel.
Overrides:
hashCode in class ColorModel
Returns:
хеш-код для этого ComponentColorModel.
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

© 1993, 2023, 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/21/docs/api/java.desktop/java/awt/image/ComponentColorModel.html

Spec-Zone.ru

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