java.lang.Object
java.awt.image.ColorModel
java.awt.image.PackedColorModel
java.awt.image.DirectColorModel
- 所有已实现的接口:
-
透明度
DirectColorModel
类是一个与表示RGB颜色和alpha信息为单独样本的像素值一起工作的ColorModel
类,并将单个像素的所有样本打包到单个int、short或byte数量中。此类只能与ColorSpaces类型为ColorSpace.TYPE_RGB一起使用。此外,对于ColorSpace的每个组件,通过ColorSpace的getMinValue()
方法获得的最小归一化组件值必须为0.0,通过getMaxValue()
方法获得的最大值必须为1.0(这些最小/最大值对于RGB空间是典型的)。像素值中必须有三个颜色样本,可以有一个单独的alpha样本。对于使用transferType
类型的原始数组像素表示的方法,数组长度始终为1。支持的传输类型为DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT和DataBuffer.TYPE_INT。颜色和alpha样本存储在数组的单个元素中,位掩码指示的位。每个位掩码必须是连续的,且掩码不能重叠。相同的掩码适用于其他方法使用的单个int像素表示。掩码和颜色/alpha样本的对应关系如下:
- 如果没有alpha存在,则通过索引从0到2进行标识掩码,如果存在alpha,则为3。
- 前三个索引指的是颜色样本;索引0对应红色,索引1对应绿色,索引2对应蓝色。
- 索引3对应alpha样本,如果存在。
从像素值到颜色/alpha组件的显示或处理目的的转换是样本到组件的一对一对应关系。通常,DirectColorModel
与使用掩码定义打包样本的图像数据一起使用。例如,DirectColorModel
可以与SinglePixelPackedSampleModel
结合使用以构造BufferedImage
。通常,SampleModel
和ColorModel
使用的掩码将是相同的。但是,如果它们不同,则将根据ColorModel
的掩码执行像素数据的颜色解释。
单个int像素表示对于此类的所有对象都是有效的,因为始终可以将与此类一起使用的像素值表示为单个int。因此,使用此表示的方法不会因为无效的像素值而抛出IllegalArgumentException
。
此颜色模型类似于X11 TrueColor视觉。由getRGBdefault
方法指定的默认RGB ColorModel是具有以下参数的DirectColorModel
:
位数: 32 红色掩码: 0x00ff0000 绿色掩码: 0x0000ff00 蓝色掩码: 0x000000ff Alpha掩码: 0xff000000 颜色空间: sRGB 是否预乘Alpha: False 透明度: Transparency.TRANSLUCENT 传输类型: DataBuffer.TYPE_INT
此类中的许多方法都是final的。这是因为底层本机图形代码对此类的布局和操作做出了假设,并且这些假设反映在这里标记为final的方法的实现中。您可以为其他原因对此类进行子类化,但不能覆盖或修改这些方法的行为。
- 参见:
-
Field Summary
Fields declared in class java.awt.image.ColorModel
pixel_bits, transferType
Fields declared in interface java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
-
Constructor Summary
ConstructorDescriptionDirectColorModel
(int bits, int rmask, int gmask, int bmask) 从指定的掩码中构造一个DirectColorModel
,指示一个int
像素表示中包含红色、绿色和蓝色样本的位。DirectColorModel
(int bits, int rmask, int gmask, int bmask, int amask) 从指定的掩码中构造一个DirectColorModel
,指示一个int
像素表示中包含红色、绿色和蓝色样本以及alpha样本的位,如果存在的话。DirectColorModel
(ColorSpace space, int bits, int rmask, int gmask, int bmask, int amask, boolean isAlphaPremultiplied, int transferType) 从指定的参数构造一个DirectColorModel
。 -
Method Summary
Modifier and TypeMethodDescriptionfinal ColorModel
coerceData
(WritableRaster raster, boolean isAlphaPremultiplied) 强制栅格数据匹配isAlphaPremultiplied
变量中指定的状态,假设数据当前由此ColorModel
正确描述。final WritableRaster
createCompatibleWritableRaster
(int w, int h) 创建一个具有与此ColorModel
兼容的数据布局(SampleModel
)的指定宽度和高度的WritableRaster
。final int
getAlpha
(int pixel) 返回指定像素的alpha分量,从0到255进行缩放。int
返回指定像素的alpha分量,从0到255进行缩放。final int
返回指示一个int
像素表示中包含alpha分量的掩码。final int
getBlue
(int pixel) 返回默认RGBColorSpace
sRGB中指定像素的蓝色分量,从0到255进行缩放。int
返回默认RGBColorSpace
sRGB中指定像素的蓝色分量,从0到255进行缩放。final int
返回指示一个int
像素表示中包含蓝色分量的掩码。final int[]
getComponents
(int pixel, int[] components, int offset) 给定此ColorModel
中的像素,返回未归一化的颜色/alpha组件数组。final int[]
getComponents
(Object pixel, int[] components, int offset) 给定此ColorModel
中的像素,返回未归一化的颜色/alpha组件数组。int
getDataElement
(int[] components, int offset) 给定未归一化的颜色/alpha组件数组,返回此ColorModel
中表示的int
像素值。getDataElements
(int[] components, int offset, Object obj) 给定未归一化的颜色/alpha组件数组,返回此ColorModel
中的像素的数据元素数组表示。getDataElements
(int rgb, Object pixel) 给定默认RGB颜色模型中的整数像素表示,返回此ColorModel
中的像素的数据元素数组表示。final int
getGreen
(int pixel) 返回默认RGBColorSpace
sRGB中指定像素的绿色分量,从0到255进行缩放。int
返回默认RGBColorSpace
sRGB中指定像素的绿色分量,从0到255进行缩放。final int
返回指示一个int
像素表示中包含绿色分量的掩码。final int
getRed
(int pixel) 返回默认RGBColorSpace
sRGB中指定像素的红色分量,从0到255进行缩放。int
返回默认RGBColorSpace
sRGB中指定像素的红色分量,从0到255进行缩放。final int
返回指示一个int
像素表示中包含红色分量的掩码。final int
getRGB
(int pixel) 返回默认RGB颜色模型格式中像素的颜色/alpha组件。int
返回默认RGB颜色模型格式中指定像素的颜色/alpha组件。boolean
isCompatibleRaster
(Raster raster) 如果raster
与此ColorModel
兼容,则返回true
,否则返回false
。toString()
返回表示此DirectColorModel
的String
。Methods declared in class java.awt.image.PackedColorModel
createCompatibleSampleModel, equals, getAlphaRaster, getMask, getMasks, hashCode, isCompatibleSampleModel
Methods declared in class java.awt.image.ColorModel
getColorSpace, getComponentSize, getComponentSize, getDataElement, getDataElements, getNormalizedComponents, getNormalizedComponents, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, getUnnormalizedComponents, hasAlpha, isAlphaPremultiplied
-
Constructor Details
-
DirectColorModel
public DirectColorModel(int bits, int rmask, int gmask, int bmask) 从指定的掩码中构造一个DirectColorModel
,指示一个int
像素表示中包含红色、绿色和蓝色样本的位。由于像素值不包含alpha信息,因此所有像素都被视为不透明,这意味着alpha = 1.0。每个掩码中的所有位必须是连续的,并且适合于int
像素表示的指定数量的最低有效位。颜色空间是默认的sRGB空间。透明度值为Transparency.OPAQUE。传输类型是DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT或DataBuffer.TYPE_INT中可以容纳单个像素的最小类型。- 参数:
-
bits
- 像素值中的位数;例如,掩码中位数的总和。 -
rmask
- 指定一个掩码,指示整数像素中包含红色分量的位 -
gmask
- 指定一个掩码,指示整数像素中包含绿色分量的位 -
bmask
- 指定一个掩码,指示整数像素中包含蓝色分量的位
-
DirectColorModel
public DirectColorModel(int bits, int rmask, int gmask, int bmask, int amask) 从指定的掩码中构造一个DirectColorModel
,指示一个int
像素表示中包含红色、绿色和蓝色样本以及alpha样本的位,如果存在的话。如果amask
为0,则像素值不包含alpha信息,所有像素都被视为不透明,这意味着alpha = 1.0。每个掩码中的所有位必须是连续的,并且适合于int
像素表示的指定数量的最低有效位。如果存在alpha,则alpha不是预乘的。颜色空间是默认的sRGB空间。透明度值为如果没有alpha存在,则Transparency.OPAQUE,否则为Transparency.TRANSLUCENT。传输类型是DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT或DataBuffer.TYPE_INT中可以容纳单个像素的最小类型。- 参数:
-
bits
- 像素值中的位数;例如,掩码中位数的总和。 -
rmask
- 指定一个掩码,指示整数像素中包含红色分量的位 -
gmask
- 指定一个掩码,指示整数像素中包含绿色分量的位 -
bmask
- 指定一个掩码,指示整数像素中包含蓝色分量的位 -
amask
- 指定一个掩码,指示整数像素中包含alpha分量的位
-
DirectColorModel
public DirectColorModel(ColorSpace space, int bits, int rmask, int gmask, int bmask, int amask, boolean isAlphaPremultiplied, int transferType) 从指定的参数构造一个DirectColorModel
。颜色分量在指定的ColorSpace
中,该颜色空间必须是ColorSpace.TYPE_RGB类型,并且具有所有最小规范化分量值为0.0和所有最大值为1.0。掩码指定int
像素表示中包含红色、绿色和蓝色颜色样本以及alpha样本(如果存在)的位。如果amask
为0,则像素值不包含alpha信息,并且所有像素都被视为不透明,这意味着alpha = 1.0。每个掩码中的所有位必须是连续的,并且适合于int
像素表示的指定数量的最低有效位。如果存在alpha,则boolean
isAlphaPremultiplied
指定如何解释像素值中的颜色和alpha样本。如果boolean
为true
,则假定颜色样本已乘以alpha样本。如果没有alpha,则透明度值为Transparency.OPAQUE,否则为Transparency.TRANSLUCENT。传输类型是用于表示像素值的原始数组的类型,必须是DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT或DataBuffer.TYPE_INT之一。- 参数:
-
space
- 指定的ColorSpace
-
bits
- 像素值中的位数;例如,掩码中位数的总和。 -
rmask
- 指定一个掩码,指示整数像素中包含红色分量的位 -
gmask
- 指定一个掩码,指示整数像素中包含绿色分量的位 -
bmask
- 指定一个掩码,指示整数像素中包含蓝色分量的位 -
amask
- 指定一个掩码,指示整数像素中包含alpha分量的位 -
isAlphaPremultiplied
- 如果颜色样本已经乘以alpha样本,则为true
;否则为false
-
transferType
- 用于表示像素值的数组类型 - 抛出:
-
IllegalArgumentException
- 如果space
不是TYPE_RGB空间,或者最小/最大规范化分量值不是0.0/1.0。
-
-
Method Details
-
getRedMask
public final int getRedMask()返回一个掩码,指示int
像素表示中包含红色分量的位。- 返回:
-
该掩码指示
int
像素表示中包含红色样本的位。
-
getGreenMask
public final int getGreenMask()返回一个掩码,指示int
像素表示中包含绿色分量的位。- 返回:
-
该掩码指示
int
像素表示中包含绿色样本的位。
-
getBlueMask
public final int getBlueMask()返回一个掩码,指示int
像素表示中包含蓝色分量的位。- 返回:
-
该掩码指示
int
像素表示中包含蓝色样本的位。
-
getAlphaMask
public final int getAlphaMask()返回一个掩码,指示int
像素表示中包含alpha分量的位。- 返回:
-
该掩码指示
int
像素表示中包含alpha样本的位。
-
getRed
public final int getRed(int pixel) 返回指定像素的红色分量,从0到255在默认的RGBColorSpace
中,即sRGB。如果需要,将进行颜色转换。像素值被指定为一个int
。返回的值是非预乘值。因此,如果alpha已经预乘,此方法在返回值之前将其除以。例如,如果alpha值为0,则红色值为0。- 指定者:
-
getRed
在类中ColorModel
- 参数:
-
pixel
- 指定的像素 - 返回:
-
指定像素的红色分量,从0到255在sRGB
ColorSpace
中。
-
getGreen
public final int getGreen(int pixel) 返回指定像素的绿色分量,从0到255在默认的RGBColorSpace
中,即sRGB。如果需要,将进行颜色转换。像素值被指定为一个int
。返回的值是非预乘值。因此,如果alpha已经预乘,此方法在返回值之前将其除以。例如,如果alpha值为0,则绿色值为0。- 指定者:
-
getGreen
在类中ColorModel
- 参数:
-
pixel
- 指定的像素 - 返回:
-
指定像素的绿色分量,从0到255在sRGB
ColorSpace
中。
-
getBlue
public final int getBlue(int pixel) 返回指定像素的蓝色分量,从0到255在默认的RGBColorSpace
中,即sRGB。如果需要,将进行颜色转换。像素值被指定为一个int
。返回的值是非预乘值。因此,如果alpha已经预乘,此方法在返回值之前将其除以。例如,如果alpha值为0,则蓝色值为0。- 指定者:
-
getBlue
在类中ColorModel
- 参数:
-
pixel
- 指定的像素 - 返回:
-
指定像素的蓝色分量,从0到255在sRGB
ColorSpace
中。
-
getAlpha
public final int getAlpha(int pixel) 返回指定像素的alpha分量,从0到255。像素值被指定为一个int
。- 指定者:
-
getAlpha
在类中ColorModel
- 参数:
-
pixel
- 指定的像素 - 返回:
-
pixel
的alpha分量值,从0到255。
-
getRGB
public final int getRGB(int pixel) 返回默认RGB颜色模型格式中像素的颜色/alpha分量。如果需要,将进行颜色转换。像素值被指定为一个int
。返回的值是非预乘格式。因此,如果alpha已经预乘,此方法将其除去颜色分量之外。例如,如果alpha值为0,则颜色值都为0。- 覆盖:
-
getRGB
在类中ColorModel
- 参数:
-
pixel
- 指定的像素 - 返回:
- 指定像素的颜色/alpha分量的RGB值。
- 参见:
-
getRed
返回指定像素的红色分量,从0到255在默认的RGBColorSpace
中,即sRGB。如果需要,将进行颜色转换。像素值通过作为对象引用传递的transferType
类型的数据元素数组指定。返回的值是非预乘值。因此,如果alpha已经预乘,此方法在返回值之前将其除以。例如,如果alpha值为0,则红色值为0。如果inData
不是transferType
类型的原始数组,将抛出ClassCastException
。如果inData
不足以容纳此ColorModel
的像素值,则将抛出ArrayIndexOutOfBoundsException
。由于DirectColorModel
可以被子类化,子类继承了此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType
时会抛出异常。如果此transferType
不受此ColorModel
支持,则会抛出UnsupportedOperationException
。- 覆盖:
-
getRed
在类中ColorModel
- 参数:
-
inData
- 包含像素值的数组 - 返回:
- 指定像素的红色分量的值。
- 抛出:
-
ArrayIndexOutOfBoundsException
- 如果inData
不足以容纳此颜色模型的像素值 -
ClassCastException
- 如果inData
不是transferType
类型的原始数组 -
UnsupportedOperationException
- 如果此transferType
不受此颜色模型支持
-
getGreen
返回指定像素的绿色分量,从0到255在默认的RGBColorSpace
中,即sRGB。如果需要,将进行颜色转换。像素值通过作为对象引用传递的transferType
类型的数据元素数组指定。返回的值是非预乘值。因此,如果alpha已经预乘,此方法在返回值之前将其除以。例如,如果alpha值为0,则绿色值为0。如果inData
不是transferType
类型的原始数组,将抛出ClassCastException
。如果inData
不足以容纳此ColorModel
的像素值,则将抛出ArrayIndexOutOfBoundsException
。由于DirectColorModel
可以被子类化,子类继承了此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType
时会抛出异常。如果此transferType
不受此ColorModel
支持,则会抛出UnsupportedOperationException
。- 覆盖:
-
getGreen
在类ColorModel
中 - 参数:
-
inData
- 包含像素值的数组 - 返回:
- 指定像素的绿色分量的值。
- 抛出:
-
ArrayIndexOutOfBoundsException
- 如果inData
的大小不足以容纳此颜色模型的像素值 -
ClassCastException
- 如果inData
不是类型为transferType
的原始数组 -
UnsupportedOperationException
- 如果此transferType
不受此颜色模型支持
-
getBlue
返回指定像素的蓝色颜色分量,范围从0到255,默认RGBColorSpace
中的sRGB。如果需要,会进行颜色转换。像素值由作为对象引用传递的transferType
类型的数据元素数组指定。返回的值是非预乘值。因此,如果alpha是预乘的,则此方法在返回值之前将其除去。例如,如果alpha值为0,则蓝色值为0。如果inData
不是类型为transferType
的原始数组,则会抛出ClassCastException
。如果inData
的大小不足以容纳此ColorModel
的像素值,则会抛出ArrayIndexOutOfBoundsException
。由于DirectColorModel
可以被子类化,子类会继承此方法的实现,如果它们不覆盖它,则会在使用不受支持的transferType
时抛出异常。如果不支持此transferType
,则会抛出UnsupportedOperationException
。- 覆盖:
-
getBlue
在类ColorModel
中 - 参数:
-
inData
- 包含像素值的数组 - 返回:
- 指定像素的蓝色分量的值。
- 抛出:
-
ArrayIndexOutOfBoundsException
- 如果inData
的大小不足以容纳此颜色模型的像素值 -
ClassCastException
- 如果inData
不是类型为transferType
的原始数组 -
UnsupportedOperationException
- 如果此transferType
不受此颜色模型支持
-
getAlpha
返回指定像素的alpha分量,范围从0到255。像素值由作为对象引用传递的transferType
类型的数据元素数组指定。如果inData
不是类型为transferType
的原始数组,则会抛出ClassCastException
。如果inData
的大小不足以容纳此ColorModel
的像素值,则会抛出ArrayIndexOutOfBoundsException
。由于DirectColorModel
可以被子类化,子类会继承此方法的实现,如果它们不覆盖它,则会在使用不受支持的transferType
时抛出异常。如果不支持此transferType
,则会抛出UnsupportedOperationException
。- 覆盖:
-
getAlpha
在类ColorModel
中 - 参数:
-
inData
- 指定的像素 - 返回:
- 指定像素的alpha分量,范围从0到255。
- 抛出:
-
ClassCastException
- 如果inData
不是类型为transferType
的原始数组 -
ArrayIndexOutOfBoundsException
- 如果inData
的大小不足以容纳此ColorModel
的像素值 -
UnsupportedOperationException
- 如果此tranferType
不受此ColorModel
支持
-
getRGB
返回默认RGB颜色模型格式中指定像素的颜色/alpha分量。如果需要,会进行颜色转换。像素值由作为对象引用传递的transferType
类型的数据元素数组指定。如果inData
不是类型为transferType
的原始数组,则会抛出ClassCastException
。如果inData
的大小不足以容纳此ColorModel
的像素值,则会抛出ArrayIndexOutOfBoundsException
。返回的值以非预乘格式呈现。因此,如果alpha是预乘的,则此方法将其除去颜色分量。例如,如果alpha值为0,则颜色值为0。由于DirectColorModel
可以被子类化,子类会继承此方法的实现,如果它们不覆盖它,则会在使用不受支持的transferType
时抛出异常。- 覆盖:
-
getRGB
在类ColorModel
中 - 参数:
-
inData
- 指定的像素 - 返回:
- 指定像素的颜色和alpha分量。
- 抛出:
-
UnsupportedOperationException
- 如果此transferType
不受此ColorModel
支持 - 参见:
-
getDataElements
返回此ColorModel
中像素的数据元素数组表示,给定默认RGB颜色模型中的整数像素表示。然后,可以将此数组传递给WritableRaster
对象的setDataElements
方法。如果像素变量为null
,则会分配一个新数组。如果pixel
不为null
,则它必须是类型为transferType
的原始数组;否则,会抛出ClassCastException
。如果pixel
不为null
且不足以容纳此ColorModel
的像素值,则会抛出ArrayIndexOutOfBoundsException
。将返回像素数组。由于DirectColorModel
可以被子类化,子类会继承此方法的实现,如果它们不覆盖它,则会在使用不受支持的transferType
时抛出异常。- 覆盖:
-
getDataElements
在类ColorModel
中 - 参数:
-
rgb
- 默认RGB颜色模型中的整数像素表示 -
pixel
- 指定的像素 - 返回:
-
此
ColorModel
中指定像素的数组表示 - 抛出:
-
ClassCastException
- 如果pixel
不是类型为transferType
的原始数组 -
ArrayIndexOutOfBoundsException
- 如果pixel
不为null
且不足以容纳此ColorModel
的像素值 -
UnsupportedOperationException
- 如果此transferType
不受此ColorModel
支持 - 参见:
-
getComponents
public final int[] getComponents(int pixel, int[] components, int offset) 返回给定像素在此ColorModel
中的未归一化颜色/alpha分量数组。像素值以int
形式指定。如果components
数组为null
,则会分配一个新数组。将返回components
数组。颜色/alpha分量存储在components
数组中,从offset
开始,即使该数组是由此方法分配的。如果components
数组不为null
且不足以容纳从offset
开始的所有颜色和alpha分量,则会抛出ArrayIndexOutOfBoundsException
。- 覆盖:
-
getComponents
在类ColorModel
中 - 参数:
-
pixel
- 指定的像素 -
components
- 用于接收指定像素的颜色和alpha分量的数组 -
offset
- 开始存储颜色和alpha分量的components
数组中的偏移量 - 返回:
- 包含从指定偏移量开始的指定像素的颜色和alpha分量的数组。
-
getComponents
返回一个包含未标准化颜色/alpha组件的数组,给定此ColorModel
中的像素。像素值由作为对象引用传递的transferType
类型的数据元素数组指定。如果pixel
不是transferType
类型的原始数组,则会抛出ClassCastException
。如果pixel
不足以容纳此ColorModel
的像素值,则会抛出ArrayIndexOutOfBoundsException
。如果components
数组为null
,则会分配一个新数组。返回components
数组。颜色/alpha组件存储在从offset
开始的components
数组中,即使该数组是由此方法分配的。如果components
数组不为null
且不足以容纳从offset
开始的所有颜色和alpha组件,则会抛出ArrayIndexOutOfBoundsException
。由于DirectColorModel
可以被子类化,子类继承此方法的实现,如果不重写,则如果使用不受支持的transferType
,则会抛出异常。- 覆盖:
-
getComponents
在类中ColorModel
- 参数:
-
pixel
- 指定的像素 -
components
- 用于接收指定像素的颜色和alpha组件的数组 -
offset
- 开始存储颜色和alpha组件的components
数组中的偏移量 - 返回:
- 包含从指定偏移量开始的指定像素的颜色和alpha组件的数组。
- 抛出:
-
ClassCastException
- 如果pixel
不是transferType
类型的原始数组 -
ArrayIndexOutOfBoundsException
- 如果pixel
不足以容纳此ColorModel
的像素值,或者如果components
不为null
且不足以容纳从offset
开始的所有颜色和alpha组件 -
UnsupportedOperationException
- 如果此transferType
不受此颜色模型支持
-
createCompatibleWritableRaster
创建一个具有指定宽度和高度的WritableRaster
,其数据布局(SampleModel
)与此ColorModel
兼容。- 覆盖:
-
createCompatibleWritableRaster
在类中ColorModel
- 参数:
-
w
- 要应用于新WritableRaster
的宽度 -
h
- 要应用于新WritableRaster
的高度 - 返回:
-
一个具有指定宽度和高度的
WritableRaster
对象。 - 抛出:
-
IllegalArgumentException
- 如果w
或h
小于或等于零 - 参见:
-
getDataElement
public int getDataElement(int[] components, int offset) 返回一个以int
表示的像素值,给定一个未标准化颜色/alpha组件数组。如果components
数组不足以容纳从offset
开始的所有颜色和alpha组件,则会抛出ArrayIndexOutOfBoundsException
。- 覆盖:
-
getDataElement
在类中ColorModel
- 参数:
-
components
- 一个未标准化颜色和alpha组件数组 -
offset
- 开始检索颜色和alpha组件的components
中的索引 - 返回:
-
在此
ColorModel
中对应于指定组件的int
像素值。 - 抛出:
-
ArrayIndexOutOfBoundsException
- 如果components
数组不足以容纳从offset
开始的所有颜色和alpha组件
-
getDataElements
返回此ColorModel
中像素的数据元素数组表示,给定一个未标准化颜色/alpha组件数组。然后可以将此数组传递给WritableRaster
对象的setDataElements
方法。如果components
数组不足以容纳从偏移量开始的所有颜色和alpha组件,则会抛出ArrayIndexOutOfBoundsException
。如果obj
变量为null
,则会分配一个新数组。如果obj
不为null
,则它必须是transferType
类型的原始数组;否则,将抛出ClassCastException
。如果obj
不足以容纳此ColorModel
的像素值,则会抛出ArrayIndexOutOfBoundsException
。由于DirectColorModel
可以被子类化,子类继承此方法的实现,如果不重写,则如果使用不受支持的transferType
,则会抛出异常。- 覆盖:
-
getDataElements
在类中ColorModel
- 参数:
-
components
- 一个未标准化颜色和alpha组件数组 -
offset
- 开始检索颜色和alpha组件的components
中的索引 -
obj
- 表示颜色和alpha组件数组的Object
- 返回:
-
代表颜色和alpha组件数组的
Object
。 - 抛出:
-
ClassCastException
- 如果obj
不是transferType
类型的原始数组 -
ArrayIndexOutOfBoundsException
- 如果obj
不足以容纳此ColorModel
的像素值或者components
数组不足以容纳从offset
开始的所有颜色和alpha组件 -
UnsupportedOperationException
- 如果此transferType
不受此颜色模型支持 - 参见:
-
coerceData
强制光栅数据与isAlphaPremultiplied
变量指定的状态匹配,假设数据当前由此ColorModel
正确描述。它可能会将颜色光栅数据乘以或除以alpha,或者如果数据处于正确状态,则不执行任何操作。如果需要强制数据,此方法还将返回一个适当设置isAlphaPremultiplied
标志的此ColorModel
实例。如果此transferType
不受此ColorModel
支持,则此方法将抛出UnsupportedOperationException
。由于ColorModel
可以被子类化,子类继承此方法的实现,如果不重写,则如果使用不受支持的transferType,则会抛出异常。- 覆盖:
-
coerceData
在类中ColorModel
- 参数:
-
raster
-WritableRaster
数据 -
isAlphaPremultiplied
- 如果alpha是预乘的,则为true
;否则为false
- 返回:
-
代表强制数据的
ColorModel
对象。 - 抛出:
-
UnsupportedOperationException
- 如果此transferType
不受此颜色模型支持
-
isCompatibleRaster
如果raster
与此ColorModel
兼容,则返回true
;否则返回false
。- 覆盖:
-
isCompatibleRaster
在类中ColorModel
- 参数:
-
raster
- 要测试兼容性的Raster
对象 - 返回:
-
如果
raster
与此ColorModel
兼容,则返回true
;否则返回false
。
-
toString
返回表示此DirectColorModel
的String
。- 覆盖:
-
toString
在类中ColorModel
- 返回:
-
代表此
DirectColorModel
的String
。
-