public abstract class ColorModel extends Object implements Transparency
ColorModel抽象类封装了将像素值转换为颜色分量(例如,红色,绿色和蓝色)和alpha分量的方法。
为了将图像呈现到屏幕,打印机或其他图像,像素值必须转换为颜色和alpha组件。
作为这个类的方法的参数或返回值,像素被表示为32位int或者作为原始类型的数组。
的数目,顺序,以及一个颜色分量的解释ColorModel由其指定的ColorSpace 。
与不包括alpha信息的像素数据ColorModel使用的ColorModel将所有像素视为不透明,这是alpha值为1.0。
这个ColorModel类支持像素值的两个表示。 像素值可以是单个32位int或一个原始数组。 Java(tm)Platform 1.0和1.1 API将像素表示为单个byte或单个int值。 为了ColorModel类的目的,像素值参数以int形式传递。 Java(tm)2 Platform API引入了用于表示图像的其他类。 使用BufferedImage或RenderedImage对象,基于Raster和SampleModel类,像素值可能无法方便地表示为单个int。 因此, ColorModel现在具有接受以原始类型的数组表示的像素值的方法。 特定ColorModel对象使用的原始类型称为其传输类型。
ColorModel与图像一起使用的对象,像素值不方便地表示为单个int,当调用采用单个int像素参数的方法时,抛出IllegalArgumentException 。 ColorModel的ColorModel必须指定发生这种情况的条件。 DirectColorModel或IndexColorModel对象不会发生这种情况。
目前,Java 2D(tm)API支持的传输类型是DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT,DataBuffer.TYPE_INT,DataBuffer.TYPE_SHORT,DataBuffer.TYPE_FLOAT和DataBuffer.TYPE_DOUBLE。 当使用ColorModel和基于前三种类型的图像时,大多数渲染操作将执行得更快。 另外,对于ColorModel和基于后三种类型的图像,不支持某些图像过滤操作。 特定ColorModel对象的传输类型在创建对象时被明确地或默认地被指定。 ColorModel的所有子ColorModel必须指定可能的传输类型是什么,以及如何确定表示像素的基元数组中的元素数量。
对于BufferedImages ,其Raster和Raster对象的转移类型为SampleModel (可从这些类的getTransferType方法获得)必须与ColorModel匹配。 表示Raster和SampleModel (可从这些类别的getNumDataElements方法获得)的阵列中的元素数量必须与ColorModel相匹配。
用于将像素值转换为颜色和α分量的算法因子类而异。 例如,从BufferedImage对象的Raster和颜色/α分量的Raster获得的样本之间SampleModel是一一对应的。 即使存在这样的对应关系,样本中的比特数也不一定与相应颜色/α分量中的比特数相同。 每个子类必须指定如何从像素值到颜色/ alpha分量的转换。
ColorModel类中的方法使用颜色和α分量的两个不同表示 - 标准化形式和非规范化形式。 在标准化形式中,每个组件是一些最小值和最大值之间的float值。 对于alpha组件,最小值为0.0,最大值为1.0。 对于颜色分量,可以从ColorSpace对象获取每个组件的最小值和最大值。 这些值通常为0.0和1.0(例如,默认sRGB颜色空间范围为0.0到1.0的标准化组件值),但某些颜色空间具有不同上限和下限的组件值。 这些限制可以使用ColorSpace类的getMinValue和getMaxValue方法获得。 归一化颜色分量值不是预乘。 所有ColorModels必须支持标准化形式。
在非归一化形式中,每个分量是0和2 n -1之间的无符号积分值,其中n是特定分量的有效位数。 如果特定ColorModel像素值表示由α样本预购的颜色样本,则也会预取未归一化的颜色分量值。 非规范化形式仅用于ColorModel的ColorModel ,其ColorSpace对于所有组件的最小组件值为0.0,对于所有组件的最大值为1.0。 颜色和α分量的非标准化形式可以为ColorModels的方便ColorModels ,其标准化分量值都在0.0和1.0之间。 在这种情况下,积分值0映射到0.0,值2 n -1映射到1.0。 在其他情况下,例如当归一化分量值可以是负数或正数时,非正规化形式是不方便的。 当调用涉及非规范化参数的方法时,这样的ColorModel对象会抛出一个IllegalArgumentException 。 ColorModel的ColorModel必须指定出现这种情况的条件。
IndexColorModel , ComponentColorModel , PackedColorModel , DirectColorModel , Image , BufferedImage , RenderedImage , ColorSpace , SampleModel , Raster , DataBuffer
| Modifier and Type | Field and Description |
|---|---|
protected int |
pixel_bits
像素中的总位数。
|
protected int |
transferType
用于表示像素值的数组的数据类型。
|
BITMASK, OPAQUE, TRANSLUCENT| Modifier | Constructor and Description |
|---|---|
|
ColorModel(int bits)
构造一个
ColorModel ,它将指定位数的像素转换为彩色/ alpha分量。
|
protected |
ColorModel(int pixel_bits, int[] bits, ColorSpace cspace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
构造一个
ColorModel ,将像素值转换为颜色/ alpha组件。
|
| Modifier and Type | Method and Description |
|---|---|
ColorModel |
coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
强制栅格数据与
isAlphaPremultiplied变量中指定的状态相匹配,假设数据当前由此ColorModel正确
ColorModel 。
|
SampleModel |
createCompatibleSampleModel(int w, int h)
创建
SampleModel具有指定的宽度和高度,具有与此兼容的数据布局
ColorModel 。
|
WritableRaster |
createCompatibleWritableRaster(int w, int h)
创建
WritableRaster具有指定的宽度和高度,其具有的数据布局(
SampleModel )与此兼容
ColorModel 。
|
boolean |
equals(Object obj)
测试指定的
Object是一个实例
ColorModel ,以及它是否该
ColorModel 。
|
void |
finalize()
一旦这个
ColorModel不再被引用,就会处理与此
ColorModel的系统资源。
|
abstract int |
getAlpha(int pixel)
返回指定像素的alpha分量,从0到255。
|
int |
getAlpha(Object inData)
返回指定像素的alpha分量,从0到255。
|
WritableRaster |
getAlphaRaster(WritableRaster raster)
返回
Raster表示图像的alpha通道,从输入中提取
Raster ,提供此的像素值
ColorModel表示颜色和alpha信息为独立的空间频带(例如
|
abstract int |
getBlue(int pixel)
返回指定像素的蓝色分量,在默认RGB ColorSpace(sRGB)中从0到255。
|
int |
getBlue(Object inData)
返回指定像素的蓝色分量,在默认RGB
ColorSpace (sRGB)中从0到255。
|
ColorSpace |
getColorSpace()
返回
ColorSpace与此相关
ColorModel 。
|
int[] |
getComponents(int pixel, int[] components, int offset)
在此
ColorModel给出一个像素的非归一化颜色/ alpha分量的数组。
|
int[] |
getComponents(Object pixel, int[] components, int offset)
在此
ColorModel给出一个像素的非归一化颜色/ alpha分量的数组。
|
int[] |
getComponentSize()
返回每个颜色/ alpha分量的位数数组。
|
int |
getComponentSize(int componentIdx)
返回指定颜色/ alpha分量的位数。
|
int |
getDataElement(float[] normComponents, int normOffset)
给定一个归一化的颜色/ alpha组件数组,返回在这个
ColorModel中表示为
int的像素值。
|
int |
getDataElement(int[] components, int offset)
返回一个像
int在这个
ColorModel中表示的像素值,给出了一组非标准化的颜色/ 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颜色模型中的整数像素表示。
|
abstract 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分量的
ColorModel 。
|
int |
getNumColorComponents()
返回此
ColorModel中的颜色成
ColorModel 。
|
int |
getNumComponents()
返回组件的数量,包括α,在此
ColorModel 。
|
int |
getPixelSize()
返回此
ColorModel每像素的
ColorModel 。
|
abstract 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分量。
|
static ColorModel |
getRGBdefault()
返回一个
DirectColorModel ,它描述了AWT图像接口中许多方法中使用的整数RGB值的默认格式,以方便程序员。
|
int |
getTransferType()
返回此
ColorModel的传输类型。
|
int |
getTransparency()
返回透明度。
|
int[] |
getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
给定一个归一化的组件数组,以非规范化形式返回所有颜色/ alpha分量的数组。
|
boolean |
hasAlpha()
返回此
ColorModel是否支持alpha。
|
int |
hashCode()
返回此ColorModel的哈希码。
|
boolean |
isAlphaPremultiplied()
返回alpha 8是否被这个
ColorModel要翻译的像素值
ColorModel 。
|
boolean |
isCompatibleRaster(Raster raster)
true如果
raster是兼容这个
ColorModel和
false如果不是。
|
boolean |
isCompatibleSampleModel(SampleModel sm)
检查
SampleModel是否与此
ColorModel 。
|
String |
toString()
返回
String这个内容表示
ColorModel对象。
|
protected int pixel_bits
protected int transferType
public ColorModel(int bits)
ColorModel ,它将指定位数的像素转换为颜色/ alpha组件。
颜色空间是默认的RGB ColorSpace ,这是sRGB。
假设像素值包括alpha信息。
如果在像素值中将颜色和α信息表示为单独的空间频带,则假设色带不与alpha值预乘。
透明度类型是java.awt.Transparency.TRANSLUCENT。
传输类型将是可容纳单个像素的DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT或DataBuffer.TYPE_INT中最小的数据(如果位大于32,则为DataBuffer.TYPE_UNDEFINED)。
由于该构造函数没有关于每个颜色和alpha组件的位数的信息,所以调用此构造函数的任何子类都应该覆盖任何需要此信息的方法。
bits - 像素的位数
IllegalArgumentException - 如果
bits中的位数小于1
protected ColorModel(int pixel_bits,
int[] bits,
ColorSpace cspace,
boolean hasAlpha,
boolean isAlphaPremultiplied,
int transparency,
int transferType)
ColorModel ,将像素值转换为颜色/ alpha组件。
颜色组件将在指定的ColorSpace 。
pixel_bits是像素值中的位数。
位数组指定每个颜色和alpha分量的有效位数。
它的长度应该是ColorSpace中的ColorSpace的数量,如果像素值中没有alpha信息,或者如果有alpha信息,则该数量多于此数字。
hasAlpha表示是否存在α信息。
boolean isAlphaPremultiplied指定如何解释将颜色和阿尔法信息表示为单独的空间带的像素值。
如果boolean是true ,则假设颜色样本已经乘以α样本。
transparency指定此颜色模型可以表示哪些alpha值。
传输类型是用于表示像素值的原始数组的类型。
请注意,位数组包含从像素值转换后每个颜色/ alpha分量的有效位数。
例如,对于一个IndexColorModel与pixel_bits等于16,这些比特阵列可能具有与设置为8的每个元素四个元件。
pixel_bits - 像素值中的位数
bits - 指定每个颜色和alpha分量的有效位数的数组
cspace - 指定的
ColorSpace
hasAlpha - true如果存在alpha信息;
false否则
isAlphaPremultiplied - true如果假设颜色样本被alpha样本预乘,
false否则
transparency - 这个颜色模型可以表示什么alpha值
transferType - 用于表示像素值的数组的类型
IllegalArgumentException - 如果位数组的长度小于此ColorModel中的颜色或alpha分量的
ColorModel ,或者透明度不是有效值。
IllegalArgumentException -如果在比特数的总和
bits小于1,或者如果在任何元件的
bits小于0。
Transparency
public static ColorModel getRGBdefault()
DirectColorModel ,它描述了AWT图像接口中许多方法中使用的整数RGB值的默认格式,以方便程序员。
色彩空间是默认的ColorSpace ,sRGB。
RGB值的格式是一个整数,8位,每个alpha,红色,绿色和蓝色颜色分量从最高有效字节到最低有效字节排序,如:0xAARRGGBB。
颜色分量不被alpha分量预乘。
此格式不一定代表特定设备或所有图像的本机或最高效ColorModel 。
它仅用作常见的颜色模型格式。
DirectColorModel对象。
public final boolean hasAlpha()
ColorModel是否支持alpha。
true如果alpha支持在这ColorModel ;
false否则。
public final boolean isAlphaPremultiplied()
ColorModel要翻译的像素值中预先使用ColorModel 。
如果布尔值为true ,则该ColorModel用于解释其中颜色和阿尔法信息被表示为单独的空间带的像素值,并且假设颜色样本已被乘以α样本。
true如果alpha值中的像素值预乘由该翻译ColorModel ;
false另外。
public final int getTransferType()
ColorModel的传输类型。
传输类型是用于将像素值表示为数组的原始数组的类型。
public int getPixelSize()
ColorModel每像素的
ColorModel 。
public int getComponentSize(int componentIdx)
ColorSpace 。
通常,此顺序反映了颜色空间类型的名称。
例如,对于TYPE_RGB,索引0对应于红色,索引1为绿色,索引2为蓝色。
如果这个ColorModel支持alpha,则alpha组件对应于最后一个颜色分量之后的索引。
componentIdx - 颜色/ alpha分量的索引
ArrayIndexOutOfBoundsException - 如果
componentIdx大于
componentIdx数或小于零
NullPointerException - 如果位数为
null
public int[] getComponentSize()
ColorSpace ,其次是阿尔法分量,如果存在的话。
public int getTransparency()
getTransparency在接口
Transparency
ColorModel 。
Transparency.OPAQUE ,
Transparency.BITMASK ,
Transparency.TRANSLUCENT
public int getNumComponents()
ColorModel 。
这等于颜色分量的数量,可选加一个,如果有一个alpha分量。
ColorModel
public int getNumColorComponents()
ColorModel中的颜色成ColorModel 。
这是由ColorSpace.getNumComponents()返回的组件数 。
ColorModel 。
ColorSpace.getNumComponents()
public abstract int getRed(int pixel)
IllegalArgumentException如果这个像素值抛出ColorModel不便于表示为一个单个int。
返回的值不是预乘积值。
例如,如果alpha被预乘,则该方法在返回值之前将其分开。
如果alpha值为0,则红色值为0。
pixel - 指定像素
public abstract int getGreen(int pixel)
IllegalArgumentException如果这个像素值抛出ColorModel不便于表示为一个单个int。
返回的值是非预先乘以的值。
例如,如果alpha被预乘,则该方法在返回值之前将其分开。
如果alpha值为0,则绿色值为0。
pixel - 指定像素
public abstract int getBlue(int pixel)
IllegalArgumentException如果这个像素值抛出ColorModel不便于表示为一个单个int。
返回的值是非预先乘以的值,例如,如果该alpha被预乘,则该方法在返回该值之前将其除数。
如果alpha值为0,则蓝色值为0。
pixel - 指定的像素
public abstract int getAlpha(int pixel)
IllegalArgumentException如果这个像素值抛出ColorModel不便于表示为一个单个int。
pixel - 指定像素
public int getRGB(int pixel)
IllegalArgumentException抛出,如果这个像素值ColorModel不便于表示为一个单个int。
返回的值为非预先乘法格式。
例如,如果alpha被预乘,则该方法将其从颜色分量中分离出来。
如果alpha值为0,则颜色值为0。
pixel - 指定的像素
getRGBdefault()
public int getRed(Object inData)
ColorSpace (sRGB)中从0到255。
必要时进行颜色转换。
像素值由作为对象引用传入的transferType类型的数据元素数组指定。
返回的值是非预先乘以的值。
例如,如果alpha被预乘,则该方法在返回值之前将其分开。
如果alpha值为0,则红色值为0.如果inData不是transferType类型的原始数组,则会抛出ClassCastException 。
一个ArrayIndexOutOfBoundsException如果抛出inData是不是大到足以容纳这个像素值ColorModel 。
如果这transferType不支持,一个UnsupportedOperationException将被抛出。
由于ColorModel是抽象类,任何实例必须是子类的实例。
子类继承此方法的实现,并且如果不重写,如果子类使用此方法抛出异常transferType比其他DataBuffer.TYPE_BYTE , DataBuffer.TYPE_USHORT ,或DataBuffer.TYPE_INT 。
inData - 像素值数组
ClassCastException -如果
inData不是类型的基本数组
transferType
ArrayIndexOutOfBoundsException - 如果
inData不够大,不能持有这个
ColorModel的像素值
UnsupportedOperationException - 如果这个
tranferType不支持此
ColorModel
public int getGreen(Object inData)
ColorSpace (sRGB)中从0到255。
必要时进行颜色转换。
像素值由作为对象引用传入的transferType类型的数据元素数组指定。
返回的值将是非预倍增值。
例如,如果alpha被预乘,则该方法在返回值之前将其分开。
如果alpha值为0,则绿色值为0.如果inData不是transferType类型的原始数组,则会抛出ClassCastException 。
一个ArrayIndexOutOfBoundsException如果抛出inData是不是大到足以容纳这个像素值ColorModel 。
如果这transferType不支持,一个UnsupportedOperationException将被抛出。
由于ColorModel是一个抽象类,任何实例都必须是一个子类的实例。
子类继承此方法的实现,并且如果不重写,如果子类使用此方法抛出异常transferType比其他DataBuffer.TYPE_BYTE , DataBuffer.TYPE_USHORT ,或DataBuffer.TYPE_INT 。
inData - 像素值数组
ClassCastException -如果
inData不是类型的基本数组
transferType
ArrayIndexOutOfBoundsException - 如果
inData不够大,不能保持这个
ColorModel的像素值
UnsupportedOperationException - 如果这个
tranferType不支持此
ColorModel
public int getBlue(Object inData)
ColorSpace sRGB中从0到255。
必要时进行颜色转换。
像素值由作为对象引用传入的transferType类型的数据元素数组指定。
返回的值是非预先乘以的值。
例如,如果alpha被预乘,则该方法在返回值之前将其分开。
如果alpha值为0,则蓝色值将为0.如果inData不是transferType类型的原始数组,则会抛出ClassCastException 。
一个ArrayIndexOutOfBoundsException如果抛出inData是不是大到足以容纳这个像素值ColorModel 。
如果不支持此transferType ,将抛出一个UnsupportedOperationException 。
由于ColorModel是一个抽象类,任何实例都必须是一个子类的实例。
子类继承此方法的实现,并且如果不重写,如果子类使用此方法抛出异常transferType比其他DataBuffer.TYPE_BYTE , DataBuffer.TYPE_USHORT ,或DataBuffer.TYPE_INT 。
inData - 像素值数组
ClassCastException -如果
inData不是类型的基本数组
transferType
ArrayIndexOutOfBoundsException - 如果
inData不够大,不能持有这个
ColorModel的像素值
UnsupportedOperationException - 如果这个
tranferType不支持此
ColorModel
public int getAlpha(Object inData)
ClassCastException 。
一个ArrayIndexOutOfBoundsException如果抛出inData是不是大到足以容纳这个像素值ColorModel 。
如果不支持此transferType ,将抛出UnsupportedOperationException 。
由于ColorModel是一个抽象类,任何实例都必须是一个子类的实例。
子类继承此方法的实现,并且如果不重写,如果子类使用此方法抛出异常transferType比其他DataBuffer.TYPE_BYTE , DataBuffer.TYPE_USHORT ,或DataBuffer.TYPE_INT 。
inData - 指定像素
ClassCastException -如果
inData不是类型的基本数组
transferType
ArrayIndexOutOfBoundsException - 如果
inData不够大,不能保持这个
ColorModel的像素值
UnsupportedOperationException - 如果这个
tranferType不支持此
ColorModel
public int getRGB(Object inData)
ClassCastException 。
一个ArrayIndexOutOfBoundsException如果抛出inData是不是大到足以容纳这个像素值ColorModel 。
返回的值将是非预先乘法的格式,即如果alpha被预乘,则该方法将其除以颜色分量(如果alpha值为0,则颜色值将为0)。
inData - 指定像素
getRGBdefault()
public Object getDataElements(int rgb, Object pixel)
ColorModel给出在默认RGB颜色模型中的整数像素表示。
然后可以将该数组传递给WritableRaster对象的WritableRaster.setDataElements(int, int, java.lang.Object)方法。
如果像素变量为null ,则会null一个新数组。
如果pixel不是null ,它必须是类型的基本数组transferType ;
否则,抛出一个ClassCastException 。
一个ArrayIndexOutOfBoundsException如果抛出pixel是不是大到足以容纳这个像素值ColorModel 。
返回像素数组。
如果不支持此transferType ,将抛出UnsupportedOperationException 。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
子类必须重写此方法,因为该抽象类中的实现会抛出一个UnsupportedOperationException 。
rgb - 默认RGB颜色模型中的整数像素表示
pixel - 指定的像素
ColorModel 。
ClassCastException -如果
pixel不是类型的基本数组
transferType
ArrayIndexOutOfBoundsException - 如果
pixel不够大,不能保持这个
ColorModel的像素值
UnsupportedOperationException - 如果此方法不支持此
ColorModel
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分量的数组。
像素值指定为int 。
一个IllegalArgumentException如果此像素值将被抛出ColorModel不便于表示为一个单一int或如果此颜色分量值ColorModel不在非标准化形式表示的方便。
例如,该方法可用于检索DirectColorModel中特定像素值的DirectColorModel 。
如果组件数组为null ,则会null一个新数组。
将返回组件数组。
颜色/ alpha分量存储组件阵列,起始于offset (即使该阵列由这种方法分配的)。
一个ArrayIndexOutOfBoundsException如果components数组是不被抛出null并且不足够大以容纳所有的颜色和alpha分量(以偏移量开始)。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
子类必须重写这个方法,因为这个抽象类中的实现会抛出一个UnsupportedOperationException 。
pixel - 指定像素
components - 用于接收指定像素的颜色和alpha分量的数组
offset - 偏移到
components阵列,开始存储颜色和alpha组件
UnsupportedOperationException - 如果此方法不支持此
ColorModel
public int[] getComponents(Object pixel, int[] components, int offset)
ColorModel一个像素的非规范化颜色/ alpha分量的数组。
像素值由作为对象引用传入的transferType类型的数据元素数组指定。
如果pixel不是transferType类型的原始数组,则抛出一个ClassCastException 。
一个IllegalArgumentException如果这种颜色成分值会被抛出ColorModel不便于用非标准化形式表示。
一个ArrayIndexOutOfBoundsException如果抛出pixel是不是大到足以容纳这个像素值ColorModel 。
该方法可用于检索任何ColorModel特定像素值的ColorModel 。
如果组件数组为null ,则会null一个新数组。
将返回组件数组。
颜色/ alpha分量存储中components数组以offset (即使该阵列由这种方法分配的)。
一个ArrayIndexOutOfBoundsException如果components数组是不被抛出null并且不足够大以容纳所有的颜色和alpha分量(开始于offset )。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
子类必须重写这个方法,因为这个抽象类中的实现会抛出一个UnsupportedOperationException 。
pixel - 指定像素
components - 接收指定像素的颜色和alpha分量的数组
offset - 索引到
components数组中,开始存储指定像素的颜色和alpha分量
UnsupportedOperationException - 如果此方法不支持此
ColorModel
public int[] getUnnormalizedComponents(float[] normComponents,
int normOffset,
int[] components,
int offset)
ColorSpace对象此ColorModel 。
一个IllegalArgumentException如果这种颜色成分值会被抛出ColorModel不便于用非标准化形式表示。
如果components数组是null ,则会null一个新数组。
将返回components数组。
颜色/ alpha分量存储中components数组以offset (即使该阵列由这种方法分配的)。
一个ArrayIndexOutOfBoundsException如果被抛出components数组不null ,不足够大以容纳所有的颜色和alpha分量(开始于offset )。
IllegalArgumentException如果normComponents数组不够大,不能容纳所有的颜色和alpha组件,从normOffset开始就normOffset 。
normComponents - 包含归一化组件的数组
normOffset -
normComponents数组的偏移量,用于开始检索归一化组件
components - 从
normComponents接收组件的
normComponents
offset - 索引为
components ,开始存储normComponents标准化
normComponents
IllegalArgumentException -如果此组件值
ColorModel不便于用非标准化形式表示。
IllegalArgumentException - 如果
normComponents减去
normOffset的长度小于
numComponents
UnsupportedOperationException - 如果这个ColorModel的ColorModel叫做super(bits)构造函数,但没有覆盖这个方法。
见构造函数ColorModel(int) 。
public float[] getNormalizedComponents(int[] components,
int offset,
float[] normComponents,
int normOffset)
ColorSpace对象此ColorModel 。
一个IllegalArgumentException如果这种颜色成分值会被抛出ColorModel不便于用非标准化形式表示。
如果normComponents数组为null ,则会null一个新数组。
将返回normComponents数组。
颜色/ alpha分量存储中normComponents数组以normOffset (即使该阵列由这种方法分配的)。
一个ArrayIndexOutOfBoundsException如果被抛出normComponents数组不null ,不足够大以容纳所有的颜色和alpha分量(开始于normOffset )。
IllegalArgumentException如果components阵列不够大,不能保持从offset开始的所有颜色和alpha组件, offset 。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。 此抽象类中此方法的默认实现假定此类的组件值可以非规范化形式方便地表示。 因此,可能具有不支持非规范化形式的实例的子类必须覆盖此方法。
components - 包含非规范化组件的数组
offset -
components阵列的偏移量,用于开始检索非标准化的组件
normComponents - 接收归一化组件的数组
normOffset - 索引到
normComponents开始存储归一化组件
IllegalArgumentException -如果此组件值
ColorModel不便于用非标准化形式表示。
UnsupportedOperationException - 如果这个ColorModel的ColorModel称为super(bits)构造函数,但没有覆盖此方法。
见构造函数ColorModel(int) 。
UnsupportedOperationException - 如果此方法无法确定每个组件的位数
public int getDataElement(int[] components,
int offset)
int在此ColorModel ,给定非标准化颜色/ alpha分量的阵列。
此方法将引发IllegalArgumentException ;如果此组件值ColorModel不如便于表示单个int或如果此颜色分量值ColorModel不在非标准化形式表示的方便。
一个ArrayIndexOutOfBoundsException如果被抛出components阵列是没有大到足以容纳所有的颜色和alpha分量(开始于offset )。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
子类必须重写此方法,因为该抽象类中的实现会抛出一个UnsupportedOperationException 。
components - 非规范化颜色和alpha组件的数组
offset - 索引到
components开始检索颜色和alpha组件
int像素值在这
ColorModel对应的指定组件。
IllegalArgumentException - 如果此
ColorModel像素值不方便地表示为单个
int
IllegalArgumentException - 如果此
ColorModel组件值不方便地以非规范化形式表示
ArrayIndexOutOfBoundsException -如果
components阵列是没有大到足以容纳所有的颜色和alpha分量开始于
offset
UnsupportedOperationException - 如果此方法不支持此
ColorModel
public Object getDataElements(int[] components, int offset, Object obj)
ColorModel ,给定非标准化颜色/ alpha分量的阵列。
然后可以将该数组传递给WritableRaster对象的setDataElements方法。
此方法将抛出一个IllegalArgumentException如果这个颜色成分值ColorModel不便于用非标准化形式表示。
一个ArrayIndexOutOfBoundsException如果被抛出components阵列是没有大到足以容纳所有的颜色和alpha分量(开始于offset )。
如果obj变量为null , null一个新数组。
如果obj不是null ,它必须是一个类型为transferType的原始数组;
否则,会抛出一个ClassCastException 。
一个ArrayIndexOutOfBoundsException如果抛出obj是不是大到足以容纳这个像素值ColorModel 。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
子类必须重写这个方法,因为这个抽象类中的实现会抛出一个UnsupportedOperationException 。
components - 非规范化颜色和alpha组件的数组
offset - 索引到
components开始检索颜色和alpha组件
obj -
Object代表颜色和alpha组件的数组
Object代表一个颜色和alpha组件的数组。
ClassCastException -如果
obj不是类型的基本数组
transferType
ArrayIndexOutOfBoundsException -如果
obj是不足够大以保存此像素值
ColorModel或
components阵列是没有大到足以容纳所有的颜色和alpha分量开始于
offset
IllegalArgumentException - 如果此
ColorModel组件值不方便地以非规范化形式表示
UnsupportedOperationException - 如果此方法不支持此
ColorModel
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 ,给定的归一化的颜色/ alpha分量的阵列。
这个方法会抛出一个IllegalArgumentException如果这个ColorModel像素值不方便地表示为一个int 。
ArrayIndexOutOfBoundsException如果normComponents阵列不够大,不足以容纳所有颜色和alpha组件(从normOffset开始), normOffset 。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
此抽象类中此方法的默认实现首先将从规范化形式转换为非规范化形式,然后调用getDataElement(int[], int) 。
可能具有不支持非规范化形式的实例的子类必须覆盖此方法。
normComponents - 归一化颜色和alpha分量的数组
normOffset - 索引到
normComponents开始检索颜色和alpha组件
int像素值在这
ColorModel对应的指定组件。
IllegalArgumentException - 如果这个
ColorModel像素值不方便地表示为单个
int
ArrayIndexOutOfBoundsException -如果
normComponents阵列是没有大到足以容纳所有的颜色和alpha分量开始于
normOffset
public Object getDataElements(float[] normComponents, int normOffset, Object obj)
ColorModel中像素的数据元素数组表示。
然后可以将该数组传递给WritableRaster对象的setDataElements方法。
一个ArrayIndexOutOfBoundsException如果被抛出normComponents阵列是没有大到足以容纳所有的颜色和alpha分量(开始于normOffset )。
如果obj变量为null ,则会null一个新数组。
如果obj不是null ,它必须是一个类型为transferType的原始数组;
否则,抛出一个ClassCastException 。
一个ArrayIndexOutOfBoundsException如果抛出obj是不是大到足以容纳这个像素值ColorModel 。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
此抽象类中此方法的默认实现首先将规范化形式转换为非规范化形式,然后调用getDataElement(int[], int, Object) 。
可能具有不支持非规范化形式的实例的子类必须覆盖此方法。
normComponents - 归一化颜色和alpha分量的数组
normOffset - 索引到
normComponents开始检索颜色和alpha组件
obj - 用于保存返回像素的原始数据数组
Object ,它是像素的原始数据阵列表示
ClassCastException -如果
obj不是类型的基本数组
transferType
ArrayIndexOutOfBoundsException -如果
obj是不足够大以保存此像素值
ColorModel或
normComponents阵列是没有大到足以容纳所有的颜色和alpha分量开始于
normOffset
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分量的ColorModel 。
像素值由作为对象引用传入的transferType类型的数据元素数组指定。
如果像素不是transferType类型的原始数组,则抛出一个ClassCastException 。
一个ArrayIndexOutOfBoundsException如果抛出pixel是不是大到足以容纳这个像素值ColorModel 。
正规化成分是每分量最小和最大由指定之间的浮点值ColorSpace对象此ColorModel 。
如果normComponents数组为null ,则会null一个新数组。
将返回normComponents数组。
颜色/ alpha分量存储中normComponents数组以normOffset (即使该阵列由这种方法分配的)。
一个ArrayIndexOutOfBoundsException如果被抛出normComponents数组不null ,不足够大以容纳所有的颜色和alpha分量(开始于normOffset )。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
此抽象类中此方法的默认实现首先使用getComponents(Object, int[], int)非规范化形式的颜色和alpha getComponents(Object, int[], int) ,然后调用getNormalizedComponents(int[], int, float[], int) 。
可能具有不支持非规范化形式的实例的子类必须覆盖此方法。
pixel - 指定的像素
normComponents - 一个接收归一化组件的数组
normOffset -
normComponents阵列的偏移量,用于开始存储归一化元件
ClassCastException - 如果
pixel不是类型transferType的原始数组
ArrayIndexOutOfBoundsException -如果
normComponents是不是大到足以容纳所有的颜色和alpha分量开始
normOffset
ArrayIndexOutOfBoundsException - 如果
pixel不够大,不能持有这个
ColorModel的像素值。
UnsupportedOperationException - 如果这个ColorModel的ColorModel称为super(bits)构造函数,但没有覆盖此方法。
请参阅构造函数ColorModel(int) 。
UnsupportedOperationException - 如果此方法无法确定每个组件的位数
public boolean equals(Object obj)
Object是一个实例
ColorModel ,以及它是否该
ColorModel 。
equals在
Object
obj -
Object测试平等
true如果指定Object是的一个实例ColorModel并且等于此ColorModel ;
false否则。
Object.hashCode() , HashMap
public int hashCode()
hashCode在
Object
Object.equals(java.lang.Object) ,
System.identityHashCode(java.lang.Object)
public final ColorSpace getColorSpace()
ColorSpace与此相关
ColorModel 。
ColorSpace的这个
ColorModel 。
public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
isAlphaPremultiplied变量中指定的状态相匹配,假设数据当前由ColorModel 。
它可以将颜色光栅数据乘以或除以α,如果数据处于正确状态,则不执行任何操作。
如果需要强制数据,这个方法也将返回一个ColorModel一个实例,其中isAlphaPremultiplied标志设置得恰当。
这个方法会抛出一个UnsupportedOperationException如果它不支持这个ColorModel 。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
子类必须重写这个方法,因为这个抽象类中的实现会抛出一个UnsupportedOperationException 。
raster -
WritableRaster数据
isAlphaPremultiplied - true如果alpha是预乘式的;
false否则
ColorModel强制数据的
ColorModel对象。
public boolean isCompatibleRaster(Raster raster)
raster与此ColorModel和false兼容,则返回true 。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
子类必须重写这个方法,因为这个抽象类中的实现会抛出一个UnsupportedOperationException 。
raster - Raster对象测试兼容性
true如果
raster与此
ColorModel 。
UnsupportedOperationException - 如果这种方法还没有实现这个
ColorModel
public WritableRaster createCompatibleWritableRaster(int w, int h)
WritableRaster具有指定的宽度和高度,其具有的数据布局( SampleModel )与此兼容ColorModel 。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
子类必须重写此方法,因为该抽象类中的实现会抛出一个UnsupportedOperationException 。
w - 适用于新的
WritableRaster的宽度
h - 适用于新的
WritableRaster的高度
WritableRaster具有指定宽度和高度的对象。
UnsupportedOperationException - 如果此方法不支持此
ColorModel
WritableRaster , SampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel具有指定的宽度和高度,具有与此兼容的数据布局ColorModel 。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
子类必须覆盖此方法,因为此抽象类中的实现会抛出一个UnsupportedOperationException 。
w - 适用于新的
SampleModel的宽度
h - 适用于新的
SampleModel的高度
SampleModel对象。
UnsupportedOperationException - 如果此方法不支持此
ColorModel
SampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel是否与此ColorModel 。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
子类必须重写此方法,因为该抽象类中的实现会抛出一个UnsupportedOperationException 。
sm - 指定的
SampleModel
true如果SampleModel的SampleModel与此ColorModel ;
false否则。
UnsupportedOperationException - 如果此方法不支持此
ColorModel
SampleModel
public void finalize()
ColorModel不再被引用,则处理与此
ColorModel的系统资源。
finalize在
Object
WeakReference , PhantomReference
public WritableRaster getAlphaRaster(WritableRaster raster)
Raster表示图像的alpha通道,从输入中提取Raster ,提供此的像素值ColorModel表示颜色和alpha信息为独立的空间频带(例如ComponentColorModel和DirectColorModel )。
该方法假设与这样的ColorModel Raster对象存储了α带(如果存在)作为最后的图像数据带。
返回null如果没有与此相关的独立空间alpha通道ColorModel 。
如果这是一个IndexColorModel ,它在查找表中有alpha,该方法将返回null因为没有空间离散的alpha通道。
此方法将创建一个新的Raster (但将共享数据数组)。
由于ColorModel是一个抽象类,任何实例都是一个子类的实例。
子类必须重写此方法来获得比其他返回任何行为null因为在这个抽象类中的实现返回null 。
raster - 指定的
Raster
Raster代表图像的alpha通道,从指定的Raster
Raster 。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.