- 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 方法 描述 ColorModel
coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
强制光栅数据与isAlphaPremultiplied
变量中指定的状态相匹配,假设此ColorModel
正确描述了数据。WritableRaster
createCompatibleWritableRaster(int w, int h)
创建WritableRaster
具有指定的宽度和高度,其具有的数据布局(SampleModel
)与此兼容ColorModel
。int
getAlpha(int pixel)
返回指定像素的alpha分量,从0到255。int
getAlpha(Object inData)
返回指定像素的alpha分量,从0到255。int
getAlphaMask()
返回掩码,指示int
像素表示中的哪些位包含alpha组件。int
getBlue(int pixel)
返回指定像素的蓝色分量,在默认RGBColorSpace
(sRGB)中从0到255。int
getBlue(Object inData)
返回指定像素的蓝色分量,在默认RGBColorSpace
(sRGB)中从0到255。int
getBlueMask()
返回掩码,指示int
像素表示中的哪些位包含蓝色分量。int[]
getComponents(int pixel, int[] components, int offset)
在这个ColorModel
给出一个像素的非规范化颜色/ alpha分量的数组。int[]
getComponents(Object pixel, int[] components, int offset)
返回给这个ColorModel
一个像素的非规范化颜色/ alpha分量的数组。int
getDataElement(int[] components, int offset)
给出一个非标准化颜色/ alpha组件数组,返回int
中ColorModel
表示的像素值。Object
getDataElements(int[] components, int offset, Object obj)
给出这个ColorModel
的一个像素的数据元素数组表示,给出了一个非标准化颜色/ alpha分量的数组。Object
getDataElements(int rgb, Object pixel)
返回此ColorModel
中的像素的数据元素数组表示,给出了默认RGB颜色模型中的整数像素表示。int
getGreen(int pixel)
返回指定像素的绿色分量,在默认RGBColorSpace
(sRGB)中从0到255。int
getGreen(Object inData)
返回指定像素的绿色分量,在默认RGBColorSpace
(sRGB)中从0到255。int
getGreenMask()
返回掩码,指示int
像素表示中的哪些位包含绿色分量。int
getRed(int pixel)
返回指定像素的红色分量,在默认RGBColorSpace
(sRGB)中从0到255。int
getRed(Object inData)
返回指定像素的红色分量,在默认RGBColorSpace
(sRGB)中从0到255。int
getRedMask()
返回掩码,指示int
像素表示中的哪些位包含红色分量。int
getRGB(int pixel)
以默认RGB颜色模型格式返回像素的颜色/ alpha分量。int
getRGB(Object inData)
以默认RGB颜色模型格式返回指定像素的颜色/ alpha分量。boolean
isCompatibleRaster(Raster raster)
如果raster
与ColorModel
和false
兼容,则返回true
。String
toString()
返回一个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,boolean
isAlphaPremultiplied
指定如何在像素值中解释颜色和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)
返回指定像素的绿色分量,在默认RGBColorSpace
sRGB中从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
。
-
-