- java.lang.Object
-
- java.awt.image.ColorModel
-
- java.awt.image.ComponentColorModel
-
- All Implemented Interfaces:
-
Transparency
public class ComponentColorModel extends ColorModel
一个ColorModel
类,用于将颜色和alpha信息表示为单独样本的像素值,并将每个样本存储在单独的数据元素中。 这个类可以随意使用ColorSpace
。 像素值中的颜色样本数必须与ColorSpace
的颜色成ColorSpace
。 可能有一个单一的α样本。对于使用类型为
transferType
的原始数组像素表示的那些方法,数组长度与颜色和alpha样本的数量相同。 颜色样本首先存储在数组中,然后存储alpha样本。 颜色样本的顺序由ColorSpace
指定。 通常,此顺序反映了颜色空间类型的名称。 例如,对于TYPE_RGB
,索引0对应于红色,索引1为绿色,索引2为蓝色。从显示或处理目的的像素样本值到颜色/α分量的转换是基于样本与分量的一一对应关系。 根据用于创建
ComponentColorModel
实例的传输类型,由该实例表示的像素样本值可能是有符号的或无符号的,并且可以是整数类型或浮点或双倍(详见下文)。 从样本值到归一化颜色/α分量的转换必须遵循某些规则。 对于浮点和双样本,转换是一个标识,即归一化分量值等于相应的样本值。 对于积分样本,平移应该只是一个简单的尺度和偏移,其中每个分量的比例和偏移常数可能不同。 应用比例和偏移常数的结果是一组颜色/α分量值,这些值保证在一定范围内。 通常,颜色分量的范围将是由ColorSpace
类的getMinValue
和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
。 该类的实例的归一化组件值具有取决于传输类型的范围,如下所示:对于浮动样本,浮点数据类型的全范围; 对于双样本,浮点数据类型的全范围(由铸造双倍浮动) 对于短样本,从大约-maxVal到+ maxVal,其中maxVal是ColorSpace
(-32767映射到-maxVal,0映射到0.0,并且32767映射到+ maxVal)的每个分量最大值。 一个子类可以通过覆盖getNormalizedComponents(Object, float[], int)
方法来覆盖短样本值到归一化分量值的getNormalizedComponents(Object, float[], int)
。 对于浮动和双样本,归一化分量值取为等于相应的样本值,子类不应尝试为这些传输类型添加任何非标识缩放。的实例
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)
形式的构造函数时,将忽略位数组参数。可能会有不能合理地将颜色/ alpha样本值解释为渲染的组件值。 当
ComponentColorModel
被子类化以覆盖无符号样本值到归一化颜色分量值的映射或使用特定范围之外的带符号样本值时,可能会发生这种情况。 (例如,将α分量指定为范围0到32767之外的带符号短值,归一化范围为0.0到1.0,可能会导致意想不到的结果)。应用程序有责任在渲染之前适当地缩放像素数据,使得颜色组分落在ColorSpace
(使用ColorSpace
类的getMinValue
和getMaxValue
方法获得)的归一化范围内,并且α分量在0.0和1.0之间。 如果颜色或α分量值落在这些范围之外,则渲染结果是不确定的。使用单个int像素表示形式的方法抛出
IllegalArgumentException
,除非成分的用于数ComponentColorModel
是一个和成分值是无符号的-使用的传输类型,换句话说,单一颜色分量DataBuffer.TYPE_BYTE
,DataBuffer.TYPE_USHORT
,或DataBuffer.TYPE_INT
和没有阿尔法甲
ComponentColorModel
可以结合使用具有ComponentSampleModel
,一个BandedSampleModel
或PixelInterleavedSampleModel
构建BufferedImage
。
-
-
Field Summary
-
Fields inherited from class java.awt.image.ColorModel
pixel_bits, transferType
-
Fields inherited from interface java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
-
-
构造方法摘要
构造方法 Constructor 描述 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
。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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
表示从输入Raster
提取的图像的Alpha通道。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分量的数组。int[]
getComponents(Object pixel, int[] components, int offset)
在这个ColorModel
给出一个像素的非规范化颜色/ alpha分量的数组。int
getDataElement(float[] normComponents, int normOffset)
给出一个归一化的颜色/ alpha分量数组,返回int
中ColorModel
表示的像素值。int
getDataElement(int[] components, int offset)
返回一个像这个ColorModel
的int表示的像素值,给出了一个非标准化颜色/ alpha分量的数组。Object
getDataElements(float[] normComponents, int normOffset, Object obj)
给定一个归一化颜色/ alpha分量的数组,返回这个ColorModel
的一个像素的数据元素数组表示。Object
getDataElements(int[] components, int offset, Object obj)
给出这个ColorModel
的一个像素的数据元素数组表示,给出了一个非标准化颜色/ alpha分量的数组。Object
getDataElements(int rgb, Object pixel)
返回此ColorModel
中的像素的数据元素数组表示,给出了默认RGB颜色模型中的整数像素表示。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; 假如不是的话。boolean
isCompatibleSampleModel(SampleModel sm)
检查指定的SampleModel
是否与此ColorModel
兼容。-
Methods inherited from class java.awt.image.ColorModel
finalize, getColorSpace, getComponentSize, getComponentSize, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, hasAlpha, isAlphaPremultiplied, toString
-
-
-
-
构造方法详细信息
-
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
。 如果不为空,则bits
数组指定每个颜色和alpha分量的有效位数,如果像素值中没有alpha信息,则其长度应至少为ColorSpace
的组件数,或者如果有阿尔法信息。 当transferType
是DataBuffer.TYPE_SHORT
,DataBuffer.TYPE_FLOAT
,或DataBuffer.TYPE_DOUBLE
的bits
数组参数被忽略。hasAlpha
指示是否存在α信息。 如果hasAlpha
为真,则布尔值isAlphaPremultiplied
指定如何在像素值中解释颜色和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
- 如果为真,则为预isAlphaPremultiplied
。 -
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,66,32或64。 颜色分量的数量将是ColorSpace
中组件的ColorSpace
。 如果hasAlpha
是true
将会有一个alpha组件。 如果hasAlpha
为真,则布尔值isAlphaPremultiplied
指定如何在像素值中解释颜色和alpha样本。 如果布尔值为真,则假定颜色样本已被乘以α样本。transparency
指定了此颜色模型可以表示哪些Alpha值。 可接受transparency
值是OPAQUE
,BITMASK
或TRANSLUCENT
。transferType
是用于表示像素值的原始数组的类型。- 参数
-
colorSpace
- 与此颜色模型相关联的ColorSpace
。 -
hasAlpha
- 如果为true,此颜色模型支持alpha。 -
isAlphaPremultiplied
- 如果为真,isAlphaPremultiplied
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)
返回此ColorModel
中的像素的数据元素数组表示,给出了默认RGB颜色模型中的整数像素表示。 然后可以将该数组传递给WritableRaster
对象的setDataElements
方法。 如果pixel
参数为空,则分配一个新数组。 由于ComponentColorModel
可以被子类化,子类继承了此方法的实现,如果它们不覆盖它,则如果使用不支持的transferType
,则它们会抛出异常。- 重写:
-
getDataElements
在ColorModel
- 参数
-
rgb
- RGB颜色模型中像素的整数表示 -
pixel
- 指定的像素 - 结果
-
这个
ColorModel
中的像素的数据元素数组表示。 - 异常
-
ClassCastException
- 如果pixel
不为空并且不是类型为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
的组件值不方便地以非规范化形式表示,则会抛出IllegalArgumentException异常。 颜色/ alpha分量存储中components
数组以offset
(即使该阵列由这种方法分配的)。- 重写:
-
getComponents
在ColorModel
- 参数
-
pixel
- 指定为整数的像素值。 -
components
- 一个整数数组,用于存储非标准化颜色/ alpha分量。 如果components
数组为空,则会分配一个新数组。 -
offset
- 一个偏移到components
数组。 - 结果
- 组件数组。
- 异常
-
IllegalArgumentException
- 如果这个ColorModel
有多个组件。 -
IllegalArgumentException
- 如果这个ColorModel
不支持非规范化形式 -
ArrayIndexOutOfBoundsException
- 如果components
数组不为空,并且不够大以容纳所有颜色和alpha分量(从偏移开始)。
-
getComponents
public int[] getComponents(Object pixel, int[] components, int offset)
在这个ColorModel
给出了一个像素的非规范化颜色/ alpha分量的数组。 像素值由作为对象引用传入的数据元素transferType
的数组指定。 如果此ColorModel
的组件值不方便地以非规范化形式表示,则会抛出IllegalArgumentException异常。 颜色/ alpha分量存储中components
数组以offset
(即使该阵列由这种方法分配的)。 由于ComponentColorModel
可以被子类化,子类继承了此方法的实现,并且如果它们不覆盖它,那么如果使用不支持的方法,则此方法可能会引发异常transferType
。- 重写:
-
getComponents
在ColorModel
- 参数
-
pixel
- 由transferType
类型的数据元素数组指定的像素值。 -
components
- 用于存储非标准化颜色/ alpha分量的整数数组。 如果components
数组为空,则会分配一个新数组。 -
offset
- 一个偏移到components
数组。 - 结果
-
components
阵列。 - 异常
-
IllegalArgumentException
- 如果这个ComponentColorModel
不支持非规范化形式 -
UnsupportedOperationException
-在某些情况下,当且仅当该移交类型ComponentColorModel
不是以下传输类型之一:DataBuffer.TYPE_BYTE
,DataBuffer.TYPE_USHORT
,或DataBuffer.TYPE_INT
。 -
ClassCastException
- 如果pixel
不是类型为transferType
的原始数组。 -
IllegalArgumentException
- 如果components
数组不为空,并且不够大,不足以容纳所有颜色和alpha分量(从偏移开始),或者如果pixel
不够大,不能持有该ColorModel的像素值。
-
getUnnormalizedComponents
public int[] getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
给定一个归一化的组件数组,以非规范化形式返回所有颜色/ alpha分量的数组。 非正则化分量是0和2 n -1之间的无符号积分值,其中n是特定分量的位数。 正规化成分是每分量最小和最大由指定之间的浮点值ColorSpace
对象此ColorModel
。 如果这个ColorModel
颜色分量值不方便地以非规范化形式表示,IllegalArgumentException
将抛出一个IllegalArgumentException
。 如果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
不为空,则它必须是transferType
类型的原始数组。 一个ArrayIndexOutOfBoundsException
如果抛出obj
不够大,不能保存这个像素值ColorModel
。 由于ComponentColorModel
可以被子类化,子类继承了此方法的实现,如果它们不覆盖它,那么如果它们使用不支持的transferType
它们将抛出异常。 - 结果
-
这个
ColorModel
的一个像素的数据元素数组表示。 - 异常
-
IllegalArgumentException
- 如果组件数组不够大以容纳所有颜色和alpha组件(从偏移开始)。 -
ClassCastException
- 如果obj
不为空并且不是类型为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)
返回表示为一个像素值int
在此ColorModel
,给定的归一化的颜色/ alpha分量的阵列。 这个方法会抛出一个IllegalArgumentException
如果这个ColorModel
像素值不方便地表示为一个int
。 一个ArrayIndexOutOfBoundsException
,如果被抛出normComponents
阵列是没有大到足以容纳所有的颜色和alpha分量(开始于normOffset
)。- 重写:
-
getDataElement
在ColorModel
- 参数
-
normComponents
- 归一化颜色和alpha分量的数组 -
normOffset
- 索引到normComponents
开始检索颜色和alpha组件 - 结果
-
这个
int
像素值在这个ColorModel
对应的指定组件。 - 异常
-
IllegalArgumentException
- 如果这个ColorModel
像素值不方便地表示为一个int
-
ArrayIndexOutOfBoundsException
- 如果normComponents
阵列不够大,不能容纳所有颜色和alpha组件,从normOffset
开始 - 从以下版本开始:
- 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
- 索引到normComponents
,开始检索颜色和alpha组件 -
obj
- 用于保存返回像素的原始数据数组 - 结果
-
一个
Object
,它是像素的原始数据阵列表示 - 异常
-
ClassCastException
-如果obj
不是类型的基本数组transferType
-
ArrayIndexOutOfBoundsException
- 如果obj
不够大以容纳ColorModel
的像素值,或normComponents
阵列不够大,不足以容纳所有颜色和alpha分量从normOffset
开始 - 从以下版本开始:
- 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类型的数据元素数组指定。 如果像素不是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
不够大,不能容纳所有颜色和alpha组件,从normOffset
开始 -
ArrayIndexOutOfBoundsException
- 如果pixel
不够大,不能容纳ColorModel
的像素值。 - 从以下版本开始:
- 1.4
-
coerceData
public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
强制光栅数据与isAlphaPremultiplied
变量中指定的状态相匹配,假设目前ColorModel
正确描述了数据。 它可以将颜色光栅数据乘以或除以alpha,如果数据处于正确状态,则不执行任何操作。 如果需要强制数据,则该方法还会返回ColorModel
一个实例,ColorModel
适当地设置了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; 假如不是的话。- 重写:
-
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
的高度。 - 结果
-
A
WritableRaster
与此兼容ColorModel
。 - 另请参见:
-
WritableRaster
,SampleModel
-
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
创建一个具有指定宽度和高度的SampleModel
,具有与此ColorModel
兼容的数据布局。- 重写:
-
createCompatibleSampleModel
在ColorModel
- 参数
-
w
- 您要创建的SampleModel
的宽度。 -
h
- 要创建的SampleModel
的高度。 - 结果
-
A
SampleModel
与此兼容ColorModel
。 - 另请参见:
-
SampleModel
-
isCompatibleSampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
检查指定的SampleModel
是否与此ColorModel
兼容。- 重写:
-
isCompatibleSampleModel
在ColorModel
- 参数
-
sm
-SampleModel
测试兼容性。 - 结果
-
true
如果SampleModel
与此兼容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
。 - 结果
-
A
WritableRaster
包含图像的Alpha通道。
-
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)
-
-