- 所有已实现的接口:
-
透明度
ColorModel
类。此类可以与任意ColorSpace
一起使用。像素值中的颜色样本数量必须与ColorSpace
中的颜色分量数量相同。可能有一个单独的alpha样本。
对于使用transferType
类型的原始数组像素表示的方法,数组长度与颜色和alpha样本的数量相同。颜色样本首先存储在数组中,然后是alpha样本(如果存在)。颜色样本的顺序由ColorSpace
指定。通常,此顺序反映了颜色空间类型的名称。例如,对于TYPE_RGB
,索引0对应于红色,索引1对应于绿色,索引2对应于蓝色。
将像素样本值转换为用于显示或处理目的的颜色/alpha分量是基于样本与分量之间的一对一对应关系的。根据用于创建ComponentColorModel
实例的传输类型,由该实例表示的像素样本值可能是有符号的或无符号的,可能是整数类型或浮点数或双精度数(有关详细信息,请参见下文)。从样本值到归一化颜色/alpha分量的转换必须遵循某些规则。对于浮点数和双精度数样本,转换是一个恒等式,即归一化分量值等于相应的样本值。对于整数样本,转换应该只是一个简单的比例和偏移,其中比例和偏移常数对于每个分量可能是不同的。应用比例和偏移常数的结果是一组颜色/alpha分量值,保证落在某个范围内。通常,颜色分量的范围将是由ColorSpace
类的getMinValue
和getMaxValue
方法定义的范围。alpha分量的范围应为0.0到1.0。
使用DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
和DataBuffer.TYPE_INT
传输类型创建的ComponentColorModel
实例具有被视为无符号整数值的像素样本值。像素值中颜色或alpha样本的位数可能与传递给ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int)
构造函数的相应颜色或alpha样本的位数不同。在这种情况下,此类假定样本值的最低有效n位保存组件值,其中n是传递给构造函数的组件的有效位数。它还假定样本值中的任何高阶位为零。因此,样本值范围从0到2n - 1。此类将这些样本值映射到归一化颜色分量值,使得0映射到每个分量的ColorSpace's getMinValue
方法获得的值,2n - 1映射到从getMaxValue
获得的值。要创建具有不同颜色样本映射的ComponentColorModel
需要对此类进行子类化并覆盖getNormalizedComponents(Object, float[], int)
方法。alpha样本的映射始终将0映射到0.0,2n - 1映射到1.0。
对于具有无符号样本值的实例,只有在满足两个条件的情况下才支持未归一化的颜色/alpha分量表示。首先,样本值0必须映射到归一化分量值0.0,样本值2n - 1映射到1.0。其次,ColorSpace
的所有颜色分量的最小/最大范围必须为0.0到1.0。在这种情况下,组件表示是对应样本的n个最低有效位。因此,每个组件是一个无符号整数值,范围在0到2n - 1之间,其中n是特定组件的有效位数。如果不满足这些条件,任何接受未归一化组件参数的方法都将抛出IllegalArgumentException
异常。
使用DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
和DataBuffer.TYPE_DOUBLE
传输类型创建的ComponentColorModel
实例将像素样本值视为有符号短整数、浮点数或双精度数值。这些实例不支持未归一化的颜色/alpha分量表示,因此在这些实例上调用任何接受此表示作为参数的方法时将抛出IllegalArgumentException
异常。此类的实例的归一化分量值的范围取决于传输类型,如下所示:对于浮点数样本,为浮点数据类型的完整范围;对于双精度数样本,为浮点数据类型的完整范围(由于将双精度数转换为浮点数);对于短整数样本,从大约-maxVal到+maxVal,其中maxVal是ColorSpace
的每个分量的最大值(-32767映射到-maxVal,0映射到0.0,32767映射到+maxVal)。子类可以通过覆盖getNormalizedComponents(Object, float[], int)
方法来覆盖短整数样本值到归一化分量值的缩放。对于浮点数和双精度数样本,归一化分量值被视为等于相应的样本值,子类不应尝试为这些传输类型添加任何非恒等缩放。
使用DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
和DataBuffer.TYPE_DOUBLE
传输类型创建的ComponentColorModel
实例使用所有样本值的所有位。因此,当使用DataBuffer.TYPE_SHORT
时,所有颜色/alpha分量都具有16位,当使用DataBuffer.TYPE_FLOAT
时,所有颜色/alpha分量都具有32位,当使用DataBuffer.TYPE_DOUBLE
时,所有颜色/alpha分量都具有64位。当使用ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int)
构造函数形式之一时,将忽略位数组参数。
可能存在无法合理解释为渲染组件值的颜色/alpha样本值的情况。当ComponentColorModel
被子类化以覆盖将无符号样本值映射到归一化颜色分量值时,或者使用超出某个范围的有符号样本值时,就会发生这种情况。(例如,指定作为有符号短整数值的alpha分量超出范围0到32767,归一化范围为0.0到1.0,可能导致意外结果。)应用程序有责任在渲染之前适当缩放像素数据,以使颜色分量落在ColorSpace
的归一化范围内(使用ColorSpace
类的getMinValue
和getMaxValue
方法获得)并且alpha分量在0.0到1.0之间。如果颜色或alpha分量值超出这些范围,则渲染结果是不确定的。
使用单个int像素表示的方法会抛出IllegalArgumentException
异常,除非ComponentColorModel
的组件数量为一个且组件值为无符号值 - 换句话说,使用DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或DataBuffer.TYPE_INT
传输类型的单个颜色分量且没有alpha。
可以将ComponentColorModel
与ComponentSampleModel
、BandedSampleModel
或PixelInterleavedSampleModel
结合使用以构造BufferedImage
。
- 参见:
-
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
ConstructorDescriptionComponentColorModel
(ColorSpace colorSpace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType) 构造一个ComponentColorModel
,使用指定的参数。ComponentColorModel
(ColorSpace colorSpace, int[] bits, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType) 构造一个ComponentColorModel
,使用指定的参数。 -
Method Summary
Modifier and TypeMethodDescriptioncoerceData
(WritableRaster raster, boolean isAlphaPremultiplied) 强制栅格数据与isAlphaPremultiplied
变量中指定的状态匹配,假设数据当前由此ColorModel
正确描述。createCompatibleSampleModel
(int w, int h) 创建一个具有指定宽度和高度的SampleModel
,其数据布局与此ColorModel
兼容。createCompatibleWritableRaster
(int w, int h) 创建一个具有指定宽度和高度的WritableRaster
,其数据布局(SampleModel
)与此ColorModel
兼容。boolean
测试指定的Object
是否是ComponentColorModel
的实例并且是否等于此ComponentColorModel
。int
getAlpha
(int pixel) 返回指定像素的alpha分量,从0到255进行缩放。int
返回指定像素的alpha分量,从0到255进行缩放。getAlphaRaster
(WritableRaster raster) 返回从输入Raster
中提取的图像的alpha通道的Raster
。int
getBlue
(int pixel) 返回默认RGB ColorSpace(sRGB)中指定像素的蓝色分量,从0到255进行缩放。int
返回默认RGBColorSpace
(sRGB)中指定像素的蓝色分量,从0到255进行缩放。int[]
getComponents
(int pixel, int[] components, int offset) 返回在此ColorModel
中给定像素的未归一化颜色/alpha分量数组。int[]
getComponents
(Object pixel, int[] components, int offset) 返回在此ColorModel
中给定像素的未归一化颜色/alpha分量数组。int
getDataElement
(float[] normComponents, int normOffset) 给定一组归一化颜色/alpha分量数组,返回在此ColorModel
中表示为int
的像素值。int
getDataElement
(int[] components, int offset) 给定一组未归一化颜色/alpha分量数组,返回在此ColorModel
中表示为int的像素值。getDataElements
(float[] normComponents, int normOffset, Object obj) 给定一组归一化颜色/alpha分量数组,返回在此ColorModel
中表示为数据元素数组的像素值。getDataElements
(int[] components, int offset, Object obj) 给定一组未归一化颜色/alpha分量数组,返回在此ColorModel
中表示为数据元素数组的像素值。getDataElements
(int rgb, Object pixel) 给定默认RGB颜色模型中的整数像素表示,返回在此ColorModel
中表示为数据元素数组的像素值。int
getGreen
(int pixel) 返回默认RGB ColorSpace(sRGB)中指定像素的绿色分量,从0到255进行缩放。int
返回默认RGBColorSpace
(sRGB)中指定像素的绿色分量,从0到255进行缩放。float[]
getNormalizedComponents
(int[] components, int offset, float[] normComponents, int normOffset) 返回一个数组,其中包含给定未标准化组件数组的所有颜色/alpha分量的标准化形式。float[]
getNormalizedComponents
(Object pixel, float[] normComponents, int normOffset) 返回一个数组,其中包含给定此ColorModel
中像素的所有颜色/alpha分量的标准化形式。int
getRed
(int pixel) 返回指定像素的红色颜色分量,在默认RGB ColorSpace(sRGB)中从0到255进行缩放。int
返回指定像素的红色颜色分量,在默认RGB ColorSpace(sRGB)中从0到255进行缩放。int
getRGB
(int pixel) 返回默认RGB颜色模型格式中像素的颜色/alpha分量。int
返回默认RGB颜色模型格式中指定像素的颜色/alpha分量。int[]
getUnnormalizedComponents
(float[] normComponents, int normOffset, int[] components, int offset) 返回一个数组,其中包含给定标准化组件数组的所有颜色/alpha分量的未标准化形式。int
hashCode()
返回此ComponentColorModel的哈希码。boolean
isCompatibleRaster
(Raster raster) 如果与此 ColorModel
兼容,则返回true;如果不兼容,则返回false。boolean
检查指定的SampleModel
是否与此ColorModel
兼容。Methods declared in class java.awt.image.ColorModel
getColorSpace, getComponentSize, getComponentSize, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, hasAlpha, isAlphaPremultiplied, toString
-
Constructor Details
-
ComponentColorModel
public ComponentColorModel(ColorSpace colorSpace, int[] bits, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType) 从指定参数构造一个ComponentColorModel
。颜色分量将在指定的ColorSpace
中。支持的传输类型为DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、DataBuffer.TYPE_INT
、DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
和DataBuffer.TYPE_DOUBLE
。如果不为null,则bits
数组指定每个颜色和alpha分量的有效位数,其长度应至少为ColorSpace
中的组件数,如果像素值中没有alpha信息,则为此数字的组件数,如果有alpha信息,则为此数字的一个以上。当transferType
为DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
或DataBuffer.TYPE_DOUBLE
时,将忽略bits
数组参数。hasAlpha
指示是否存在alpha信息。如果hasAlpha
为true,则布尔值isAlphaPremultiplied
指定如何解释像素值中的颜色和alpha样本。如果布尔值为true,则假定颜色样本已乘以alpha样本。transparency
指定此颜色模型可以表示的alpha值。可接受的transparency
值为OPAQUE
、BITMASK
或TRANSLUCENT
。transferType
是用于表示像素值的原始数组类型。- 参数:
-
colorSpace
- 与此颜色模型关联的ColorSpace
。 -
bits
- 每个分量的有效位数。可以为null,在这种情况下,所有分量样本的所有位将是有效的。如果transferType是DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
或DataBuffer.TYPE_DOUBLE
之一,则将忽略所有分量样本的所有位。 -
hasAlpha
- 如果为true,则此颜色模型支持alpha。 -
isAlphaPremultiplied
- 如果为true,则alpha已预乘。 -
transparency
- 指定此颜色模型可以表示的alpha值。 -
transferType
- 指定用于表示像素值的原始数组类型。 - 抛出:
-
IllegalArgumentException
- 如果bits
数组参数不为null,其长度小于颜色和alpha分量的数量,并且transferType是DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或DataBuffer.TYPE_INT
之一。 -
IllegalArgumentException
- 如果transferType不是DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、DataBuffer.TYPE_INT
、DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
或DataBuffer.TYPE_DOUBLE
之一。 - 参见:
-
ComponentColorModel
public ComponentColorModel(ColorSpace colorSpace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType) 从指定参数构造一个ComponentColorModel
。颜色分量将在指定的ColorSpace
中。支持的传输类型为DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、DataBuffer.TYPE_INT
、DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
和DataBuffer.TYPE_DOUBLE
。每个颜色和alpha分量的有效位数分别为8、16、32、16、32或64。颜色分量的数量将是ColorSpace
中的组件数。如果hasAlpha
为true
,则布尔值isAlphaPremultiplied
指定如何解释像素值中的颜色和alpha样本。如果布尔值为true,则假定颜色样本已乘以alpha样本。transparency
指定此颜色模型可以表示的alpha值。可接受的transparency
值为OPAQUE
、BITMASK
或TRANSLUCENT
。transferType
是用于表示像素值的原始数组类型。- 参数:
-
colorSpace
- 与此颜色模型关联的ColorSpace
。 -
hasAlpha
- 如果为true,则此颜色模型支持alpha。 -
isAlphaPremultiplied
- 如果为true,则alpha已预乘。 -
transparency
- 指定此颜色模型可以表示的alpha值。 -
transferType
- 指定用于表示像素值的原始数组类型。 - 抛出:
-
IllegalArgumentException
- 如果transferType不是DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、DataBuffer.TYPE_INT
、DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
或DataBuffer.TYPE_DOUBLE
之一。 - 自:
- 1.4
- 参见:
-
-
Method Details
-
getRed
public int getRed(int pixel) 返回指定像素的红色颜色分量,在默认RGB ColorSpace(sRGB)中从0到255进行缩放。如果需要,将进行颜色转换。像素值指定为int。返回的值将是非预乘值。如果alpha已预乘,此方法在返回值之前将其除去(如果alpha值为0,则红色值将为0)。- 指定者:
-
getRed
在类中ColorModel
- 参数:
-
pixel
- 您要获取红色颜色分量的像素。 - 返回:
- 指定像素的红色颜色分量,作为int。
- 抛出:
-
IllegalArgumentException
- 如果此ColorModel
中有多个分量。 -
IllegalArgumentException
- 如果此ColorModel
的分量值为有符号的
-
getGreen
public int getGreen(int pixel) 返回指定像素的绿色颜色分量,在默认RGB ColorSpace(sRGB)中从0到255进行缩放。如果需要,将进行颜色转换。像素值指定为int。返回的值将是非预乘值。如果alpha已预乘,此方法在返回值之前将其除去(如果alpha值为0,则绿色值将为0)。- 指定者:
-
getGreen
在类中ColorModel
- 参数:
-
pixel
- 您要获取绿色颜色分量的像素。 - 返回:
- 指定像素的绿色颜色分量,作为int。
- 抛出:
-
IllegalArgumentException
- 如果此ColorModel
中有多个分量。 -
IllegalArgumentException
- 如果此ColorModel
的分量值为有符号的
-
getBlue
public int getBlue(int pixel) 返回指定像素的蓝色颜色分量,在默认RGB ColorSpace(sRGB)中从0到255进行缩放。如果需要,将进行颜色转换。像素值指定为int。返回的值将是非预乘值。如果alpha已预乘,此方法在返回值之前将其除去(如果alpha值为0,则蓝色值将为0)。- 指定者:
-
getBlue
在类中ColorModel
- 参数:
-
pixel
- 您要获取蓝色颜色分量的像素。 - 返回:
- 指定像素的蓝色颜色分量,作为int。
- 抛出:
-
IllegalArgumentException
- 如果此ColorModel
中有多个分量。 -
IllegalArgumentException
- 如果此ColorModel
的分量值为有符号的
-
getAlpha
public int getAlpha(int pixel) 返回指定像素的alpha分量,从0到255进行缩放。像素值指定为int。- 指定者:
-
getAlpha
在类ColorModel
中 - 参数:
-
pixel
- 您要获取alpha分量的像素。 - 返回:
- 指定像素的alpha分量,作为int。
- 抛出:
-
IllegalArgumentException
- 如果此ColorModel
中有多个分量。 -
IllegalArgumentException
- 如果此ColorModel
的分量值为有符号的
-
getRGB
public int getRGB(int pixel) 返回默认RGB颜色模型格式中像素的颜色/alpha分量。如果需要,将进行颜色转换。返回的值将是非预乘格式。如果alpha已经预乘,则此方法将从颜色分量中除去它(如果alpha值为0,则颜色值将为0)。- 覆盖:
-
getRGB
在类ColorModel
中 - 参数:
-
pixel
- 您要获取颜色/alpha分量的像素。 - 返回:
- 指定像素的颜色/alpha分量,作为int。
- 抛出:
-
IllegalArgumentException
- 如果此ColorModel
中有多个分量。 -
IllegalArgumentException
- 如果此ColorModel
的分量值为有符号的 - 参见:
-
getRed
返回默认RGB ColorSpace(sRGB)中从0到255缩放的指定像素的红色分量。如果需要,将进行颜色转换。pixel
值由作为对象引用传递的transferType
类型的数据元素数组指定。返回的值将是非预乘值。如果alpha已经预乘,则此方法在返回值之前除去它(如果alpha值为0,则红色值将为0)。由于ComponentColorModel
可以被子类化,子类将继承此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType
时会抛出异常。- 覆盖:
-
getRed
在类ColorModel
中 - 参数:
-
inData
- 您要获取红色分量的像素,由transferType
类型的数据元素数组指定。 - 返回:
- 指定像素的红色分量,作为int。
- 抛出:
-
ClassCastException
- 如果inData
不是transferType
类型的原始数组。 -
ArrayIndexOutOfBoundsException
- 如果inData
不足以容纳此ColorModel
的像素值。 -
UnsupportedOperationException
- 如果此ComponentColorModel
的传输类型不是受支持的传输类型之一:DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、DataBuffer.TYPE_INT
、DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
或DataBuffer.TYPE_DOUBLE
。
-
getGreen
返回默认RGBColorSpace
(sRGB)中从0到255缩放的指定像素的绿色分量。如果需要,将进行颜色转换。pixel
值由作为对象引用传递的transferType
类型的数据元素数组指定。返回的值是非预乘值。如果alpha已经预乘,则此方法在返回值之前除去它(如果alpha值为0,则绿色值将为0)。由于ComponentColorModel
可以被子类化,子类将继承此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType
时会抛出异常。- 覆盖:
-
getGreen
在类ColorModel
中 - 参数:
-
inData
- 您要获取绿色分量的像素,由transferType
类型的数据元素数组指定。 - 返回:
- 指定像素的绿色分量,作为int。
- 抛出:
-
ClassCastException
- 如果inData
不是transferType
类型的原始数组。 -
ArrayIndexOutOfBoundsException
- 如果inData
不足以容纳此ColorModel
的像素值。 -
UnsupportedOperationException
- 如果此ComponentColorModel
的传输类型不是受支持的传输类型之一:DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、DataBuffer.TYPE_INT
、DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
或DataBuffer.TYPE_DOUBLE
。
-
getBlue
返回默认RGBColorSpace
(sRGB)中从0到255缩放的指定像素的蓝色分量。如果需要,将进行颜色转换。pixel
值由作为对象引用传递的transferType
类型的数据元素数组指定。返回的值是非预乘值。如果alpha已经预乘,则此方法在返回值之前除去它(如果alpha值为0,则蓝色值将为0)。由于ComponentColorModel
可以被子类化,子类将继承此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType
时会抛出异常。- 覆盖:
-
getBlue
在类ColorModel
中 - 参数:
-
inData
- 您要获取蓝色分量的像素,由transferType
类型的数据元素数组指定。 - 返回:
- 指定像素的蓝色分量,作为int。
- 抛出:
-
ClassCastException
- 如果inData
不是transferType
类型的原始数组。 -
ArrayIndexOutOfBoundsException
- 如果inData
不足以容纳此ColorModel
的像素值。 -
UnsupportedOperationException
- 如果此ComponentColorModel
的传输类型不是受支持的传输类型之一:DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、DataBuffer.TYPE_INT
、DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
或DataBuffer.TYPE_DOUBLE
。
-
getAlpha
返回从0到255缩放的指定像素的alpha分量。像素值由作为对象引用传递的transferType
类型的数据元素数组指定。由于ComponentColorModel
可以被子类化,子类将继承此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType
时会抛出异常。- 覆盖:
-
getAlpha
在类ColorModel
中 - 参数:
-
inData
- 您要获取alpha分量的像素,由transferType
类型的数据元素数组指定。 - 返回:
- 指定像素的alpha分量,作为int。
- 抛出:
-
ClassCastException
- 如果inData
不是transferType
类型的原始数组。 -
ArrayIndexOutOfBoundsException
- 如果inData
不足以容纳此ColorModel
的像素值。 -
UnsupportedOperationException
- 如果此ComponentColorModel
的传输类型不是受支持的传输类型之一:DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、DataBuffer.TYPE_INT
、DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
或DataBuffer.TYPE_DOUBLE
。
-
getRGB
返回默认RGB颜色模型格式中指定像素的颜色/alpha分量。如果需要,将执行颜色转换。像素值由作为对象引用传递的transferType
类型的数据元素数组指定。返回的值以非预乘格式呈现。如果alpha已经预乘,则此方法将其从颜色分量中除去(如果alpha值为0,则颜色值将为0)。由于ComponentColorModel
可以被子类化,子类会继承此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType
时会抛出异常。- 覆盖:
-
getRGB
在类中ColorModel
- 参数:
-
inData
- 您要获取颜色/alpha分量的像素,由transferType
类型的数据元素数组指定。 - 返回:
- 指定像素的颜色/alpha分量,作为int。
- 抛出:
-
ClassCastException
- 如果inData
不是transferType
类型的原始数组。 -
ArrayIndexOutOfBoundsException
- 如果inData
不足以容纳此ColorModel
的像素值。 -
UnsupportedOperationException
- 如果此ComponentColorModel
的传输类型不是受支持的传输类型之一:DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、DataBuffer.TYPE_INT
、DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
或DataBuffer.TYPE_DOUBLE
。 - 参见:
-
getDataElements
返回此ColorModel
中像素的数据元素数组表示,给定默认RGB颜色模型中的整数像素表示。然后可以将此数组传递给WritableRaster
对象的setDataElements
方法。如果pixel
参数为null,则将分配一个新数组。由于ComponentColorModel
可以被子类化,子类会继承此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType
时会抛出异常。- 覆盖:
-
getDataElements
在类中ColorModel
- 参数:
-
rgb
- RGB颜色模型中像素的整数表示 -
pixel
- 指定的像素 - 返回:
-
此
ColorModel
中像素的数据元素数组表示。 - 抛出:
-
ClassCastException
- 如果pixel
不为null且不是transferType
类型的原始数组。 -
ArrayIndexOutOfBoundsException
- 如果pixel
不足以容纳此ColorModel
的像素值。 -
UnsupportedOperationException
- 如果此ComponentColorModel
的传输类型不是受支持的传输类型之一:DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、DataBuffer.TYPE_INT
、DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
或DataBuffer.TYPE_DOUBLE
。 - 参见:
-
getComponents
public int[] getComponents(int pixel, int[] components, int offset) 返回给定ColorModel
中像素的未标准化颜色/alpha分量数组。如果此ColorModel
的组件值在未标准化形式中不方便表示,则会抛出IllegalArgumentException异常。颜色/alpha分量存储在从offset
开始的components
数组中(即使该数组是由此方法分配的)。- 覆盖:
-
getComponents
在类中ColorModel
- 参数:
-
pixel
- 作为整数指定的像素值。 -
components
- 用于存储未标准化颜色/alpha分量的整数数组。如果components
数组为null,则将分配一个新数组。 -
offset
-components
数组中的偏移量。 - 返回:
- 组件数组。
- 抛出:
-
IllegalArgumentException
- 如果此ColorModel
中有多个组件。 -
IllegalArgumentException
- 如果此ColorModel
不支持未标准化形式 -
ArrayIndexOutOfBoundsException
- 如果components
数组不为null且不足以容纳所有颜色和alpha分量(从偏移量开始)。
-
getComponents
返回给定ColorModel
中像素的未标准化颜色/alpha分量数组。像素值由作为对象引用传递的transferType
类型的数据元素数组指定。如果此ColorModel
的组件值在未标准化形式中不方便表示,则会抛出IllegalArgumentException异常。颜色/alpha分量存储在从offset
开始的components
数组中(即使该数组是由此方法分配的)。由于ComponentColorModel
可以被子类化,子类会继承此方法的实现,如果它们不覆盖它,则此方法可能会在使用不受支持的transferType
时抛出异常。- 覆盖:
-
getComponents
在类中ColorModel
- 参数:
-
pixel
- 由transferType
类型的数据元素数组指定的像素值。 -
components
- 用于存储未标准化颜色/alpha分量的整数数组。如果components
数组为null,则将分配一个新数组。 -
offset
-components
数组中的偏移量。 - 返回:
-
components
数组。 - 抛出:
-
IllegalArgumentException
- 如果此ComponentColorModel
不支持未标准化形式 -
UnsupportedOperationException
- 在某些情况下,如果此ComponentColorModel
的传输类型不是以下传输类型之一:DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或DataBuffer.TYPE_INT
。 -
ClassCastException
- 如果pixel
不是transferType
类型的原始数组。 -
IllegalArgumentException
- 如果components
数组不为null且不足以容纳所有颜色和alpha分量(从偏移量开始),或者如果pixel
不足以容纳此ColorModel的像素值。
-
getUnnormalizedComponents
public int[] getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset) 返回给定标准化组件数组的所有颜色/alpha分量的未标准化形式数组。未标准化组件是介于0和2n - 1之间的无符号整数值,其中n是特定组件的位数。标准化组件是由此ColorModel
的ColorSpace
对象指定的每个组件的最小和最大值之间的浮点值。如果此ColorModel
的颜色分量值在未标准化形式中不方便表示,则将抛出IllegalArgumentException
。如果components
数组为null
,将分配一个新数组。将返回components
数组。颜色/alpha分量存储在从offset
开始的components
数组中(即使该数组是由此方法分配的)。如果components
数组不为null
且不足以容纳所有颜色和alpha分量(从offset
开始),将抛出ArrayIndexOutOfBoundsException
。如果normComponents
数组不足以容纳从normOffset
开始的所有颜色和alpha分量,则将抛出IllegalArgumentException
。- 覆盖:
-
getUnnormalizedComponents
在类ColorModel
- 参数:
-
normComponents
- 包含标准化组件的数组 -
normOffset
- 开始检索标准化组件的normComponents
数组中的偏移量 -
components
- 从normComponents
接收组件的数组 -
offset
- 从normComponents
开始存储标准化组件的components
中的索引 - 返回:
- 包含未标准化颜色和alpha组件的数组。
- 抛出:
-
IllegalArgumentException
- 如果此ComponentColorModel
不支持未标准化形式 -
IllegalArgumentException
- 如果normComponents
的长度减去normOffset
小于numComponents
-
getNormalizedComponents
public float[] getNormalizedComponents(int[] components, int offset, float[] normComponents, int normOffset) 返回一个包含所有颜色/alpha组件的标准化形式的数组,给定一个未标准化组件数组。未标准化组件是介于0和2n - 1之间的无符号整数值,其中n是特定组件的位数。标准化组件是ColorModel
对象为此ColorModel
指定的每个组件的最小值和最大值之间的浮点值。如果此ColorModel
的颜色组件值在未标准化形式下不方便表示,则将抛出IllegalArgumentException
。如果normComponents
数组为null
,将分配一个新数组。将返回normComponents
数组。颜色/alpha组件存储在normComponents
数组中,从normOffset
开始(即使该数组是由此方法分配的)。如果normComponents
数组不为null
且不足以容纳所有颜色和alpha组件(从normOffset
开始),则会抛出ArrayIndexOutOfBoundsException
。如果components
数组不足以容纳从offset
开始的所有颜色和alpha组件,则会抛出IllegalArgumentException
。- 覆盖:
-
getNormalizedComponents
在类ColorModel
- 参数:
-
components
- 包含未标准化组件的数组 -
offset
- 开始检索未标准化组件的components
数组中的偏移量 -
normComponents
- 接收标准化组件的数组 -
normOffset
- 开始存储标准化组件的normComponents
中的索引 - 返回:
- 包含标准化颜色和alpha组件的数组。
- 抛出:
-
IllegalArgumentException
- 如果此ComponentColorModel
不支持未标准化形式
-
getDataElement
public int getDataElement(int[] components, int offset) 返回一个以int表示的像素值,给定一个未标准化颜色/alpha组件数组,在此ColorModel
中。- 覆盖:
-
getDataElement
在类ColorModel
- 参数:
-
components
- 一个未标准化颜色/alpha组件的数组。 -
offset
-components
数组中的偏移量。 - 返回:
- 以int表示的像素值。
- 抛出:
-
IllegalArgumentException
- 如果此ColorModel
中有多个组件。 -
IllegalArgumentException
- 如果此ComponentColorModel
不支持未标准化形式
-
getDataElements
返回一个数据元素数组表示此ColorModel
中像素的像素值,给定一个未标准化颜色/alpha组件的数组。然后可以将此数组传递给WritableRaster
对象的setDataElements
方法。- 覆盖:
-
getDataElements
在类ColorModel
- 参数:
-
components
- 一个未标准化颜色/alpha组件的数组。 -
offset
-components
数组中的整数偏移量。 -
obj
- 存储像素的数据元素数组表示的对象。如果obj
变量为null
,将分配一个新数组。如果obj
不为null
,它必须是transferType
类型的原始数组。如果obj
不足以容纳此ColorModel
的像素值,则会抛出ArrayIndexOutOfBoundsException
。由于ComponentColorModel
可以被子类化,子类继承此方法的实现,如果它们不覆盖它,则会在使用不受支持的transferType
时抛出异常。 - 返回:
-
此
ColorModel
中像素的数据元素数组表示。 - 抛出:
-
IllegalArgumentException
- 如果组件数组不足以容纳所有颜色和alpha组件(从偏移量开始)。 -
ClassCastException
- 如果obj
不为null
且不是transferType
类型的原始数组。 -
ArrayIndexOutOfBoundsException
- 如果obj
不足以容纳此ColorModel
的像素值。 -
IllegalArgumentException
- 如果此ComponentColorModel
不支持未标准化形式 -
UnsupportedOperationException
- 如果此ComponentColorModel
的传输类型不是以下传输类型之一:DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或DataBuffer.TYPE_INT
。 - 参见:
-
getDataElement
public int getDataElement(float[] normComponents, int normOffset) 返回一个以int
表示的像素值,在此ColorModel
中,给定一个标准化颜色/alpha组件的数组。如果此ColorModel
的像素值不方便表示为单个int
,则此方法将抛出IllegalArgumentException
。如果normComponents
数组不足以容纳所有颜色和alpha组件(从normOffset
开始),则会抛出ArrayIndexOutOfBoundsException
。- 覆盖:
-
getDataElement
在类ColorModel
- 参数:
-
normComponents
- 一个标准化颜色和alpha组件的数组 -
normOffset
- 开始检索颜色和alpha组件的normComponents
中的索引 - 返回:
-
在此
ColorModel
中以int
表示的像素值,对应于指定的组件。 - 抛出:
-
IllegalArgumentException
- 如果此ColorModel
的像素值不方便表示为单个int
-
ArrayIndexOutOfBoundsException
- 如果normComponents
数组不足以容纳从normOffset
开始的所有颜色和alpha组件 - 自:
- 1.4
-
getDataElements
返回一个数据元素数组表示此ColorModel
中像素的像素值,给定一个标准化颜色/alpha组件的数组。然后可以将此数组传递给WritableRaster
对象的setDataElements
方法。如果normComponents
数组不足以容纳所有颜色和alpha组件(从normOffset
开始),则会抛出ArrayIndexOutOfBoundsException
。如果obj
变量为null
,将分配一个新数组。如果obj
不为null
,它必须是transferType
类型的原始数组;否则,将抛出ClassCastException
。如果obj
不足以容纳此ColorModel
的像素值,则会抛出ArrayIndexOutOfBoundsException
。- 覆盖:
-
getDataElements
在类ColorModel
- 参数:
-
normComponents
- 一个包含归一化颜色和alpha分量的数组 -
normOffset
- 开始检索颜色和alpha分量的normComponents
数组中的索引 -
obj
- 一个原始数据数组,用于保存返回的像素 - 返回:
-
一个
Object
,它是像素的原始数据数组表示 - 抛出:
-
ClassCastException
- 如果obj
不是类型为transferType
的原始数组 -
ArrayIndexOutOfBoundsException
- 如果obj
不足以容纳此ColorModel
的像素值,或者normComponents
数组不足以容纳从normOffset
开始的所有颜色和alpha分量 - 自:
- 1.4
- 参见:
-
getNormalizedComponents
返回一个包含所有颜色/alpha分量的归一化形式的数组,给定此ColorModel
中的像素。像素值由作为对象引用传递的transferType类型的数据元素数组指定。如果像素不是类型为transferType的原始数组,则会抛出ClassCastException
。如果pixel
不足以容纳此ColorModel
的像素值,则会抛出ArrayIndexOutOfBoundsException
。归一化分量是在由此ColorModel
的ColorSpace
对象指定的每个分量的最小值和最大值之间的浮点值。如果normComponents
数组为null
,将分配一个新数组。将返回normComponents
数组。颜色/alpha分量存储在从normOffset
开始的normComponents
数组中(即使该数组是由此方法分配的)。如果normComponents
数组不为null
且不足以容纳所有颜色和alpha分量(从normOffset
开始),则会抛出ArrayIndexOutOfBoundsException
。如果子类设计为以非默认方式将像素样本值转换为颜色分量值,则必须重写此方法。此类实现的默认转换在类注释中有描述。任何实现非默认转换的子类必须遵循那里定义的允许转换的约束。
- 覆盖:
-
getNormalizedComponents
在类ColorModel
- 参数:
-
pixel
- 指定的像素 -
normComponents
- 用于接收归一化分量的数组 -
normOffset
- 开始存储归一化分量的normComponents
数组中的偏移量 - 返回:
- 包含归一化颜色和alpha分量的数组。
- 抛出:
-
ClassCastException
- 如果pixel
不是类型为transferType的原始数组 -
ArrayIndexOutOfBoundsException
- 如果normComponents
不足以容纳从normOffset
开始的所有颜色和alpha分量 -
ArrayIndexOutOfBoundsException
- 如果pixel
不足以容纳此ColorModel
的像素值。 - 自:
- 1.4
-
coerceData
强制光栅数据与isAlphaPremultiplied
变量指定的状态匹配,假设数据当前由此ColorModel
正确描述。它可能通过alpha乘法或除法,或者如果数据处于正确状态则不执行任何操作。如果需要强制数据,此方法还会返回一个适当设置isAlphaPremultiplied
标志的此ColorModel
的实例。由于ColorModel
可以被子类化,子类继承此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType
时会抛出异常。- 覆盖:
-
coerceData
在类ColorModel
- 参数:
-
raster
-WritableRaster
数据 -
isAlphaPremultiplied
- 如果alpha是预乘的,则为true
; 否则为false
- 返回:
-
代表强制数据的
ColorModel
对象。 - 抛出:
-
NullPointerException
- 如果raster
为null
且需要数据强制。 -
UnsupportedOperationException
- 如果此ComponentColorModel
的传输类型不是受支持的传输类型之一:DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、DataBuffer.TYPE_INT
、DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
或DataBuffer.TYPE_DOUBLE
。
-
isCompatibleRaster
如果raster
与此ColorModel
兼容,则返回true
;否则返回false
。- 覆盖:
-
isCompatibleRaster
在类ColorModel
- 参数:
-
raster
- 要测试兼容性的Raster
对象 - 返回:
-
如果
raster
与此ColorModel
兼容,则返回true
;否则返回false
。
-
createCompatibleWritableRaster
创建一个具有指定宽度和高度的WritableRaster
,其数据布局(SampleModel
)与此ColorModel
兼容。- 覆盖:
-
createCompatibleWritableRaster
在类ColorModel
- 参数:
-
w
- 您要创建的WritableRaster
的宽度 -
h
- 您要创建的WritableRaster
的高度 - 返回:
-
与此
ColorModel
兼容的WritableRaster
。 - 参见:
-
createCompatibleSampleModel
创建一个具有指定宽度和高度的SampleModel
,其数据布局与此ColorModel
兼容。- 覆盖:
-
createCompatibleSampleModel
在类ColorModel
- 参数:
-
w
- 您要创建的SampleModel
的宽度 -
h
- 您要创建的SampleModel
的高度 - 返回:
-
与此
ColorModel
兼容的SampleModel
。 - 参见:
-
isCompatibleSampleModel
检查指定的SampleModel
是否与此ColorModel
兼容。- 覆盖:
-
isCompatibleSampleModel
在类ColorModel
- 参数:
-
sm
- 要测试兼容性的SampleModel
- 返回:
-
如果
SampleModel
与此ColorModel
兼容,则返回true
;否则返回false
。 - 参见:
-
getAlphaRaster
返回表示从输入Raster
中提取的图像的alpha通道的Raster
。此方法假定与此ColorModel
关联的Raster
对象将alpha通道(如果存在)存储为图像数据的最后一个通道。如果没有单独的空间alpha通道与此ColorModel
关联,则返回null
。此方法将创建一个新的Raster
,但将共享数据数组。- 覆盖:
-
getAlphaRaster
在类ColorModel
- 参数:
-
raster
- 从中提取alpha通道的WritableRaster
- 返回:
-
包含图像alpha通道的
WritableRaster
。
-
equals
测试指定的Object
是否是ComponentColorModel
的实例,并且是否等于此ComponentColorModel
。- 覆盖:
-
equals
在类ColorModel
- 参数:
-
obj
- 要测试是否相等的Object
- 返回:
-
如果指定的
Object
是ComponentColorModel
的一个实例并且等于这个ComponentColorModel
,则返回true
;否则返回false
。 - 参见:
-
hashCode
public int hashCode()返回此ComponentColorModel的哈希码。- 覆盖:
-
hashCode
在类ColorModel
- 返回:
- 此ComponentColorModel的哈希码。
- 参见:
-