- 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
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 ColorModel
coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
强制栅格数据与isAlphaPremultiplied
变量中指定的状态匹配,假设此数据当前由此ColorModel
正确描述。SampleModel
createCompatibleSampleModel(int w, int h)
创建具有指定宽度和高度的SampleModel
,其数据布局与此ColorModel
兼容。WritableRaster
createCompatibleWritableRaster(int w, int h)
创建具有指定宽度和高度的WritableRaster
,其具有与此ColorModel
兼容的数据布局(SampleModel
)。boolean
equals(Object obj)
测试指定Object
是一个实例ComponentColorModel
和等于这个ComponentColorModel
。int
getAlpha(int pixel)
返回指定像素的alpha分量,从0到255缩放。int
getAlpha(Object inData)
返回指定像素的alpha分量,从0到255缩放。WritableRaster
getAlphaRaster(WritableRaster raster)
返回Raster
表示图像的alpha通道,从输入中提取Raster
。int
getBlue(int pixel)
返回指定像素的蓝色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。int
getBlue(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
。int
getDataElement(float[] normComponents, int normOffset)
在给定一组标准化颜色/ alpha分量的情况下,返回在此ColorModel
表示为int
的像素值。int
getDataElement(int[] components, int offset)
在给定一组非标准化颜色/ alpha分量的情况下,返回此ColorModel
表示为int的像素值。Object
getDataElements(float[] normComponents, int normOffset, Object obj)
在给定一个标准化颜色/ alpha分量数组的情况下,返回此ColorModel
像素的数据元素数组表示。Object
getDataElements(int[] components, int offset, Object obj)
在给定一组非标准化颜色/ alpha分量的情况下,返回此ColorModel
像素的数据元素数组表示形式。Object
getDataElements(int rgb, Object pixel)
在给定默认RGB颜色模型中的整数像素表示的情况下,返回此ColorModel
像素的数据元素数组表示形式。int
getGreen(int pixel)
返回指定像素的绿色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。int
getGreen(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
。int
getRed(int pixel)
返回指定像素的红色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。int
getRed(Object inData)
返回指定像素的红色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。int
getRGB(int pixel)
以默认RGB颜色模型格式返回像素的颜色/ alpha分量。int
getRGB(Object inData)
以默认RGB颜色模型格式返回指定像素的颜色/ alpha分量。int[]
getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
在给定标准化组件数组的情况下,以非标准化形式返回所有颜色/ alpha分量的数组。int
hashCode()
返回此ComponentColorModel的哈希码。boolean
isCompatibleRaster(Raster raster)
如果raster
与此ColorModel
兼容,则返回true;否则返回true。 如果不是,则为假。boolean
isCompatibleSampleModel(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
兼容,如果不兼容ColorModel
false
。 - 另请参见:
-
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)
-
-