java.lang.Object
java.awt.image.ColorModel
java.awt.image.PackedColorModel
- 所有已实现的接口:
-
透明度
- 直接已知的子类:
-
DirectColorModel
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
,因此此类的所有对象都有效。因此,使用此表示的方法不会因为无效的像素值而抛出IllegalArgumentException
。
PackedColorModel
的子类是DirectColorModel
,类似于X11 TrueColor视觉。
- 参见:
-
Field Summary
Fields declared in class java.awt.image.ColorModel
pixel_bits, transferType
Fields declared in interface java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
-
Constructor Summary
ConstructorDescriptionPackedColorModel
(ColorSpace space, int bits, int[] colorMaskArray, int alphaMask, boolean isAlphaPremultiplied, int trans, int transferType) 从颜色掩码数组构造PackedColorModel
,该数组指定int
像素表示中包含每个颜色样本的位,并指定一个alpha掩码。PackedColorModel
(ColorSpace space, int bits, int rmask, int gmask, int bmask, int amask, boolean isAlphaPremultiplied, int trans, int transferType) 从指定的掩码构造PackedColorModel
,指示int
像素表示中包含alpha、红色、绿色和蓝色颜色样本的位。 -
Method Summary
Modifier and TypeMethodDescriptioncreateCompatibleSampleModel
(int w, int h) 创建一个具有与此ColorModel
兼容的数据布局的SampleModel
,其具有指定的宽度和高度。boolean
测试指定的Object
是否是PackedColorModel
的实例,并且是否等于此PackedColorModel
。getAlphaRaster
(WritableRaster raster) 返回表示从输入WritableRaster
中提取的图像的alpha通道的WritableRaster
。final int
getMask
(int index) 返回掩码,指示像素中包含指定颜色/alpha样本的位。final int[]
getMasks()
返回一个掩码数组,指示像素中包含颜色和alpha样本的位。int
hashCode()
返回此PackedColorModel
的哈希码。boolean
检查指定的SampleModel
是否与此ColorModel
兼容。Methods declared in class java.awt.image.ColorModel
coerceData, createCompatibleWritableRaster, 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
-
Constructor Details
-
PackedColorModel
public PackedColorModel(ColorSpace space, int bits, int[] colorMaskArray, int alphaMask, boolean isAlphaPremultiplied, int trans, int transferType) 从颜色掩码数组构造PackedColorModel
,该数组指定int
像素表示中包含每个颜色样本的位,并指定一个alpha掩码。颜色分量在指定的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
必须是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空间 - 参见:
-
-
Method Details
-
getMask
public final int getMask(int index) 返回掩码,指示像素中包含指定颜色/alpha样本的位。对于颜色样本,index
对应于颜色空间中颜色样本名称的放置。因此,对于CMYK ColorSpace,等于0的index
对应于Cyan,等于1的index
对应于Magenta。如果存在alpha,则alphaindex
将是:alphaIndex = numComponents() - 1;
- 参数:
-
index
- 指定的颜色或alpha样本 - 返回:
-
掩码,指示
int
像素表示中包含由index
指定的颜色或alpha样本的位。 - 抛出:
-
ArrayIndexOutOfBoundsException
- 如果index
大于此PackedColorModel
中的组件数减1,或者index
小于零
-
getMasks
public final int[] getMasks()返回一个掩码数组,指示像素中包含颜色和alpha样本的位。- 返回:
-
掩码数组,指示
int
像素表示中包含颜色或alpha样本的位。
-
createCompatibleSampleModel
创建一个具有与此ColorModel
兼容的数据布局的SampleModel
,其具有指定的宽度和高度。- 覆盖:
-
createCompatibleSampleModel
在类ColorModel
中 - 参数:
-
w
- 描述图像数据区域的宽度(以像素为单位) -
h
- 描述图像数据区域的高度(以像素为单位) - 返回:
-
新创建的
SampleModel
。 - 抛出:
-
IllegalArgumentException
- 如果w
或h
不大于0 - 参见:
-
isCompatibleSampleModel
检查指定的SampleModel
是否与此ColorModel
兼容。如果sm
为null
,此方法返回false
。- 覆盖:
-
isCompatibleSampleModel
在类ColorModel
中 - 参数:
-
sm
- 指定的SampleModel
,或null
- 返回:
-
如果指定的
SampleModel
与此ColorModel
兼容,则返回true
;否则返回false
。 - 参见:
-
getAlphaRaster
返回表示从输入WritableRaster
中提取的图像的alpha通道的WritableRaster
。此方法假定与此ColorModel
关联的WritableRaster
对象(如果存在)将alpha通道存储为图像数据的最后一个波段。如果没有单独的空间alpha通道与此ColorModel
关联,则返回null
。此方法创建一个新的WritableRaster
,但共享数据数组。- 覆盖:
-
getAlphaRaster
在类ColorModel
中 - 参数:
-
raster
- 包含图像的WritableRaster
- 返回:
-
代表
raster
中图像的alpha通道的WritableRaster
。
-
equals
测试指定的Object
是否是PackedColorModel
的实例并等于此PackedColorModel
。- 覆盖:
-
equals
在类ColorModel
中 - 参数:
-
obj
- 要测试相等性的Object
- 返回:
-
如果指定的
Object
是PackedColorModel
的实例并等于此PackedColorModel
,则返回true
;否则返回false
。 - 参见:
-
hashCode
public int hashCode()返回此PackedColorModel的哈希码。- 覆盖:
-
hashCode
在类ColorModel
中 - 返回:
- 此PackedColorModel的哈希码。
- 参见:
-