- 所有已实现的接口:
-
透明度
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, transferTypeFields declared in interface java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT -
Constructor Summary
ConstructorsConstructorDescriptionComponentColorModel(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。intgetAlpha(int pixel) 返回指定像素的alpha分量,从0到255进行缩放。int返回指定像素的alpha分量,从0到255进行缩放。getAlphaRaster(WritableRaster raster) 返回从输入Raster中提取的图像的alpha通道的Raster。intgetBlue(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分量数组。intgetDataElement(float[] normComponents, int normOffset) 给定一组归一化颜色/alpha分量数组,返回在此ColorModel中表示为int的像素值。intgetDataElement(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中表示为数据元素数组的像素值。intgetGreen(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分量的标准化形式。intgetRed(int pixel) 返回指定像素的红色颜色分量,在默认RGB ColorSpace(sRGB)中从0到255进行缩放。int返回指定像素的红色颜色分量,在默认RGB ColorSpace(sRGB)中从0到255进行缩放。intgetRGB(int pixel) 返回默认RGB颜色模型格式中像素的颜色/alpha分量。int返回默认RGB颜色模型格式中指定像素的颜色/alpha分量。int[]getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset) 返回一个数组,其中包含给定标准化组件数组的所有颜色/alpha分量的未标准化形式。inthashCode()返回此ComponentColorModel的哈希码。booleanisCompatibleRaster(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的哈希码。
- 参见:
-