|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.image
类 PackedColorModel
java.lang.Object java.awt.image.ColorModel java.awt.image.PackedColorModel
- 所有已实现的接口:
- Transparency
- 直接已知子类:
- DirectColorModel
-
public abstract class PackedColorModel
- extends ColorModel
PackedColorModel
类是一个抽象 ColorModel
类,它使用的像素值以单独采样表示颜色和 alpha 信息,并将单个像素的所有采样打包到单个 int、short 或 byte 量中。此类可与任意 ColorSpace
共同使用。像素值中的颜色采样数必须与 ColorSpace
中的颜色分量数相同。可以有单个 alpha 采样。对于那些使用 transferType
类型的基本数组像素表示形式的方法,数组的长度总是 1。受支持的传输类型有 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 和 DataBuffer.TYPE_INT。颜色和 alpha 采样按位掩码所指示的位存储在数组的单个元素中。每个位掩码必须是连续的,并且掩码不能重叠。相同的掩码适用于其他方法使用的单个 int 像素表示形式。掩码和颜色/alpha 采样的对应关系如下:
- 通过 0 到
getNumComponents
- 1 的索引来标识各掩码。 - 前
getNumColorComponents
个索引指颜色采样。 - 如果存在 alpha 采样,则对应于最后一个索引。
- 颜色索引的顺序由
ColorSpace
所指定。此顺序通常反映颜色空间类型的名称(例如 TYPE_RGB),索引 0 对应于红色、索引 1 对应于绿色、索引 2 则对应于蓝色。
出于显示或处理目的而执行的像素值到颜色/alpha 分量的转换是采样到分量的一一对应关系。PackedColorModel
通常与使用掩码来定义已打包采样的图像数据一起使用。例如,可结合使用 PackedColorModel
和 SinglePixelPackedSampleModel
来构造一个 BufferedImage
。通常 SampleModel
所用的掩码与 ColorModel
使用的相同。但是如果它们不同,则根据 ColorModel
的掩码对像素数据进行颜色解释。
单个 int
的像素表示形式对于此类的所有对象都是有效的,因为总是能够以单个 int
表示此类使用的像素值。因此,使用此种表示形式的方法不会由于无效的像素值而抛出 IllegalArgumentException
。
PackedColorModel
的子类是 DirectColorModel
,类似于 X11 TrueColor 可视化模型类型。
字段摘要 |
---|
从类 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) 根据颜色掩码数组(指定了 int 像素表示形式中哪些位包含每个颜色的采样)和 alpha 掩码来构造一个 PackedColorModel 。 |
|
PackedColorModel(ColorSpace space, int bits, int rmask, int gmask, int bmask, int amask, boolean isAlphaPremultiplied, int trans, int transferType) 根据指定的掩码构造一个 PackedColorModel ,该掩码指示 int 像素表示形式中的哪些位包含 alpha、红色、绿色和蓝色采样。 |
方法摘要 | |
---|---|
SampleModel |
createCompatibleSampleModel(int w, int h) 创建一个具有指定宽度和高度、数据布局与此 ColorModel 兼容的 SampleModel 。 |
boolean |
equals(Object obj) 测试指定的 Object 是否为 PackedColorModel 的一个实例并且等于此 PackedColorModel 。 |
WritableRaster |
getAlphaRaster(WritableRaster raster) 返回从输入 WritableRaster 提取,并且表示图像 alpha 通道的 WritableRaster 。 |
int |
getMask(int index) 返回指示像素中哪些位包含指定颜色/alpha 采样的掩码。 |
int[] |
getMasks() 返回指示像素中的哪些位包含颜色和 alpha 采样的掩码数组。 |
boolean |
isCompatibleSampleModel(SampleModel sm) 检查指定的 SampleModel 是否与此 ColorModel 兼容。 |
从类 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)
-
根据颜色掩码数组(指定了
int
像素表示形式中哪些位包含每个颜色的采样)和 alpha 掩码来构造一个PackedColorModel
。颜色分量在指定的ColorSpace
中。colorMaskArray
的长度应该是ColorSpace
中的分量数。每个掩码中的所有位必须是连续的,并且能够放入指定int
像素表示形式的最低有效位数中。如果alphaMask
为 0,则不存在 alpha。如果存在 alpha,则boolean
值isAlphaPremultiplied
指定如何解释像素值中的颜色和 alpha 采样。如果该boolean
值为true
,则假定颜色采样已经预乘以 alpha 采样。透明度trans
指定了此颜色模型可以表示的 alpha 值。传输类型是用于表示像素值的基本数组类型。- 参数:
-
space
- 指定的ColorSpace
-
bits
- 像素值中的位数 -
colorMaskArray
- 指定掩码的数组,该掩码表示像素值中表示颜色分量的位 -
alphaMask
- 指定像素值中表示 alpha 分量的位掩码 -
isAlphaPremultiplied
- 如果颜色采样预乘了 alpha 采样,则为true
;否则为false
-
trans
- 指定可由此颜色模型表示的 alpha 值 -
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
像素表示形式中的哪些位包含 alpha、红色、绿色和蓝色采样。颜色分量在指定的ColorSpace
中,并且必须是 ColorSpace.TYPE_RGB 类型。每个掩码中的所有位必须是连续的,并且能够放入指定int
像素表示形式的最低有效位数中。如果amask
是 0,则不存在 alpha。如果存在 alpha,则boolean
值isAlphaPremultiplied
指定如何解释像素值中的颜色和 alpha 采样。如果该boolean
值为true
,则假定颜色采样已经预乘以 alpha 采样。透明度trans
指定了此颜色模型可以表示的 alpha 值。传输类型是用于表示像素值的基本数组类型。- 参数:
-
space
- 指定的ColorSpace
-
bits
- 像素值中的位数 -
rmask
- 指定像素值中表示红色分量的位掩码 -
gmask
- 指定像素值中表示绿色分量的位掩码 -
bmask
- 指定像素值中表示蓝色分量的位掩码 -
amask
- 指定像素值中表示 alpha 分量的位掩码 -
isAlphaPremultiplied
- 如果颜色采样预乘了 alpha 采样,则为true
;否则为false
-
trans
- 指定可由此颜色模型表示的 alpha 值 -
transferType
- 用于表示像素值的数组类型 - 抛出:
-
IllegalArgumentException
- 如果space
不是 TYPE_RGB 空间 - 另请参见:
-
ColorSpace
方法详细信息 |
---|
getMask
public final int getMask(int index)
-
返回指示像素中哪些位包含指定颜色/alpha 采样的掩码。对于颜色采样,
index
对应于颜色空间中颜色采样名称的放置位置。因此对于 CMYK ColorSpace,index
0 对应 Cyan,而index
1 则对应 Magenta。如果存在 alpha,则 alpha 的index
是:alphaIndex = numComponents() - 1;
-
- 参数:
-
index
- 指定的颜色或 alpha 采样 - 返回:
-
指示
int
像素表示中的哪些位包含index
所指定的颜色或 alpha 采样的掩码。 - 抛出:
-
ArrayIndexOutOfBoundsException
- 如果index
大于此PackedColorModel
中的分量数减 1,或者index
小于 0
getMasks
public final int[] getMasks()
- 返回指示像素中的哪些位包含颜色和 alpha 采样的掩码数组。
-
- 返回:
-
掩码数组,指示
int
像素表示中的哪些位包含颜色或 alpha 采样。
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
-
创建一个具有指定宽度和高度、数据布局与此
ColorModel
兼容的SampleModel
。 -
- 覆盖:
-
类
ColorModel
中的createCompatibleSampleModel
-
- 参数:
-
w
- 所描述的图像数据区域的宽度(以像素为单位) -
h
- 所描述的图像数据区域的高度(以像素为单位) - 返回:
-
新创建的
SampleModel
。 - 抛出:
-
IllegalArgumentException
- 如果w
或h
不大于 0 - 另请参见:
-
SampleModel
isCompatibleSampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
-
检查指定的
SampleModel
是否与此ColorModel
兼容。如果sm
为null
,则此方法返回false
。 -
- 覆盖:
-
类
ColorModel
中的isCompatibleSampleModel
-
- 参数:
-
sm
- 指定的SampleModel
,或者为null
- 返回:
-
如果指定的
SampleModel
与此ColorModel
兼容,则返回true
;否则返回false
。 - 另请参见:
-
SampleModel
getAlphaRaster
public WritableRaster getAlphaRaster(WritableRaster raster)
-
返回从输入
WritableRaster
提取,并且表示图像 alpha 通道的WritableRaster
。此方法假定与此ColorModel
关联的WritableRaster
对象将 alpha band(如果有)存储为图像数据的最后一个 band。如果没有与此ColorModel
关联的、占据独立空间的 alpha 通道,则返回null
。此方法创建一个新的WritableRaster
,但是共享原来的数据数组。 -
- 覆盖:
-
类
ColorModel
中的getAlphaRaster
-
- 参数:
-
raster
- 一个包含图像的WritableRaster
- 返回:
-
一个表示
raster
中所含图像 alpha 通道的WritableRaster
。
equals
public boolean equals(Object obj)
-
测试指定的
Object
是否为PackedColorModel
的一个实例并且等于此PackedColorModel
。 -
- 覆盖:
-
类
ColorModel
中的equals
-
- 参数:
-
obj
- 要测试相等性的Object
- 返回:
-
如果指定的
Object
是PackedColorModel
的一个实例并且等于此PackedColorModel
,则返回true
;否则返回false
。 - 另请参见:
-
Object.hashCode()
,Hashtable