- 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
-
Fields declared in interface java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
-
-
构造方法摘要
构造方法 构造器 描述 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,red,green和blue颜色样本。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 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样本。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
-
-
-
-
构造方法详细信息
-
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
-true
如果颜色样本被alpha样本预乘; 否则为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,red,green和blue颜色样本。 颜色组件位于指定的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
-true
如果颜色样本被alpha样本预乘; 否则为false
-
trans
- 指定可由此颜色模型表示的Alpha值 -
transferType
- 用于表示像素值的数组类型 - 异常
-
IllegalArgumentException
- 如果space
不是TYPE_RGB空间 - 另请参见:
-
ColorSpace
-
-
方法详细信息
-
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
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
表示图像的alpha通道,从输入中提取WritableRaster
。 此方法假定与此ColorModel
关联的WritableRaster
对象存储alpha波段(如果存在)作为图像数据的最后一个波段。 返回null
如果没有与此相关的独立空间alpha通道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)
-
-