|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.image.ColorModel java.awt.image.ComponentColorModel
public class ComponentColorModel
使用像素值将颜色和 alpha 信息表示为独立样本的 ColorModel
类,该类以独立的数据元素存储每个样本。此类可以与任意 ColorSpace
一起使用。像素值中的颜色样本数必须与 ColorSpace
中的颜色分量数相同。可以有单个 alpha 样本。
对于那些使用 transferType
类型的基本数组像素表示形式的方法,数组的长度与颜色和 alpha 样本数相同。颜色样本存储在后跟 alpha 样本(如果存在)的数组的前面。颜色样本的顺序由 ColorSpace
指定。通常,此顺序反映颜色空间类型的名称。例如,对于 TYPE_RGB
,索引 0 对应于红色,索引 1 对应于绿色,索引 2 对应于蓝色。
出于显示或处理目的而执行的像素值到颜色/alpha 分量的转换是基于从样本到分量的一一对应关系进行的。由实例表示的像素样本值可以是有符号的或无符号的,也可以是整型或者 float 或 double 类型(有关细节请参见以下内容),具体取决于用来创建 ComponentColorModel
实例的传输类型。从样本值到标准化颜色/alpha 分量的转换必须遵循一定的规则。对于 float 和 double 样本,转换为一种标识,即标准化分量值等于相应的样本值。对于整数样本,转换应该只是简单缩放和偏移,其中每个分量的缩放和偏移常量可以有所不同。应用缩放和偏移常量的结果是形成一组颜色/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
的 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
的实例具有被视为有符号的 short、float 或 double 值的像素样本值。此类实例不支持非标准化的颜色/alpha 分量表示形式,因此将此类表示形式用作参数在这些实例的其中之一上调用任何方法都将抛出 IllegalArgumentException
。此类实例的标准化分量的取值范围取决于传输类型,如下所示:对于 float 样本,则为 float 数据类型的完整范围;对于 double 样本,则为 float 数据类型(通过将 double 强制转换为 float 得到)的完整范围;对于 short 样本,大致为 -maxVal 到 +maxVal,其中 maxVal 为 ColorSpace
的每分量最大值(-32767 映射到 -maxVal,0 映射到 0.0,32767 映射到 +maxVal)。通过重写 getNormalizedComponents(Object, float[], int)
方法,子类可以重写 short 样本值到标准化分量值的缩放。对于 float 和 double 样本,标准化分量值被视为等于相应的样本值,子类不应试图添加这些传输类型的任何非标识缩放。
用传输类型 DataBuffer.TYPE_SHORT
、DataBuffer.TYPE_FLOAT
和 DataBuffer.TYPE_DOUBLE
创建的 ComponentColorModel
的实例使用所有样本值的所有位。因此,使用 DataBuffer.TYPE_SHORT
时所有颜色/alpha 分量都有 16 位,使用 DataBuffer.TYPE_FLOAT
时都有 32,使用 DataBuffer.TYPE_DOUBLE
时都有 64 位。当构造方法的 ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int)
形式与这些传输类型之一一起使用时,位数组参数将被忽略。
可能将不能合理解释的颜色/alpha 样本值视为用于呈现的分量值。当子类化 ComponentColorModel
以重写无符号样本值到标准化颜色分量值的映射时,或当使用某一范围之外的有符号样本值时,此现象可能发生。(例如,将 alpha 分量指定为范围 0 到 32767(即标准化范围 0.0 到 1.0)之外的有符号 short 值可能导致不可预料的结果)。应用程序负责在呈现之前适当缩放像素数据,以使颜色分量落在 ColorSpace
(使用 ColorSpace
类的 getMinValue
和 getMaxValue
方法得到)的标准化范围内,并使 alpha 分量位于 0.0 和 1.0 之间。如果颜色或 alpha 分量值超出这些范围,则呈现结果是不确定的。
使用单个 int 像素表示形式的方法抛出 IllegalArgumentException
,除非 ComponentColorModel
的分量数为 1 且分量值无符号,即使用 DataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
或 DataBuffer.TYPE_INT
的传输类型的单个颜色分量,没有 alpha 分量。
ComponentColorModel
可以与 ComponentSampleModel
、BandedSampleModel
或 PixelInterleavedSampleModel
一起使用,以构造 BufferedImage
。
ColorModel
,
ColorSpace
,
ComponentSampleModel
,
BandedSampleModel
,
PixelInterleavedSampleModel
,
BufferedImage
字段摘要 |
---|
从类 java.awt.image.ColorModel 继承的字段 |
---|
pixel_bits, transferType |
从接口 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)
将此颜色模型与其他模型进行相等性比较。 |
int |
getAlpha(int pixel)
返回指定像素(缩放范围从 0 到 255)的 alpha 分量。 |
int |
getAlpha(Object inData)
返回指定像素(在 0 到 255 之间缩放)的 alpha 分量。 |
WritableRaster |
getAlphaRaster(WritableRaster raster)
返回表示某图像(从输入 Raster 提取)的 alpha 通道的 Raster 。 |
int |
getBlue(int pixel)
返回指定像素的蓝色分量,指定像素在默认的 RGB ColorSpace(即 sRGB)中缩放范围是 0 到 255。 |
int |
getBlue(Object inData)
返回指定像素的蓝颜色分量,指定像素在默认的 RGB ColorSpace (即 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)
在已给定非标准化颜色/alpha 分量的情况下,返回此 ColorModel 中像素的数据元素数组表示形式。 |
Object |
getDataElements(int rgb,
Object pixel)
在默认 RGB 颜色模型中给定整数像素的表示形式的情况下,返回此 ColorModel 中像素的数据元素数组的表示形式。 |
int |
getGreen(int pixel)
返回指定像素的绿色分量,指定像素在默认的 RGB ColorSpace(即 sRGB)中缩放范围是 0 到 255。 |
int |
getGreen(Object inData)
返回指定像素的绿色分量,指定像素在默认的 RGB ColorSpace (即 sRGB)中缩放范围是 0 到 255。 |
float[] |
getNormalizedComponents(int[] components,
int offset,
float[] normComponents,
int normOffset)
在给定标准化分量数组的情况下,返回以标准化形式存在的所有颜色/alpha 分量的数组。 |
float[] |
getNormalizedComponents(Object pixel,
float[] normComponents,
int normOffset)
返回已在 ColorModel 中给定了像素的标准化形式颜色/alpha 分量的数组。 |
int |
getRed(int pixel)
返回指定像素的红色分量,指定像素在默认的 RGB ColorSpace(即 sRGB)中缩放范围是 0 到 255。 |
int |
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 分量的数组。 |
boolean |
isCompatibleRaster(Raster raster)
如果 raster 与此 ColorModel 兼容,则返回 true;如果不兼容,则返回 false。 |
boolean |
isCompatibleSampleModel(SampleModel sm)
检查指定 SampleModel 是否与此 ColorModel 兼容。 |
从类 java.awt.image.ColorModel 继承的方法 |
---|
finalize, getColorSpace, getComponentSize, getComponentSize, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, hasAlpha, hashCode, isAlphaPremultiplied, toString |
从类 java.lang.Object 继承的方法 |
---|
clone, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
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
中分量数,如果存在 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
之一。ColorSpace
,
Transparency
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
之一。ColorSpace
,
Transparency
方法详细信息 |
---|
public int getRed(int pixel)
ColorModel
中的 getRed
pixel
- 要从中获取红色分量的像素。
IllegalArgumentException
- 如果此 ColorModel
中有一个以上的分量。
IllegalArgumentException
- 如果此 ColorModel
的分量值为有符号的。public int getGreen(int pixel)
ColorModel
中的 getGreen
pixel
- 要从中获取绿色分量的像素。
IllegalArgumentException
- 如果此 ColorModel
中有一个以上的分量。
IllegalArgumentException
- 如果此 ColorModel
的分量值为有符号的。public int getBlue(int pixel)
ColorModel
中的 getBlue
pixel
- 要从中获取蓝色分量的像素。
IllegalArgumentException
- 如果此 ColorModel
中有一个以上的分量。
IllegalArgumentException
- 如果此 ColorModel
的分量值为有符号的。public int getAlpha(int pixel)
ColorModel
中的 getAlpha
pixel
- 要从中获取 alpha 分量的像素。
IllegalArgumentException
- 如果此 ColorModel
中有一个以上的分量。
IllegalArgumentException
- 如果此 ColorModel
的分量值为有符号的。public int getRGB(int pixel)
ColorModel
中的 getRGB
pixel
- 要从中获取颜色/alpha 分量的像素。
IllegalArgumentException
- 如果此 ColorModel
中有一个以上的分量。
IllegalArgumentException
- 如果此 ColorModel
的分量值为有符号的。ColorModel.getRGBdefault()
public int getRed(Object inData)
pixel
值由作为对象引用而传入的类型 transferType
的数据元素的数组指定。返回的值为非预先乘得的值。如果与 alpha 预先相乘,此方法将在返回值(如果 alpha 值为 0,则红色值将为 0)之前将其除出来。因为 ComponentColorModel
可以子类化,所以子类可以继承此方法的实现,并且如果不重写此方法,则当它们使用不受支持的 transferType
时,将抛出异常。
ColorModel
中的 getRed
inData
- 要从中获取红色分量(由类型 transferType
的数据元素的数组指定)的像素。
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
。public int getGreen(Object inData)
ColorSpace
(即 sRGB)中缩放范围是 0 到 255。如有必要,可进行颜色转换。pixel
值由作为对象引用而传入的类型 transferType
的数据元素的数组指定。返回的值是一个非预先乘得的值。如果与 alpha 预先相乘,此方法将在返回值(如果 alpha 值为 0,则绿色值将为 0)之前将其除出来。因为 ComponentColorModel
可以子类化,所以子类可以继承此方法的实现,并且如果不重写此方法,则当它们使用不受支持的 transferType
时,将抛出异常。
ColorModel
中的 getGreen
inData
- 要从中获取绿色分量(由类型 transferType
的数据元素的数组指定)的像素。
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
。public int getBlue(Object inData)
ColorSpace
(即 sRGB)中缩放范围是 0 到 255。如有必要,可进行颜色转换。pixel
值由作为对象引用而传入的类型 transferType
的数据元素的数组指定。返回的值是一个非预先乘得的值。如果与 alpha 预先相乘,此方法将在返回值(如果 alpha 值为 0,则蓝色值将为 0)之前将其除出来。因为 ComponentColorModel
可以子类化,所以子类可以继承此方法的实现,并且如果不重写此方法,则当它们使用不受支持的 transferType
时,将抛出异常。
ColorModel
中的 getBlue
inData
- 要从中获取蓝色分量(由类型 transferType
的数据元素的数组指定)的像素。
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
。public int getAlpha(Object inData)
transferType
的数据元素的数组指定。因为 ComponentColorModel
可以子类化,所以子类可以继承此方法的实现,并且如果不重写此方法,则当它们使用不受支持的 transferType
时,将抛出异常。
ColorModel
中的 getAlpha
inData
- 要从中获取 alpha 分量(由类型 transferType
的数据元素的数组指定)的像素。
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
。public int getRGB(Object inData)
transferType
类型的数据元素数组指定。返回的值是非预乘格式。如果与 alpha 预先相乘,此方法会将其从颜色分量(如果 alpha 值为 0,则颜色值为 0)中除出来。因为 ComponentColorModel
可以子类化,所以子类可以继承此方法的实现,并且如果不重写此方法,则当它们使用不受支持的 transferType
时,将抛出异常。
ColorModel
中的 getRGB
inData
- 要从中获取颜色/alpha 分量(由类型 transferType
的数据元素的数组指定)的像素。
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()
public Object getDataElements(int rgb, Object pixel)
ColorModel
中像素的数据元素数组的表示形式。然后可以将此数组传递给 WritableRaster
对象的 setDataElements
方法。如果 pixel
参数为 null,则分配新数组。因为 ComponentColorModel
可以子类化,所以子类可以继承此方法的实现,并且如果不重写此方法,则当它们使用不受支持的 transferType
时,将抛出异常。
ColorModel
中的 getDataElements
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
。WritableRaster.setDataElements(int, int, java.lang.Object)
,
SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
public int[] getComponents(int pixel, int[] components, int offset)
ColorModel
中已给定像素的非标准化颜色/alpha 分量。如果此 ColorModel
的分量值不便于以非标准化形式表示,则返回 IllegalArgumentException。将颜色/alpha 分量存储在以 offset
开头的 components
数组中,即便此方法已分配了数组也是如此。
ColorModel
中的 getComponents
pixel
- 指定为整数的像素值。components
- 在其中存储非标准化颜色/alpha 分量的整数数组。如果 components
数组为 null,则分配新数组。offset
- components
数组的偏移量。
IllegalArgumentException
- 如果此 ColorModel
中有一个以上的分量。
IllegalArgumentException
- 如果此 ColorModel
不支持非标准化形式
ArrayIndexOutOfBoundsException
- 如果 components
数组不为 null 且不是特别大,不能保存所有颜色和 alpha 分量(以偏移量开头)。public int[] getComponents(Object pixel, int[] components, int offset)
ColorModel
中已给定像素的非标准化颜色/alpha 分量的数组。像素值由作为一个对象引用而传入的 transferType
类型的数据元素数组指定。如果此 ColorModel
的分量值不便于以非标准化形式表示,则返回 IllegalArgumentException。将颜色/alpha 分量存储在以 offset
开头的 components
数组中,即便此方法已分配了数组也是如此。因为 ComponentColorModel
可以子类化,所以子类可以继承此方法的实现,并且如果不重写此方法,则在其使用不受支持的 transferType
时此方法可能抛出异常。
ColorModel
中的 getComponents
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 的像素值。public int[] getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
ColorModel
的 ColorSpace
对象指定的每个分量的最小值和最大值之间。如果此 ColorModel
的颜色分量值不便于用非标准化形式表示,则抛出 IllegalArgumentException
。如果 components
数组为 null
,则分配一个新数组。components
数组将返回。将颜色/alpha 分量存储在以 offset
开头的 components
数组中,即便此方法已分配了数组也是如此。如果 components
数组不为 null
且不是特别大,不能以 offset
开头保存所有颜色和 alpha 分量,则抛出 ArrayIndexOutOfBoundsException
。如果 normComponents
数组不是特别大,不能保存以 normOffset
开头的所有颜色和 alpha 分量,则抛出 IllegalArgumentException
。
ColorModel
中的 getUnnormalizedComponents
normComponents
- 包含标准化分量的数组normOffset
- 开始检索标准化分量的 normComponents
数组的偏移量components
- 从 normComponents
检索分量的数组offset
- 在其处开始存储 normComponents
的 components
的索引
IllegalArgumentException
- 如果此 ComponentColorModel
不支持非标准化形式
IllegalArgumentException
- 如果 normComponents
的长度减去 normOffset
小于 numComponents
public float[] getNormalizedComponents(int[] components, int offset, float[] normComponents, int normOffset)
ColorModel
的 ColorSpace
对象指定的每个分量的最小值和最大值之间。如果此 ColorModel
的颜色分量值不便于用非标准化形式表示,则抛出 IllegalArgumentException
。如果 normComponents
数组为 null
,则分配一个新数组。normComponents
数组将返回。颜色/alpha 分量存储在以 normOffset
开头的 normComponents
数组中,即使此方法已分配了数组也如此。如果 normComponents
数组不为 null
,且不是特别大,不能保存所有颜色和 alpha 分量(以 normOffset
开头),则抛出 ArrayIndexOutOfBoundsException
。如果 components
数组不是特别大,不能保存以 offset
开头的所有颜色和 alpha 分量,则抛出 IllegalArgumentException
。
ColorModel
中的 getNormalizedComponents
components
- 包含非标准化分量的数组offset
- 开始检索非标准化分量的 components
数组的偏移量normComponents
- 收到标准化分量的数组normOffset
- 在其处开始存储标准化分量的 normComponents
的索引
IllegalArgumentException
- 如果此 ComponentColorModel
不支持非标准化形式public int getDataElement(int[] components, int offset)
ColorModel
中表示为 int 的像素值(已给定非标准化颜色/alpha 分量的数组)。
ColorModel
中的 getDataElement
components
- 非标准化颜色/alpha 分量的数组。offset
- components
数组的偏移量。
IllegalArgumentException
- 如果此 ColorModel
中有一个以上的分量。
IllegalArgumentException
- 如果此 ComponentColorModel
不支持非标准化形式public Object getDataElements(int[] components, int offset, Object obj)
ColorModel
中像素的数据元素数组表示形式。然后可以将此数组传递给 WritableRaster
对象的 setDataElements
方法。
ColorModel
中的 getDataElements
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
。WritableRaster.setDataElements(int, int, java.lang.Object)
,
SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
public int getDataElement(float[] normComponents, int normOffset)
int
类型表示在此 ColorModel
中的像素值。如果此 ColorModel
的像素值不便于用单个 int
,则此方法将抛出 IllegalArgumentException
。如果 normComponents
数组不是特别大,不能保存所有以 normOffset
开头的颜色和 alpha 分量,则抛出 ArrayIndexOutOfBoundsException
。
ColorModel
中的 getDataElement
normComponents
- 标准化颜色和 alpha 分量的数组normOffset
- 开始检索颜色和 alpha 分量的 normComponents
的索引
ColorModel
中对应于指定分量的 int
像素值。
IllegalArgumentException
- 如果此 ColorModel
的像素值不便于用单个 int
表示
ArrayIndexOutOfBoundsException
- 如果 normComponents
数组不是特别大,不能保存以 normOffset
开头的所有颜色和 alpha 分量public Object getDataElements(float[] normComponents, int normOffset, Object obj)
ColorModel
中像素的数据元素数组表示形式。然后可以将此数组传递给 WritableRaster
对象的 setDataElements
方法。如果 normComponents
数组不是特别大,不能保存所有以 normOffset
开头的颜色和 alpha 分量,则抛出 ArrayIndexOutOfBoundsException
。如果 obj
变量为 null
,则分配一个新数组。如果 obj
不为 null
,则它必须为类型 transferType 的基本数组;否则将抛出 ClassCastException
。如果 obj
不是特别大,不能保存此 ColorModel
的像素值,则抛出 ArrayIndexOutOfBoundsException
。
ColorModel
中的 getDataElements
normComponents
- 标准化颜色和 alpha 分量的数组normOffset
- 开始检索颜色和 alpha 分量的 normComponents
的索引obj
- 保存返回的像素的基本数据数组
Object
ClassCastException
- 如果 obj
不为类型 transferType
的基本数组
ArrayIndexOutOfBoundsException
- 如果 obj
不是特别大,不能保存此 ColorModel
的像素值,或者 normComponents
数组不是特别大,不能保存以 normOffset
开头的所有颜色和 alpha 分量WritableRaster.setDataElements(int, int, java.lang.Object)
,
SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
public float[] getNormalizedComponents(Object pixel, float[] normComponents, int normOffset)
ColorModel
中给定了像素的标准化形式颜色/alpha 分量的数组。像素值由作为对象引用传入的类型 transferType 的数据元素的数组指定。如果像素不为类型 transferType 的基本数组,则抛出 ClassCastException
。如果 pixel
不是特别大,不能保存此 ColorModel
的像素值,则抛出 ArrayIndexOutOfBoundsException
。标准化分量为 float 值,这些值介于此 ColorModel
的 ColorSpace
对象指定的每个分量的最小值和最大值之间。如果 normComponents
数组为 null
,则分配一个新数组。normComponents
数组将返回。颜色/alpha 分量存储在以 normOffset
开头的 normComponents
数组中,即使此方法已分配了数组也如此。如果 normComponents
数组不为 null
,且不是特别大,不能保存所有颜色和 alpha 分量(以 normOffset
开头),则抛出 ArrayIndexOutOfBoundsException
。
如果某子类旨在以非默认方式将像素样本值转换为颜色分量值,则该子类必须重写此方法。此类实现的默认转换在类的注释中描述。实现非默认转换的任何子类都必须遵循对此处定义的允许转换的限制。
ColorModel
中的 getNormalizedComponents
pixel
- 指定像素normComponents
- 检索标准化分量的数组normOffset
- 在其处开始存储标准化分量的 normComponents
数组的偏移量
ClassCastException
- 如果 pixel
不为类型 transferType 的基本数组
ArrayIndexOutOfBoundsException
- 如果 normComponents
不是特别大,不能保存以 normOffset
开头的所有颜色和 alpha 分量
ArrayIndexOutOfBoundsException
- 如果 pixel
不是特别大,不能保存此 ColorModel
的像素值。public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
isAlphaPremultiplied
变量中指定的状态匹配,假定当前该数据已由此 ColorModel
正确描述。可以将颜色 raster 数据乘以或除以 alpha,如果该数据处于正确状态,则不执行任何操作。如果需要对该数据强制匹配,则此方法还将相应地返回一个带有 isAlphaPremultiplied
标志集的 ColorModel
的实例。因为 ColorModel
可以子类化,所以子类可以继承此方法的实现,并且如果不重写此方法,则当它们使用不受支持的 transferType
时,将抛出异常。
ColorModel
中的 coerceData
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
。public boolean isCompatibleRaster(Raster raster)
raster
与此 ColorModel
兼容,则返回 true;如果不兼容,则返回 false。
ColorModel
中的 isCompatibleRaster
raster
- 用于测试兼容性的 Raster
。
raster
与此 ColorModel
兼容,则返回 true
;如果不兼容,则返回 false
。public WritableRaster createCompatibleWritableRaster(int w, int h)
WritableRaster
,具有与此 ColorModel
兼容的数据布局 (SampleModel
)。
ColorModel
中的 createCompatibleWritableRaster
w
- 要创建的 WritableRaster
的宽度。h
- 要创建的 WritableRaster
的高度。
ColorModel
兼容的 WritableRaster
。WritableRaster
,
SampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel
,具有与此 ColorModel
兼容的数据布局。
ColorModel
中的 createCompatibleSampleModel
w
- 要创建的 SampleModel
的宽度。h
- 要创建的 SampleModel
的高度。
ColorModel
兼容的 SampleModel
。SampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel
是否与此 ColorModel
兼容。
ColorModel
中的 isCompatibleSampleModel
sm
- 用于测试兼容性的 SampleModel
。
SampleModel
与此 ColorModel
兼容,则返回 true
;如果不兼容,则返回 false
。SampleModel
public WritableRaster getAlphaRaster(WritableRaster raster)
Raster
提取)的 alpha 通道的 Raster
。此方法假定与此 ColorModel
关联的 Raster
对象将 alpha band(如果有)存储为图像数据的最后一个 band。如果不存在与此 ColorModel
相关的独立空间 alpha 通道,则返回 null。此方法创建一个新的 Raster
,但是共享原来的数据数组。
ColorModel
中的 getAlphaRaster
raster
- 从中提取 alpha 通道的 WritableRaster
。
WritableRaster
。public boolean equals(Object obj)
ColorModel
中的 equals
obj
- 要与此颜色模型比较的对象。
true
;如果不相等,则返回 false
。Object.hashCode()
,
Hashtable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。