Класс PackedColorModel

Все реализованные интерфейсы:
Transparency
Прямые известные подклассы:
DirectColorModel
public abstract class PackedColorModel
extends ColorModel

Класс PackedColorModel — это абстрактный класс ColorModel, который работает с пиксельными значениями, представляющими информацию о цвете и альфа-канале как отдельные образцы и упаковывает все образцы для одного пикселя в одно целое число, короткое целое или байт. Этот класс может использоваться с произвольным ColorSpace. Количество цветовых образцов в значениях пикселя должно совпадать с количеством цветовых компонентов в ColorSpace. Может быть один образец альфа-канала. Длина массива всегда равна 1 для методов, использующих примитивный массив пикселей типа transferType. Поддерживаемые типы преобразования — DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT и DataBuffer.TYPE_INT. Цветовые и альфа-образцы хранятся в единственном элементе массива в битах, указанных масками. Каждая маска должна быть непрерывной, и маски не должны перекрываться. Те же маски применяются к единственному представлению пикселя типа int, используемому другими методами. Соответствие масок и цветовых/альфа-образцов следующее:

  • Маски идентифицируются индексами, начиная с 0 и заканчивая getNumComponents - 1.
  • Первые getNumColorComponents индексы относятся к цветовым образцам.
  • Если присутствует образец альфа-канала, он соответствует последнему индексу.
  • Порядок цветовых индексов задаётся ColorSpace. Обычно это отражает имя типа цветового пространства (например, TYPE_RGB), индекс 0 соответствует красному, индекс 1 — зелёному, а индекс 2 — синему.

Преобразование из значений пикселей в цветовые/альфа-компоненты для отображения или обработки — это взаимно однозначное соответствие образцов компонентам. Класс PackedColorModel обычно используется с данными изображения, в которых маски определяют упакованные образцы. Например, PackedColorModel может использоваться в сочетании с SinglePixelPackedSampleModel для построения BufferedImage. Обычно маски, используемые SampleModel и ColorModel, совпадают. Однако, если они отличаются, интерпретация цвета пиксельных данных выполняется в соответствии с масками ColorModel.

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

Подклассом PackedColorModel является DirectColorModel, который похож на визуальный элемент X11 TrueColor.

См. также:
DirectColorModel, SinglePixelPackedSampleModel, BufferedImage

Поля

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

pixel_bits, transferType

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

BITMASK, OPAQUE, TRANSLUCENT

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

Конструктор Описание
PackedColorModel​(ColorSpace space, int bits, int[] colorMaskArray, int alphaMask, boolean isAlphaPremultiplied, int trans, int transferType)

Создаёт PackedColorModel из массива масок цвета, который определяет, какие биты в int представлении пикселя содержат каждый из цветовых образцов, и маски альфа-канала.

PackedColorModel​(ColorSpace space, int bits, int rmask, int gmask, int bmask, int amask, boolean isAlphaPremultiplied, int trans, int transferType)

Создаёт PackedColorModel из указанных масок, которые показывают, какие биты в int представлении пикселя содержат образцы альфа, красного, зелёного и синего цветов.

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

Модификатор и тип Метод Описание
SampleModel createCompatibleSampleModel​(int w, int h)

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

boolean equals​(Object obj)

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

WritableRaster getAlphaRaster​(WritableRaster raster)

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

int getMask​(int index)

Возвращает маску, указывающую, какие биты в пикселе содержат указанный цветовой/альфа-образец.

int[] getMasks()

Возвращает массив масок, указывающий, какие биты в пикселе содержат цветовые и альфа-образцы.

int hashCode()

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

boolean isCompatibleSampleModel​(SampleModel sm)

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

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

coerceData, createCompatibleWritableRaster, finalize, getAlpha, getAlpha, getBlue, getBlue, getColorSpace, getComponents, getComponents, getComponentSize, getComponentSize, getDataElement, getDataElement, getDataElements, getDataElements, getDataElements, getGreen, getGreen, getNormalizedComponents, getNormalizedComponents, getNumColorComponents, getNumComponents, getPixelSize, getRed, getRed, getRGB, getRGB, getRGBdefault, getTransferType, getTransparency, getUnnormalizedComponents, hasAlpha, isAlphaPremultiplied, isCompatibleRaster, toString

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

clone, getClass, notify, notifyAll, wait, wait, wait

Конструкторы

PackedColorModel

public PackedColorModel(ColorSpace space,
                        int bits,
                        int[] colorMaskArray,
                        int alphaMask,
                        boolean isAlphaPremultiplied,
                        int trans,
                        int transferType)

Создаёт PackedColorModel на основе массива масок цветов, который определяет, какие биты в представлении пикселя содержат каждый из цветовых образцов, и маски альфа-канала. Цветовые компоненты находятся в указанном ColorSpace. Длина массива colorMaskArray должна соответствовать количеству компонентов в ColorSpace. Все биты в каждой маске должны быть смежными и помещаться в указанном количестве младших разрядов представления пикселя int. Если alphaMask равно 0, альфа-канал отсутствует. Если альфа-канал присутствует, boolean isAlphaPremultiplied определяет, как интерпретировать цветовые и альфа-образцы в значениях пикселей. Если boolean равно true, предполагается, что цветовые образцы были умножены на альфа-образец. Прозрачность, trans, определяет, какие значения альфа-канала могут быть представлены данной цветовой моделью. Тип преобразования — тип примитивного массива, используемого для представления значений пикселей.

