public abstract class PackedColorModel extends ColorModel
PackedColorModel
类是一个抽象的ColorModel
类,它与像素值一起使用,它们将颜色和alpha信息表示为单独的样本,并将单个像素的所有样本包装为单个int,short或byte数量。
这个类可以随意使用ColorSpace
。
颜色样本中的像素值的数量必须相同的颜色成分的数目ColorSpace
。
可以有一个单一的alpha样本。
该数组的长度总是为1那些使用类型的基本数组像素表示方法transferType
。
支持的传输类型是DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT和DataBuffer.TYPE_INT。
颜色和alpha样本以位掩码表示的位存储在阵列的单个元素中。
每个位掩码必须是连续的,掩码不能重叠。
相同的掩码适用于其他方法使用的单个int像素表示。
面具和颜色/阿尔法样本的对应关系如下:
getNumComponents
- 1的索引识别 。 getNumColorComponents
指数是指颜色样本。 ColorSpace
。 通常,这反映了颜色空间类型的名称(例如,TYPE_RGB),索引0对应于红色,索引1为绿色,索引2为蓝色。 从显示或处理目的,从像素值到颜色/α分量的转换是样本与组件的一一对应关系。 A PackedColorModel
通常与使用掩模定义打包样本的图像数据一起使用。 例如, PackedColorModel
可以结合使用具有SinglePixelPackedSampleModel
构建BufferedImage
。 通常SampleModel
和ColorModel
使用的面具将是一样的。 但是,如果它们是不同的,像素数据的颜色解释根据的面具做ColorModel
。
单个int
像素表示对于此类的所有对象是有效的,因为总是可以在单个int
中表示与该类一起使用的像素值。 因此,由于无效的像素值,使用此表示的方法不会抛出IllegalArgumentException
。
PackedColorModel
的子类是DirectColorModel
,它类似于X11 TrueColor视觉。
pixel_bits, transferType
BITMASK, OPAQUE, TRANSLUCENT
Constructor and Description |
---|
PackedColorModel(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,红,绿和蓝色样本。
|
Modifier and Type | Method and Description |
---|---|
SampleModel |
createCompatibleSampleModel(int w, int h)
创建
SampleModel 具有指定的宽度和高度,具有与此兼容的数据布局
ColorModel 。
|
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 。
|
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, hashCode, isAlphaPremultiplied, isCompatibleRaster, toString
public PackedColorModel(ColorSpace space, int bits, int[] colorMaskArray, int alphaMask, boolean isAlphaPremultiplied, int trans, int transferType)
PackedColorModel
,它指定int
像素表示中的哪个位包含每个颜色样本,以及一个alpha掩码。
颜色组件在指定的ColorSpace
。
colorMaskArray
的长度应该是ColorSpace中的ColorSpace
。
每个掩码中的所有位必须是连续的,并且适合int
像素表示的指定数目的最低有效位。
如果alphaMask
是0,则没有alpha。
如果有alpha, boolean
isAlphaPremultiplied
指定如何在像素值中解释颜色和alpha样本。
如果boolean
为true
,则假定颜色样本已经乘以α样本。
透明度( trans
)指定了此颜色模型可以表示哪些alpha值。
传输类型是用于表示像素值的原始数组的类型。
space
- 指定的
ColorSpace
bits
- 像素值中的位数
colorMaskArray
- 指定表示表示颜色分量的像素值的位的掩码的数组
alphaMask
- 指定表示表示α分量的像素值的位的掩码
isAlphaPremultiplied
- true
如果颜色样本被alpha样本预乘,
false
否则
trans
- 指定可以由此颜色模型表示的alpha值
transferType
- 用于表示像素值的数组类型
IllegalArgumentException
- 如果
bits
小于1或大于32
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
,则假定颜色样本已被乘以α样本。
透明度trans
指定了这个颜色模型可以表示哪些alpha值。
传输类型是用于表示像素值的原始数组的类型。
space
- 指定的
ColorSpace
bits
- 像素值中的位数
rmask
- 指定表示表示红色分量的像素值的位的掩码
gmask
- 指定表示表示绿色分量的像素值的位的掩码
bmask
- 指定表示表示蓝色分量的像素值的位的掩码
amask
- 指定表示表示α分量的像素值的位的掩码
isAlphaPremultiplied
- true
如果颜色样品被α样品预乘,
false
否则
trans
- 指定可以由此颜色模型表示的alpha值
transferType
- 用于表示像素值的数组的类型
IllegalArgumentException
- 如果
space
不是TYPE_RGB空间
ColorSpace
public final int getMask(int index)
index
对应于颜色空间中颜色样本名称的位置。
因此, index
等于0为CMYK的ColorSpace将对应于青色和index
等于1将对应于品红色。
如果有alpha,alpha index
将是:
alphaIndex = numComponents() - 1;
index
- 指定的颜色或alpha样本
int
像素表示包含由指定的颜色或α-样品
index
。
ArrayIndexOutOfBoundsException
-如果
index
比组件1在这个数减更大
PackedColorModel
或如果
index
小于零
public final int[] getMasks()
int
像素表示的哪个位包含颜色或α样本。
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel
具有指定的宽度和高度,具有与此兼容的数据布局
ColorModel
。
createCompatibleSampleModel
在类别
ColorModel
w
- 描述的图像数据的区域的宽度(以像素为单位)
h
- 描述的图像数据的区域的高度(以像素为单位)
SampleModel
。
IllegalArgumentException
- 如果
w
或
h
不大于0
SampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel
与此兼容ColorModel
。
如果sm
是null
,此方法返回false
。
isCompatibleSampleModel
在类别
ColorModel
sm
- 指定的
SampleModel
或
null
true
如果SampleModel
的SampleModel与此ColorModel
;
false
否则。
SampleModel
public WritableRaster getAlphaRaster(WritableRaster raster)
WritableRaster
,表示从输入WritableRaster
的图像的Alpha通道。
该方法假设与此ColorModel
WritableRaster
对象存储α波段(如果存在)作为最后的图像数据带。
返回null
如果没有与此相关的独立空间alpha通道ColorModel
。
此方法创建一个新的WritableRaster
,但共享数据数组。
getAlphaRaster
在类别
ColorModel
raster
- 一个包含图像的
WritableRaster
WritableRaster
表示包含在图像的α信道
raster
。
public boolean equals(Object obj)
Object
是一个实例
PackedColorModel
和等于这个
PackedColorModel
。
equals
在类别
ColorModel
obj
-
Object
以测试平等
true
如果指定Object
是的一个实例PackedColorModel
并且等于此PackedColorModel
;
false
否则。
Object.hashCode()
, HashMap