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