Параметры:
space - указанное ColorSpace
bits - количество бит в значениях пикселей
colorMaskArray - массив, указывающий маски, представляющие биты значений пикселей, которые представляют цветовые компоненты
alphaMask - указывает маску, представляющую биты значений пикселей, которые представляют альфа-компонент
isAlphaPremultiplied - true если цветовые образцы предварительно умножены на альфа-образец; false в противном случае
trans - указывает значение альфа-канала, которое может быть представлено этой цветовой моделью
transferType - тип массива, используемого для представления значений пикселей
Исключения:
IllegalArgumentException - если bits меньше 1 или больше 32

PackedColorModel

public PackedColorModel(ColorSpace space,
                        int bits,
                        int rmask,
                        int gmask,
                        int bmask,
                        int amask,
                        boolean isAlphaPremultiplied,
                        int trans,
                        int transferType)

Создаёт PackedColorModel на основе указанных масок, которые показывают, какие биты в представлении пикселя int содержат альфа-канал, красный, зелёный и синий цветовые образцы. Цветовые компоненты находятся в указанном ColorSpace, который должен быть типа ColorSpace.TYPE_RGB. Все биты в каждой маске должны быть смежными и помещаться в указанном количестве младших разрядов представления пикселя int. Если amask равно 0, альфа-канал отсутствует. Если альфа-канал присутствует, boolean isAlphaPremultiplied определяет, как интерпретировать цветовые и альфа-образцы в значениях пикселей. Если boolean равно true, предполагается, что цветовые образцы были умножены на альфа-образец. Прозрачность, trans, определяет, какие значения альфа-канала могут быть представлены данной цветовой моделью. Тип преобразования — тип примитивного массива, используемого для представления значений пикселей.

Параметры:
space - указанное ColorSpace
bits - количество бит в значениях пикселей
rmask - указывает маску, представляющую биты значений пикселей, которые представляют красный цветовой компонент
gmask - указывает маску, представляющую биты значений пикселей, которые представляют зелёный цветовой компонент
bmask - указывает маску, представляющую биты значений пикселей, которые представляют синий цветовой компонент
amask - указывает маску, представляющую биты значений пикселей, которые представляют альфа-компонент
isAlphaPremultiplied - true если цветовые образцы предварительно умножены на альфа-образец; false в противном случае
trans - указывает значение альфа-канала, которое может быть представлено этой цветовой моделью
transferType - тип массива, используемого для представления значений пикселей
Исключения:
IllegalArgumentException - если space не является пространством TYPE_RGB
См. также:
ColorSpace

Методы

getMask

public final int getMask(int index)

Возвращает маску, указывающую, какие биты в пикселе содержат указанный цветовой/альфа-образец. Для цветовых образцов index соответствует расположению имён цветовых образцов в цветовом пространстве. Таким образом, index равное 0 для CMYK ColorSpace будет соответствовать Цилиновому, а index равное 1 будет соответствовать Магенте. Если есть альфа-канал, альфа-маска index будет:

alphaIndex = numComponents() - 1;

Параметры:
index - указанный цветовой или альфа-образец
Возвращает:
маску, которая указывает, какие биты в представлении пикселя int содержат цветовой или альфа-образец, указанный index.
Исключения:
ArrayIndexOutOfBoundsException - если index больше, чем количество компонентов минус 1 в этом PackedColorModel или если index меньше нуля

getMasks

public final int[] getMasks()

Возвращает массив масок, указывающий, какие биты в пикселе содержат цветовые и альфа-образцы.

Возвращает:
массив масок, который указывает, какие биты в представлении пикселя int содержат цветовые или альфа-образцы.

createCompatibleSampleModel

public SampleModel createCompatibleSampleModel(int w,
                                               int h)

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

Переопределяет:
createCompatibleSampleModel в классе ColorModel
Параметры:
w - ширина (в пикселях) области данных изображения
h - высота (в пикселях) области данных изображения
Возвращает:
недавно созданный SampleModel.
Исключения:
IllegalArgumentException - если w или h не больше 0
См. также:
SampleModel

isCompatibleSampleModel

public boolean isCompatibleSampleModel(SampleModel sm)

Проверяет, является ли указанный SampleModel совместимым с этим ColorModel. Если sm равно null, этот метод возвращает false.

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

getAlphaRaster

public WritableRaster getAlphaRaster(WritableRaster raster)

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

Переопределяет:
getAlphaRaster в классе ColorModel
Параметры:
raster - WritableRaster содержащий изображение
Возвращает:
WritableRaster представляющий альфа-канал изображения, содержащегося в raster.

equals

public boolean equals(Object obj)

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

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

hashCode

public int hashCode()

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

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

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/PackedColorModel.html

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