- java.lang.Object
-
- java.awt.image.ColorModel
-
- java.awt.image.PackedColorModel
-
- java.awt.image.DirectColorModel
-
- All Implemented Interfaces:
-
Transparency
public class DirectColorModel extends PackedColorModel
DirectColorModel课程是一个ColorModel类,适用于将RGB颜色和Alpha信息表示为单独样本的像素值,并将单个像素的所有样本包装为单个int,short或byte数量。 该类只能用于ColorSpace.TYPE_RGB类型的ColorSpaces。 此外,对于ColorSpace的每个组件,通过ColorSpace的getMinValue()方法获得的最小归一化分量值必须为0.0,通过getMaxValue()方法获得的最大值必须为1.0(这些最小值/最大值是RGB空间的典型值) 。 在像素值中必须有三个颜色样本,并且可以有一个单一的α样本。 对于使用类型为transferType的原始数组像素表示的那些方法,数组长度始终为1。 支持的传输类型是DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT和DataBuffer.TYPE_INT。 颜色和alpha样本以位掩码表示的位存储在阵列的单个元素中。 每个位掩码必须是连续的,掩码不能重叠。 相同的掩码适用于其他方法使用的单个int像素表示。 面具和颜色/阿尔法样本的对应关系如下:- 如果没有alpha,则由0到2的索引识别掩码,如果存在alpha,则为3。
- 前三个指标是指彩色样本; 索引0对应于红色,索引1为绿色,索引2为蓝色。
- 索引3对应于α样本(如果存在)。
从显示或处理目的,从像素值到颜色/α分量的转换是样本与组件的一一对应关系。 A
DirectColorModel通常用于使用掩模来定义打包样本的图像数据。 例如,DirectColorModel可以与SinglePixelPackedSampleModel一起使用来构建一个BufferedImage。 通常,SampleModel和ColorModel使用的掩码将是一样的。 然而,如果它们不同,像素数据的颜色解释将根据ColorModel的掩码进行。单个int像素表示对于此类的所有对象是有效的,因为总是可以在单个int中表示与该类一起使用的像素值。 因此,由于无效的像素值,使用此表示的方法不会抛出
IllegalArgumentException。此颜色模型与X11 TrueColor视觉相似。 由
getRGBdefault方法指定的默认RGB ColorModel是DirectColorModel具有以下参数:Number of bits: 32 Red mask: 0x00ff0000 Green mask: 0x0000ff00 Blue mask: 0x000000ff Alpha mask: 0xff000000 Color space: sRGB isAlphaPremultiplied: False Transparency: Transparency.TRANSLUCENT transferType: DataBuffer.TYPE_INT这个类中的很多方法都是最终的。 这是因为底层本机图形代码对该类的布局和操作做出假设,这些假设反映在这里标记为final的方法的实现中。 您可以通过其他原因对此类进行子类化,但不能覆盖或修改这些方法的行为。
-
-
Field Summary
-
Fields inherited from class java.awt.image.ColorModel
pixel_bits, transferType
-
Fields inherited from interface java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
-
-
构造方法摘要
构造方法 Constructor 描述 DirectColorModel(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。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 ColorModelcoerceData(WritableRaster raster, boolean isAlphaPremultiplied)强制光栅数据与isAlphaPremultiplied变量中指定的状态相匹配,假设此ColorModel正确描述了数据。WritableRastercreateCompatibleWritableRaster(int w, int h)创建WritableRaster具有指定的宽度和高度,其具有的数据布局(SampleModel)与此兼容ColorModel。intgetAlpha(int pixel)返回指定像素的alpha分量,从0到255。intgetAlpha(Object inData)返回指定像素的alpha分量,从0到255。intgetAlphaMask()返回掩码,指示int像素表示中的哪些位包含alpha组件。intgetBlue(int pixel)返回指定像素的蓝色分量,在默认RGBColorSpace(sRGB)中从0到255。intgetBlue(Object inData)返回指定像素的蓝色分量,在默认RGBColorSpace(sRGB)中从0到255。intgetBlueMask()返回掩码,指示int像素表示中的哪些位包含蓝色分量。int[]getComponents(int pixel, int[] components, int offset)在这个ColorModel给出一个像素的非规范化颜色/ alpha分量的数组。int[]getComponents(Object pixel, int[] components, int offset)返回给这个ColorModel一个像素的非规范化颜色/ alpha分量的数组。intgetDataElement(int[] components, int offset)给出一个非标准化颜色/ alpha组件数组,返回int中ColorModel表示的像素值。ObjectgetDataElements(int[] components, int offset, Object obj)给出这个ColorModel的一个像素的数据元素数组表示,给出了一个非标准化颜色/ alpha分量的数组。ObjectgetDataElements(int rgb, Object pixel)返回此ColorModel中的像素的数据元素数组表示,给出了默认RGB颜色模型中的整数像素表示。intgetGreen(int pixel)返回指定像素的绿色分量,在默认RGBColorSpace(sRGB)中从0到255。intgetGreen(Object inData)返回指定像素的绿色分量,在默认RGBColorSpace(sRGB)中从0到255。intgetGreenMask()返回掩码,指示int像素表示中的哪些位包含绿色分量。intgetRed(int pixel)返回指定像素的红色分量,在默认RGBColorSpace(sRGB)中从0到255。intgetRed(Object inData)返回指定像素的红色分量,在默认RGBColorSpace(sRGB)中从0到255。intgetRedMask()返回掩码,指示int像素表示中的哪些位包含红色分量。intgetRGB(int pixel)以默认RGB颜色模型格式返回像素的颜色/ alpha分量。intgetRGB(Object inData)以默认RGB颜色模型格式返回指定像素的颜色/ alpha分量。booleanisCompatibleRaster(Raster raster)如果raster与ColorModel和false兼容,则返回true。StringtoString()返回一个String,代表这个DirectColorModel。-
Methods inherited from class java.awt.image.ColorModel
finalize, getColorSpace, getComponentSize, getComponentSize, getDataElement, getDataElements, getNormalizedComponents, getNormalizedComponents, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, getUnnormalizedComponents, hasAlpha, isAlphaPremultiplied
-
Methods inherited from class java.awt.image.PackedColorModel
createCompatibleSampleModel, equals, getAlphaRaster, getMask, getMasks, hashCode, isCompatibleSampleModel
-
-
-
-
构造方法详细信息
-
DirectColorModel
public DirectColorModel(int bits, int rmask, int gmask, int bmask)从指定的掩码中构造一个DirectColorModel,指示int像素表示中的哪些位包含红色,绿色和蓝色样本。 由于像素值不包含alpha信息,因此所有像素都被视为不透明,这意味着alpha = 1.0。 每个掩码中的所有位必须是连续的,并且适合int像素表示的指定数目的最低有效位。ColorSpace是默认的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像素表示的指定数目的最低有效位。 阿尔法,如果存在,不是预付费。ColorSpace是默认的sRGB空间。 透明度值是Transparency.OPAQUE,如果不存在alpha,或Transparency.TRANSLUCENT,否则。 传输类型是可容纳单个像素的DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT或DataBuffer.TYPE_INT中最小的。- 参数
-
bits- 像素值中的位数; 例如,掩码中的比特数之和。 -
rmask- 指定指示整数像素中的哪些位包含红色分量的掩码 -
gmask- 指定指示整数像素中的哪些位包含绿色分量的掩码 -
bmask- 指定指示整数像素中的哪些位包含蓝色分量的掩码 -
amask- 指定指示整数像素中的哪些位包含α分量的掩码
-
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,booleanisAlphaPremultiplied指定如何在像素值中解释颜色和alpha样本。 如果boolean是true,则假设颜色样本已被乘以α样本。 透明度值为Transparency.OPAQUE,如果不存在alpha,或Transparency.TRANSLUCENT则为透明度。 传输类型是用于表示像素值的原始数组的类型,必须是DataBuffer.TYPE_BYTE,DataBuffer.TYPE_USHORT或DataBuffer.TYPE_INT之一。- 参数
-
space- 指定的ColorSpace -
bits- 像素值中的位数; 例如,掩码中的比特数之和。 -
rmask- 指定一个掩码,指示整数像素中的哪些位包含红色分量 -
gmask- 指定一个掩码,指示整数像素中的哪些位包含绿色分量 -
bmask- 指定指示整数像素中的哪些位包含蓝色分量的掩码 -
amask- 指定指示整数像素中的哪些位包含α分量的掩码 -
isAlphaPremultiplied-true如果颜色样本被alpha样本预乘, 否则为false -
transferType- 用于表示像素值的数组类型 - 异常
-
IllegalArgumentException- 如果space不是TYPE_RGB空间,或者最小/最大标准化组件值不是0.0 / 1.0。
-
-
方法详细信息
-
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像素表示的哪个位包含α样本。
-
getRed
public final int getRed(int pixel)
返回指定像素的红色分量,在默认RGBColorSpace(sRGB)中从0到255。 必要时进行颜色转换。 像素值被指定为int。 返回的值是非预先乘以的值。 因此,如果alpha被预乘,则该方法在返回值之前将其分开。 如果alpha值为0,例如,红色值为0。- Specified by:
-
getRed在ColorModel - 参数
-
pixel- 指定的像素 - 结果
-
指定像素的红色分量,sRGB
ColorSpace中的0到255。
-
getGreen
public final int getGreen(int pixel)
返回指定像素的绿色分量,在默认RGBColorSpacesRGB中从0到255。 必要时进行颜色转换。 像素值被指定为int。 返回的值是非预先乘以的值。 因此,如果alpha被预乘,则该方法在返回值之前将其分开。 如果alpha值为0,例如,绿色值为0。- Specified by:
-
getGreen在ColorModel - 参数
-
pixel- 指定的像素 - 结果
-
指定像素的绿色分量,sRGB
ColorSpace中的0到255。
-
getBlue
public final int getBlue(int pixel)
返回指定像素的蓝色分量,在默认RGBColorSpace(sRGB)中从0到255。 必要时进行颜色转换。 像素值被指定为int。 返回的值是非预先乘以的值。 因此,如果alpha被预乘,则该方法在返回值之前将其分开。 如果alpha值为0,例如,蓝色值为0。- Specified by:
-
getBlue在ColorModel - 参数
-
pixel- 指定的像素 - 结果
-
指定像素的蓝色分量,sRGB
ColorSpace中的0到255。
-
getAlpha
public final int getAlpha(int pixel)
返回指定像素的alpha分量,从0到255。像素值指定为int。- Specified by:
-
getAlpha在ColorModel - 参数
-
pixel- 指定的像素 - 结果
-
alpha分量的
pixel从0到255。
-
getRGB
public final int getRGB(int pixel)
以默认RGB颜色模型格式返回像素的颜色/ alpha分量。 必要时进行颜色转换。 像素值被指定为int。 返回的值为非预先乘法格式。 因此,如果alpha被预乘,则该方法将其从颜色分量中分离出来。 如果alpha值为0,例如,颜色值分别为0。- 重写:
-
getRGB在ColorModel - 参数
-
pixel- 指定的像素 - 结果
- 指定像素的颜色/ alpha分量的RGB值。
- 另请参见:
-
ColorModel.getRGBdefault()
-
getRed
public int getRed(Object inData)
返回指定像素的红色分量,在默认RGBColorSpace(sRGB)中从0到255。 必要时进行颜色转换。 像素值由作为对象引用传入的数据元素transferType的数组指定。 返回的值是非预先乘以的值。 因此,如果alpha被预乘,则该方法在返回值之前将其分开。 如果α值是0,例如,红色值是0。如果inData不是类型的基本数组transferType,一个ClassCastException被抛出。 一个ArrayIndexOutOfBoundsException如果抛出inData不够大,不能保存这个像素值ColorModel。 由于DirectColorModel可以被子类化,子类继承了该方法的实现,如果它们不覆盖它们,那么如果它们使用不支持的transferType它们将抛出异常。 一个UnsupportedOperationException如果这是抛出transferType不受此支持ColorModel。- 重写:
-
getRed在ColorModel - 参数
-
inData- 包含像素值的数组 - 结果
- 指定像素的红色分量的值。
- 异常
-
ArrayIndexOutOfBoundsException- 如果inData不够大,不能持有该颜色模型的像素值 -
ClassCastException-如果inData不是类型的基本数组transferType -
UnsupportedOperationException- 如果此颜色模型不支持此transferType
-
getGreen
public int getGreen(Object inData)
返回指定像素的绿色分量,在默认RGBColorSpace(sRGB)中从0到255。 必要时进行颜色转换。 像素值由作为对象引用传入的数据元素transferType的数组指定。 返回的值是非预先乘以的值。 因此,如果alpha被预乘,则该方法在返回值之前将其分开。 如果α值是0,例如,绿色的值为0。如果inData不是类型的基本数组transferType,一个ClassCastException被抛出。 一个ArrayIndexOutOfBoundsException如果抛出inData不够大,不能保存这个像素值ColorModel。 由于DirectColorModel可以被子类化,子类继承了此方法的实现,如果它们不覆盖它,那么如果它们使用不支持的transferType,则它们会引发异常。 一个UnsupportedOperationException如果这是抛出transferType不受此支持ColorModel。- 重写:
-
getGreen在ColorModel - 参数
-
inData- 包含像素值的数组 - 结果
- 指定像素的绿色分量的值。
- 异常
-
ArrayIndexOutOfBoundsException- 如果inData不够大,不能持有该颜色模型的像素值 -
ClassCastException-如果inData不是类型的基本数组transferType -
UnsupportedOperationException- 如果此颜色模型不支持此transferType
-
getBlue
public int getBlue(Object inData)
返回指定像素的蓝色分量,在默认RGBColorSpace(sRGB)中从0到255。 必要时进行颜色转换。 像素值由作为对象引用传入的数据元素transferType数组指定。 返回的值是非预先乘以的值。 因此,如果alpha被预乘,则该方法在返回值之前将其分开。 如果α值是0,例如,蓝色值为0。如果inData不是类型的基本数组transferType,一个ClassCastException被抛出。 一个ArrayIndexOutOfBoundsException如果抛出inData不够大,不能保存这个像素值ColorModel。 由于DirectColorModel可以被子类化,子类继承了此方法的实现,如果它们不覆盖它,那么如果它们使用不支持的transferType它们将抛出异常。 如果这个transferType不支持UnsupportedOperationException则会抛出一个ColorModel。- 重写:
-
getBlue在ColorModel - 参数
-
inData- 包含像素值的数组 - 结果
- 指定像素的蓝色分量的值。
- 异常
-
ArrayIndexOutOfBoundsException- 如果inData不够大,不能持有该颜色模型的像素值 -
ClassCastException-如果inData不是类型的基本数组transferType -
UnsupportedOperationException- 如果此颜色模型不支持此transferType
-
getAlpha
public int getAlpha(Object inData)
返回指定像素的alpha分量,从0到255进行比例。像素值由作为对象引用传入的数据元素数组transferType指定。 如果inData不是类型的基本数组transferType,一个ClassCastException被抛出。 一个ArrayIndexOutOfBoundsException如果抛出inData不够大,不能保存这个像素值ColorModel。 由于DirectColorModel可以被子类化,子类继承了此方法的实现,如果它们不覆盖它,那么如果它们使用不支持的transferType它们将抛出异常。 如果不支持此transferType,则抛出UnsupportedOperationException。- 重写:
-
getAlpha在ColorModel - 参数
-
inData- 指定的像素 - 结果
- 指定像素的alpha分量,从0到255。
- 异常
-
ClassCastException-如果inData不是类型的基本数组transferType -
ArrayIndexOutOfBoundsException- 如果inData不够大,不能保持这个ColorModel的像素值 -
UnsupportedOperationException- 此tranferType不支持此ColorModel
-
getRGB
public int getRGB(Object inData)
以默认RGB颜色模型格式返回指定像素的颜色/ alpha分量。 必要时进行颜色转换。 像素值由作为对象引用传入的数据元素transferType的数组指定。 如果inData不是类型的基本数组transferType,一个ClassCastException被抛出。 一个ArrayIndexOutOfBoundsException如果抛出inData不够大,不能保存这个像素值ColorModel。 返回的值为非预先乘法格式。 因此,如果alpha被预乘,则该方法将其从颜色分量中分离出来。 例如,如果alpha值为0,则颜色值为0.由于DirectColorModel可以被子类化,子类继承了此方法的实现,如果它们不覆盖它,则如果使用不支持的transferType,则它们将抛出异常。- 重写:
-
getRGB在ColorModel - 参数
-
inData- 指定的像素 - 结果
- 指定像素的颜色和alpha分量。
- 异常
-
UnsupportedOperationException- 如果这个transferType不支持这个ColorModel - 另请参见:
-
ColorModel.getRGBdefault()
-
getDataElements
public Object getDataElements(int rgb, Object pixel)
返回此ColorModel中的像素的数据元素数组表示,给出了默认RGB颜色模型中的整数像素表示。 然后可以将该数组传递给WritableRaster对象的setDataElements方法。 如果像素变量为null,则会分配一个新数组。 如果pixel不是null,它必须是transferType类型的基本数组; 否则,抛出一个ClassCastException。 一个ArrayIndexOutOfBoundsException如果抛出pixel不够大,不能保存这个像素值ColorModel。 返回像素数组。 由于DirectColorModel可以被子类化,子类继承了此方法的实现,如果它们不覆盖它,那么如果它们使用不支持的transferType它们将抛出异常。- 重写:
-
getDataElements在ColorModel - 参数
-
rgb- 默认RGB颜色模型中的整数像素表示 -
pixel- 指定的像素 - 结果
-
该
ColorModel指定像素的数组表示 - 异常
-
ClassCastException-如果pixel不是类型的基本数组transferType -
ArrayIndexOutOfBoundsException- 如果pixel不够大,不能保持这个ColorModel的像素值 -
UnsupportedOperationException- 如果这个transferType不支持此ColorModel - 另请参见:
-
WritableRaster.setDataElements(int, int, java.lang.Object),SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
-
getComponents
public final int[] getComponents(int pixel, int[] components, int offset)返回给这个ColorModel一个像素的非规范化颜色/ alpha分量的数组。 像素值被指定为int。 如果components阵列为null,则会分配一个新阵列。 将返回components数组。 即使通过此方法分配阵列,颜色/ Alpha组件存储在从components开始的offset阵列中。 一个ArrayIndexOutOfBoundsException如果抛出components数组不null,而不是大到足以容纳所有的颜色和alpha分量,开始offset。- 重写:
-
getComponents在ColorModel - 参数
-
pixel- 指定的像素 -
components- 用于接收指定像素的颜色和alpha分量的数组 -
offset- 开始存储颜色和alpha组件的components阵列的偏移量 - 结果
- 一个数组,包含从指定的偏移开始的指定像素的颜色和alpha分量。
-
getComponents
public final int[] getComponents(Object pixel, int[] components, int offset)
在这个ColorModel给出一个像素,返回一个非规范化颜色/ alpha分量的数组。 像素值由作为对象引用传入的数据元素transferType的数组指定。 如果pixel不是类型的基本数组transferType,一个ClassCastException被抛出。 一个ArrayIndexOutOfBoundsException如果抛出pixel不够大,不能保存这个像素值ColorModel。 如果components阵列为null,则会分配一个新阵列。 将返回components数组。 颜色/ alpha分量存储中components数组以offset,即使阵列通过这种方法分配的。 一个ArrayIndexOutOfBoundsException如果抛出components数组不null,而不是大到足以容纳所有的颜色和alpha分量,开始offset。 由于DirectColorModel可以被子类化,子类继承了该方法的实现,如果它们不覆盖它,那么如果它们使用不支持的transferType它们将抛出异常。- 重写:
-
getComponents在ColorModel - 参数
-
pixel- 指定的像素 -
components- 接收指定像素的颜色和alpha分量的数组 -
offset- 要开始存储颜色和alpha组件的components阵列的偏移量 - 结果
- 一个数组,包含从指定的偏移开始的指定像素的颜色和alpha分量。
- 异常
-
ClassCastException- 如果pixel不是transferType类型的原始数组 -
ArrayIndexOutOfBoundsException- 如果pixel不够大以容纳ColorModel的像素值,或者如果components不是null,并且不够大,不能容纳所有颜色和alpha分量,从offset开始 -
UnsupportedOperationException- 如果此颜色模型不支持此transferType
-
createCompatibleWritableRaster
public final WritableRaster createCompatibleWritableRaster(int w, int h)
创建WritableRaster具有指定的宽度和高度,其具有的数据布局(SampleModel)与此兼容ColorModel。- 重写:
-
createCompatibleWritableRaster在ColorModel - 参数
-
w- 要应用于新的WritableRaster的宽度 -
h- 适用于新的WritableRaster的高度 - 结果
-
一个
WritableRaster对象具有指定的宽度和高度。 - 异常
-
IllegalArgumentException- 如果w或h小于或等于零 - 另请参见:
-
WritableRaster,SampleModel
-
getDataElement
public int getDataElement(int[] components, int offset)返回表示为一个像素值int在此ColorModel,给定非标准化颜色/ alpha分量的阵列。 一个ArrayIndexOutOfBoundsException如果抛出components阵列是不是大到足以容纳所有的颜色和alpha分量,开始offset。- 重写:
-
getDataElement在ColorModel - 参数
-
components- 非规范化颜色和alpha组件的数组 -
offset- 索引到components,开始检索颜色和alpha组件 - 结果
-
一个
int像素值在这ColorModel对应的指定组件。 - 异常
-
ArrayIndexOutOfBoundsException- 如果components数组不够大,不能容纳从offset开始的所有颜色和alpha组件
-
getDataElements
public Object getDataElements(int[] components, int offset, Object obj)
给出这个ColorModel的一个像素的数据元素数组表示,给出了一个非标准化颜色/ alpha分量的数组。 然后可以将该数组传递给WritableRaster对象的setDataElements方法。 一个ArrayIndexOutOfBoundsException,如果被抛出components阵列是没有大到足以容纳所有的颜色和alpha分量,起始偏移量。 如果obj变量为null,则会分配一个新数组。 如果obj不是null,它必须是transferType类型的原始数组; 否则,抛出一个ClassCastException。 一个ArrayIndexOutOfBoundsException如果抛出obj不够大,不能保存这个像素值ColorModel。 由于DirectColorModel可以被子类化,子类继承了此方法的实现,如果它们不覆盖它,那么如果它们使用不支持的transferType它们将抛出异常。- 重写:
-
getDataElements在ColorModel - 参数
-
components- 非规范化颜色和alpha组件的数组 -
offset- 索引到components,开始检索颜色和alpha组件 -
obj-Object表示颜色和alpha组件的数组 - 结果
-
一个
Object表示一个颜色和alpha组件的数组。 - 异常
-
ClassCastException- 如果obj不是类型为transferType的原始数组 -
ArrayIndexOutOfBoundsException- 如果obj不够大以容纳ColorModel的像素值,或components阵列不够大,不足以容纳所有颜色和alpha分量从offset开始 -
UnsupportedOperationException- 如果此颜色模型不支持此transferType - 另请参见:
-
WritableRaster.setDataElements(int, int, java.lang.Object),SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
-
coerceData
public final ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
强制栅格数据与isAlphaPremultiplied变量中指定的状态相匹配,假定此ColorModel当前正确描述了数据。 它可以将颜色光栅数据乘以或除以alpha,如果数据处于正确状态,则不执行任何操作。 如果需要强制数据,则此方法也将返回ColorModel一个实例,并isAlphaPremultiplied设置isAlphaPremultiplied标志。 如果此UnsupportedOperationException不支持此transferType,则此方法将抛出一个ColorModel。 由于ColorModel可以被子类化,子类继承了该方法的实现,如果它们不覆盖它,那么如果它们使用不受支持的transferType,它们会引发异常。- 重写:
-
coerceData在ColorModel - 参数
-
raster-WritableRaster数据 -
isAlphaPremultiplied-true如果alpha被预乘, 否则为false - 结果
-
一个表示强制数据的
ColorModel对象。 - 异常
-
UnsupportedOperationException- 如果此颜色模型不支持此transferType
-
isCompatibleRaster
public boolean isCompatibleRaster(Raster raster)
返回true如果raster是兼容这个ColorModel和false如果不是。- 重写:
-
isCompatibleRaster在ColorModel - 参数
-
raster- 要测试兼容性的Raster对象 - 结果
-
true如果raster是兼容这个ColorModel;false否则。
-
toString
public String toString()
返回String表示此DirectColorModel。- 重写:
-
toString在ColorModel - 结果
-
一个
String代表这个DirectColorModel。
-
-