|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.image.ColorModel java.awt.image.PackedColorModel
public abstract class PackedColorModel
PackedColorModel
类是一个抽象 ColorModel
类,它使用的像素值以单独采样表示颜色和 alpha 信息,并将单个像素的所有采样打包到单个 int、short 或 byte 量中。此类可与任意 ColorSpace
共同使用。像素值中的颜色采样数必须与 ColorSpace
中的颜色分量数相同。可以有单个 alpha 采样。对于那些使用 transferType
类型的基本数组像素表示形式的方法,数组的长度总是 1。受支持的传输类型有 DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT 和 DataBuffer.TYPE_INT。颜色和 alpha 采样按位掩码所指示的位存储在数组的单个元素中。每个位掩码必须是连续的,并且掩码不能重叠。相同的掩码适用于其他方法使用的单个 int 像素表示形式。掩码和颜色/alpha 采样的对应关系如下:
getNumComponents
- 1 的索引来标识各掩码。
getNumColorComponents
个索引指颜色采样。
ColorSpace
所指定。此顺序通常反映颜色空间类型的名称(例如 TYPE_RGB),索引 0 对应于红色、索引 1 对应于绿色、索引 2 则对应于蓝色。
出于显示或处理目的而执行的像素值到颜色/alpha 分量的转换是采样到分量的一一对应关系。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)
根据颜色掩码数组(指定了 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 |
构造方法详细信息 |
---|
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 或大于 32public 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
方法详细信息 |
---|
public final int getMask(int index)
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
小于 0public final int[] getMasks()
int
像素表示中的哪些位包含颜色或 alpha 采样。public SampleModel createCompatibleSampleModel(int w, int h)
ColorModel
兼容的 SampleModel
。
ColorModel
中的 createCompatibleSampleModel
w
- 所描述的图像数据区域的宽度(以像素为单位)h
- 所描述的图像数据区域的高度(以像素为单位)
SampleModel
。
IllegalArgumentException
- 如果 w
或 h
不大于 0SampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel
是否与此 ColorModel
兼容。如果 sm
为 null
,则此方法返回 false
。
ColorModel
中的 isCompatibleSampleModel
sm
- 指定的 SampleModel
,或者为 null
SampleModel
与此 ColorModel
兼容,则返回 true
;否则返回 false
。SampleModel
public WritableRaster getAlphaRaster(WritableRaster raster)
WritableRaster
提取,并且表示图像 alpha 通道的 WritableRaster
。此方法假定与此 ColorModel
关联的 WritableRaster
对象将 alpha band(如果有)存储为图像数据的最后一个 band。如果没有与此 ColorModel
关联的、占据独立空间的 alpha 通道,则返回 null
。此方法创建一个新的 WritableRaster
,但是共享原来的数据数组。
ColorModel
中的 getAlphaRaster
raster
- 一个包含图像的 WritableRaster
raster
中所含图像 alpha 通道的 WritableRaster
。public boolean equals(Object obj)
Object
是否为 PackedColorModel
的一个实例并且等于此 PackedColorModel
。
ColorModel
中的 equals
obj
- 要测试相等性的 Object
Object
是 PackedColorModel
的一个实例并且等于此 PackedColorModel
,则返回 true
;否则返回 false
。Object.hashCode()
,
Hashtable
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。