- java.lang.Object
-
- java.awt.image.ColorModel
-
- java.awt.image.IndexColorModel
-
- 实现的所有接口
-
Transparency
public class IndexColorModelextends ColorModel
IndexColorModel
类是一个ColorModel
类,它使用由单个样本组成的像素值,该样本是默认sRGB颜色空间中固定色彩映射的索引。 colormap指定与每个索引对应的红色,绿色,蓝色和可选alpha分量。 所有组件在色彩映射中表示为8位无符号整数值。 某些构造函数允许调用者通过指示哪些颜色映射条目有效以及哪些颜色映射条目通过BigInteger
对象中设置的位表示不可用的颜色来指定颜色映射中的“漏洞”。 此颜色模型类似于X11 PseudoColor视觉效果。一些构造函数提供了为colormap中的每个像素指定alpha分量的方法,而其他构造函数或者不提供这样的方法,或者在某些情况下,提供用于指示色彩映射数据是否包含alpha值的标记。 如果没有为构造函数提供alpha,则假定每个条目都使用不透明的alpha分量(alpha = 1.0)。 可以提供可选的透明像素值,其指示要使像素完全透明,而不管为该像素值提供或假设的任何alpha分量。 请注意,
IndexColorModel
对象的colormap中的颜色分量永远不会与alpha分量预先相乘。如果
IndexColorModel
对象的透明度值为Transparency.OPAQUE
,则hasAlpha
和getNumComponents
方法(均继承自ColorModel
)分别返回false和3。 对于任何其他透明度值,hasAlpha
返回true,getNumComponents
返回4。对于那些使用类型为
transferType
的基本数组像素表示的transferType
,数组长度始终为1。 支持的传输类型为DataBuffer.TYPE_BYTE
和DataBuffer.TYPE_USHORT
。 单个int像素表示对此类的所有对象都有效,因为始终可以在单个int中表示与此类一起使用的像素值。 因此,由于像素值无效,使用此表示的方法不会抛出IllegalArgumentException
。本课程中的许多方法都是最终的。 这样做的原因是底层的本机图形代码对这个类的布局和操作做出了假设,这些假设反映在这里标记为final的方法的实现中。 您可以出于其他原因对此类进行子类化,但不能覆盖或修改这些方法的行为。
- 另请参见:
-
ColorModel
,ColorSpace
,DataBuffer
-
-
字段汇总
-
声明的属性在类 java.awt.image.ColorModel
pixel_bits, transferType
-
Fields declared in interface java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
-
-
构造方法摘要
构造方法 构造器 描述 IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b)
根据指定的红色,绿色和蓝色组件数组构造IndexColorModel
。IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b, byte[] a)
根据给定的红色,绿色,蓝色和alpha分量数组构造IndexColorModel
。IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b, int trans)
从给定的红色,绿色和蓝色组件阵列构造IndexColorModel
。IndexColorModel(int bits, int size, byte[] cmap, int start, boolean hasalpha)
从单个交错的红色,绿色,蓝色和可选alpha分量阵列构造IndexColorModel
。IndexColorModel(int bits, int size, byte[] cmap, int start, boolean hasalpha, int trans)
从单个交错的红色,绿色,蓝色和可选alpha分量数组构造IndexColorModel
。IndexColorModel(int bits, int size, int[] cmap, int start, boolean hasalpha, int trans, int transferType)
从一组int构造一个IndexColorModel
,其中每个int由默认RGB颜色模型格式的红色,绿色,蓝色和可选alpha组件组成。IndexColorModel(int bits, int size, int[] cmap, int start, int transferType, BigInteger validBits)
从int
阵列构造IndexColorModel
,其中每个int
由默认RGB颜色模型格式的红色,绿色,蓝色和alpha分量组成。
-
方法摘要
所有方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 BufferedImage
convertToIntDiscrete(Raster raster, boolean forceARGB)
返回一个新BufferedImage
TYPE_INT_ARGB或TYPE_INT_RGB的具有Raster
通过展开源的索引来计算的与像素数据Raster
使用此的颜色/ alpha分量数组ColorModel
。SampleModel
createCompatibleSampleModel(int w, int h)
创建具有指定宽度和高度的SampleModel
,其数据布局与此ColorModel
兼容。WritableRaster
createCompatibleWritableRaster(int w, int h)
创建具有指定宽度和高度的WritableRaster
,其数据布局(SampleModel
)与此ColorModel
兼容。boolean
equals(Object obj)
如果指定的测试Object
是一个实例IndexColorModel
,以及它是否该IndexColorModel
void
finalize()
已过时。finalize
方法已被弃用。int
getAlpha(int pixel)
返回指定像素的alpha分量,从0到255缩放。void
getAlphas(byte[] a)
将Alpha透明度组件数组复制到指定的数组中。int
getBlue(int pixel)
返回指定像素的蓝色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。void
getBlues(byte[] b)
将蓝色组件数组复制到指定的数组中。int[]
getComponents(int pixel, int[] components, int offset)
返回此ColorModel
指定像素的非标准化颜色/ alpha分量ColorModel
。int[]
getComponents(Object pixel, int[] components, int offset)
返回此ColorModel
指定像素的非标准化颜色/ alpha分量ColorModel
。int[]
getComponentSize()
返回每个颜色/ alpha分量的位数数组。int
getDataElement(int[] components, int offset)
在给定一组非标准化颜色/ alpha分量的情况下,返回此ColorModel
表示为int的像素值。Object
getDataElements(int[] components, int offset, Object pixel)
在给定一组非标准化颜色/ alpha分量的情况下,返回此ColorModel
像素的数据元素数组表示。Object
getDataElements(int rgb, Object pixel)
给定默认RGB颜色模型中的整数像素表示,返回此ColorModel中像素的数据元素数组表示形式。int
getGreen(int pixel)
返回指定像素的绿色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。void
getGreens(byte[] g)
将绿色组件数组复制到指定的数组中。int
getMapSize()
返回此IndexColorModel
颜色/ alpha分量数组的IndexColorModel
。int
getRed(int pixel)
返回指定像素的红色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。void
getReds(byte[] r)
将红色组件数组复制到指定的数组中。int
getRGB(int pixel)
以默认RGB颜色模型格式返回像素的颜色/ alpha分量。void
getRGBs(int[] rgb)
将每个索引的数据从颜色和alpha组件数组转换为默认RGB ColorModel格式的int,并将生成的32位ARGB值复制到指定的数组中。int
getTransparency()
返回透明度。int
getTransparentPixel()
返回此IndexColorModel
透明像素的索引,如果没有alpha值为0的像素,则返回-1。BigInteger
getValidPixels()
返回BigInteger
,指示colormap中的有效/无效像素。int
hashCode()
返回IndexColorModel的哈希码。boolean
isCompatibleRaster(Raster raster)
返回true
如果raster
与此兼容ColorModel
或false
如果不是与此兼容ColorModel
。boolean
isCompatibleSampleModel(SampleModel sm)
检查指定的SampleModel
是否与此ColorModel
兼容。boolean
isValid()
返回所有像素是否有效。boolean
isValid(int pixel)
返回像素是否有效。String
toString()
返回此ColorModel
对象的内容的String
表示形式。-
声明方法的类 java.awt.image.ColorModel
coerceData, getAlpha, getAlphaRaster, getBlue, getColorSpace, getComponentSize, getDataElement, getDataElements, getGreen, getNormalizedComponents, getNormalizedComponents, getNumColorComponents, getNumComponents, getPixelSize, getRed, getRGB, getRGBdefault, getTransferType, getUnnormalizedComponents, hasAlpha, isAlphaPremultiplied
-
-
-
-
构造方法详细信息
-
IndexColorModel
public IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b)
根据指定的红色,绿色和蓝色组件数组构造IndexColorModel
。 此颜色模型描述的像素都具有255非标准化的alpha分量(1.0标准化),这意味着它们是完全不透明的。 指定颜色组件的所有数组必须至少具有指定数量的条目。ColorSpace
是默认的sRGB空间。 由于此构造函数的任何参数中都没有alpha信息,因此透明度值始终为Transparency.OPAQUE
。 传输类型是DataBuffer.TYPE_BYTE
或DataBuffer.TYPE_USHORT
中最小的,可以容纳单个像素。- 参数
-
bits
- 每个像素占用的位数 -
size
- 颜色分量数组的大小 -
r
- 红色组件的数组 -
g
- 绿色组件数组 -
b
- 蓝色组件数组 - 异常
-
IllegalArgumentException
- 如果bits
小于1或大于16 -
IllegalArgumentException
- 如果size
小于1
-
IndexColorModel
public IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b, int trans)
从给定的红色,绿色和蓝色组件阵列构造IndexColorModel
。 由该颜色模型描述的像素都具有255非标准化的α分量(1.0标准化),这意味着它们是完全不透明的,除了要使透明的指示像素。 指定颜色组件的所有数组必须至少具有指定数量的条目。ColorSpace
是默认的sRGB空间。 透明度值可以是Transparency.OPAQUE
或Transparency.BITMASK
具体取决于参数,如上面的class description中所述。 传输类型是DataBuffer.TYPE_BYTE
或DataBuffer.TYPE_USHORT
中可以容纳单个像素的最小值。- 参数
-
bits
- 每个像素占用的位数 -
size
- 颜色分量数组的大小 -
r
- 红色组件的数组 -
g
- 绿色组件数组 -
b
- 蓝色组件数组 -
trans
- 透明像素的索引 - 异常
-
IllegalArgumentException
- 如果bits
小于1或大于16 -
IllegalArgumentException
- 如果size
小于1
-
IndexColorModel
public IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b, byte[] a)
从给定的红色,绿色,蓝色和alpha分量数组构造IndexColorModel
。 指定组件的所有数组必须至少具有指定数量的条目。ColorSpace
是默认的sRGB空间。 透明度值可以是任何的Transparency.OPAQUE
,Transparency.BITMASK
,或Transparency.TRANSLUCENT
取决于参数,如在指定class description上方。 传输类型是DataBuffer.TYPE_BYTE
或DataBuffer.TYPE_USHORT
中可以容纳单个像素的最小值。- 参数
-
bits
- 每个像素占用的位数 -
size
- 颜色分量数组的大小 -
r
- 红色组件数组 -
g
- 绿色组件数组 -
b
- 蓝色组件的数组 -
a
- alpha值组件的数组 - 异常
-
IllegalArgumentException
- 如果bits
小于1或大于16 -
IllegalArgumentException
- 如果size
小于1
-
IndexColorModel
public IndexColorModel(int bits, int size, byte[] cmap, int start, boolean hasalpha)
从单个交错的红色,绿色,蓝色和可选alpha组件阵列构造IndexColorModel
。 该数组必须具有足够的值以填充指定大小的所有所需组件数组。ColorSpace
是默认的sRGB空间。 透明度值可以是任何的Transparency.OPAQUE
,Transparency.BITMASK
,或Transparency.TRANSLUCENT
取决于参数,如在指定class description上方。 传输类型是DataBuffer.TYPE_BYTE
或DataBuffer.TYPE_USHORT
中可以容纳单个像素的最小值。- 参数
-
bits
- 每个像素占用的位数 -
size
- 颜色分量数组的大小 -
cmap
- 颜色分量数组 -
start
- 第一个颜色分量的起始偏移量 -
hasalpha
- 指示cmap
阵列中是否包含alpha值 - 异常
-
IllegalArgumentException
- 如果bits
小于1或大于16 -
IllegalArgumentException
- 如果size
小于1
-
IndexColorModel
public IndexColorModel(int bits, int size, byte[] cmap, int start, boolean hasalpha, int trans)
从单个交错的红色,绿色,蓝色和可选alpha分量阵列构造IndexColorModel
。 指定的透明索引表示无论为其指定的任何alpha值,都完全透明的像素。 该数组必须具有足够的值以填充指定大小的所有所需组件数组。ColorSpace
是默认的sRGB空间。 透明度值可以是任何的Transparency.OPAQUE
,Transparency.BITMASK
,或Transparency.TRANSLUCENT
取决于参数,如在指定class description上方。 传输类型是DataBuffer.TYPE_BYTE
或DataBuffer.TYPE_USHORT
中可以容纳单个像素的最小值。- 参数
-
bits
- 每个像素占用的位数 -
size
- 颜色分量数组的大小 -
cmap
- 颜色分量数组 -
start
- 第一个颜色分量的起始偏移量 -
hasalpha
- 指示cmap
阵列中是否包含alpha值 -
trans
- 完全透明像素的索引 - 异常
-
IllegalArgumentException
- 如果bits
小于1或大于16 -
IllegalArgumentException
- 如果size
小于1
-
IndexColorModel
public IndexColorModel(int bits, int size, int[] cmap, int start, boolean hasalpha, int trans, int transferType)
从一组int构造一个IndexColorModel
,其中每个int由默认RGB颜色模型格式的红色,绿色,蓝色和可选alpha组件组成。 指定的透明索引表示无论为其指定的任何alpha值,都完全透明的像素。 该数组必须具有足够的值以填充指定大小的所有所需组件数组。ColorSpace
是默认的sRGB空间。 透明度值可以是任何的Transparency.OPAQUE
,Transparency.BITMASK
,或Transparency.TRANSLUCENT
取决于参数,如在指定class description上方。- 参数
-
bits
- 每个像素占用的位数 -
size
- 颜色分量数组的大小 -
cmap
- 颜色分量数组 -
start
- 第一个颜色分量的起始偏移量 -
hasalpha
- 指示cmap
阵列中是否包含alpha值 -
trans
- 完全透明像素的索引 -
transferType
- 用于表示像素值的数组的数据类型。 数据类型必须为DataBuffer.TYPE_BYTE
或DataBuffer.TYPE_USHORT
。 - 异常
-
IllegalArgumentException
- 如果bits
小于1或大于16 -
IllegalArgumentException
- 如果size
小于1 -
IllegalArgumentException
- 如果transferType
不是DataBuffer.TYPE_BYTE
或DataBuffer.TYPE_USHORT
-
IndexColorModel
public IndexColorModel(int bits, int size, int[] cmap, int start, int transferType, BigInteger validBits)
从int
阵列构造IndexColorModel
,其中每个int
由默认RGB颜色模型格式的红色,绿色,蓝色和alpha分量组成。 该数组必须具有足够的值以填充指定大小的所有所需组件数组。ColorSpace
是默认的sRGB空间。 透明度值可以是任何的Transparency.OPAQUE
,Transparency.BITMASK
,或Transparency.TRANSLUCENT
取决于参数,如在指定class description上方。 传输类型必须是DataBuffer.TYPE_BYTE
DataBuffer.TYPE_USHORT
。BigInteger
对象指定cmap
数组中的有效/无效像素。 如果设置了该索引处的BigInteger
值,则该像素有效;如果未设置该索引处的BigInteger
位,则该BigInteger
无效。- 参数
-
bits
- 每个像素占用的位数 -
size
- 颜色分量数组的大小 -
cmap
- 颜色分量数组 -
start
- 第一个颜色分量的起始偏移量 -
transferType
- 指定的数据类型 -
validBits
-BigInteger
对象。 如果在BigInteger中设置了一个位,则该索引处的像素有效。 如果未设置某个位,则该索引处的像素将被视为无效。 如果为null,则所有像素均有效。 仅考虑从0到地图大小的位。 - 异常
-
IllegalArgumentException
- 如果bits
小于1或大于16 -
IllegalArgumentException
- 如果size
小于1 -
IllegalArgumentException
- 如果transferType
不是DataBuffer.TYPE_BYTE
或DataBuffer.TYPE_USHORT
- 从以下版本开始:
- 1.3
-
-
方法详细信息
-
getTransparency
public int getTransparency()
返回透明度。 返回OPAQUE,BITMASK或TRANSLUCENT- Specified by:
-
getTransparency
,界面Transparency
- 重写:
-
getTransparency
类ColorModel
- 结果
-
IndexColorModel
的透明度 - 另请参见:
-
Transparency.OPAQUE
,Transparency.BITMASK
,Transparency.TRANSLUCENT
-
getComponentSize
public int[] getComponentSize()
返回每个颜色/ alpha分量的位数数组。 该数组包含红色,绿色,蓝色顺序的颜色分量,后跟alpha分量(如果存在)。- 重写:
-
getComponentSize
类ColorModel
- 结果
- 包含此
IndexColorModel
的每种颜色和alpha分量的IndexColorModel
-
getMapSize
public final int getMapSize()
返回此IndexColorModel
颜色/ alpha分量数组的IndexColorModel
。- 结果
- 颜色和alpha组件数组的大小。
-
getTransparentPixel
public final int getTransparentPixel()
返回此IndexColorModel
透明像素的索引,如果没有alpha值为0的像素,则返回-1。如果在其中一个构造函数中通过其索引显式指定了透明像素,则该索引将是首选,否则,可以返回恰好完全透明的任何像素的索引。- 结果
- 此
IndexColorModel
对象中透明像素的索引,如果没有此类像素,则为-1
-
getReds
public final void getReds(byte[] r)
将红色组件数组复制到指定的数组中。 仅写入由getMapSize
指定的数组的初始条目。- 参数
-
r
- 复制红色组件数组元素的指定数组
-
getGreens
public final void getGreens(byte[] g)
将绿色组件数组复制到指定的数组中。 仅写入由getMapSize
指定的数组的初始条目。- 参数
-
g
- 复制绿色组件数组元素的指定数组
-
getBlues
public final void getBlues(byte[] b)
将蓝色组件数组复制到指定的数组中。 仅写入由getMapSize
指定的数组的初始条目。- 参数
-
b
- 复制蓝色组件数组元素的指定数组
-
getAlphas
public final void getAlphas(byte[] a)
将Alpha透明度组件数组复制到指定的数组中。 仅写入由getMapSize
指定的数组的初始条目。- 参数
-
a
- 复制了alpha组件数组元素的指定数组
-
getRGBs
public final void getRGBs(int[] rgb)
将每个索引的数据从颜色和alpha组件数组转换为默认RGB ColorModel格式的int,并将生成的32位ARGB值复制到指定的数组中。 仅写入由getMapSize
指定的数组的初始条目。- 参数
-
rgb
- 指定的数组,其中复制了此颜色和alpha分量数组中转换的ARGB值。
-
getRed
public final int getRed(int pixel)
返回指定像素的红色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。 像素值指定为int。 只有像上面class description中指定的像素值的低n位用于计算返回值。 返回值是非预乘值。- Specified by:
-
getRed
类ColorModel
- 参数
-
pixel
- 指定的像素 - 结果
- 指定像素的红色分量的值
-
getGreen
public final int getGreen(int pixel)
返回指定像素的绿色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。 像素值指定为int。 只有像上面class description中指定的像素值的低n位用于计算返回值。 返回值是非预乘值。- Specified by:
-
getGreen
在类ColorModel
- 参数
-
pixel
- 指定的像素 - 结果
- 指定像素的绿色分量的值
-
getBlue
public final int getBlue(int pixel)
返回指定像素的蓝色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。 像素值指定为int。 只有像上面class description中指定的像素值的低n位用于计算返回值。 返回值是非预乘值。- Specified by:
-
getBlue
类ColorModel
- 参数
-
pixel
- 指定的像素 - 结果
- 指定像素的蓝色分量的值
-
getAlpha
public final int getAlpha(int pixel)
返回指定像素的alpha分量,从0到255缩放。像素值指定为int。 只有像上面class description中指定的像素值的低n位用于计算返回值。- Specified by:
-
getAlpha
类ColorModel
- 参数
-
pixel
- 指定的像素 - 结果
- 指定像素的alpha分量的值
-
getRGB
public final int getRGB(int pixel)
- 重写:
-
getRGB
类ColorModel
- 参数
-
pixel
- 指定的像素 - 结果
- 指定像素的颜色和alpha分量
- 另请参见:
-
ColorModel.getRGBdefault()
-
getDataElements
public Object getDataElements(int rgb, Object pixel)
给定默认RGB颜色模型中的整数像素表示,返回此ColorModel中像素的数据元素数组表示形式。 然后可以将此数组传递给WritableRaster
对象的setDataElements
方法。 如果像素变量为null
,则分配新数组。 如果pixel
不是null
,则它必须是类型为transferType
的基本数组; 否则,抛出ClassCastException
。 一个ArrayIndexOutOfBoundsException
如果抛出pixel
不够大,不能保存这个像素值ColorModel
。 返回像素阵列。由于
IndexColorModel
可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,则如果它们使用不受支持的transferType
,则会抛出异常。- 重写:
-
getDataElements
类ColorModel
- 参数
-
rgb
- 默认RGB颜色模型中的整数像素表示 -
pixel
- 指定的像素 - 结果
- 此
IndexColorModel
指定像素的数组表示IndexColorModel
。 - 异常
-
ClassCastException
- 如果pixel
不是类型transferType
的基本数组 -
ArrayIndexOutOfBoundsException
- 如果pixel
不足以容纳此ColorModel
的像素值 -
UnsupportedOperationException
- 如果transferType
无效 - 另请参见:
-
WritableRaster.setDataElements(int, int, java.lang.Object)
,SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
-
getComponents
public int[] getComponents(int pixel, int[] components, int offset)
返回此ColorModel
指定像素的非标准化颜色/ alpha分量ColorModel
。 像素值指定为int。 如果components
数组是null
,则分配一个包含offset + getNumComponents()
元素的新数组。 返回components
数组,仅当hasAlpha
返回true时才包含alpha分量。 颜色/ alpha分量存储在components
数组中,从offset
开始,即使数组是通过此方法分配的。 一个ArrayIndexOutOfBoundsException
如果抛出components
数组不null
并没有大到足以容纳所有开始在颜色和alpha分量offset
。- 重写:
-
getComponents
在课程ColorModel
- 参数
-
pixel
- 指定的像素 -
components
- 用于接收指定像素的颜色和alpha分量的数组 -
offset
- 进入components
数组的偏移量,开始存储颜色和alpha分量 - 结果
- 一个数组,包含从指定偏移量开始的指定像素的颜色和alpha分量。
- 另请参见:
-
ColorModel.hasAlpha()
,ColorModel.getNumComponents()
-
getComponents
public int[] getComponents(Object pixel, int[] components, int offset)
返回此ColorModel
指定像素的非标准化颜色/ alpha分量ColorModel
。 像素值由作为对象引用传入的类型为transferType
的数据元素数组指定。 如果pixel
不是类型为transferType
的基本数组,则抛出ClassCastException
。 一个ArrayIndexOutOfBoundsException
如果抛出pixel
不够大,不能保存这个像素值ColorModel
。 如果components
数组是null
,则分配一个包含offset + getNumComponents()
元素的新数组。 返回components
数组,仅当hasAlpha
返回true时才包含alpha分量。 颜色/ alpha分量存储在components
数组中,从offset
开始,即使数组是通过此方法分配的。 一个ArrayIndexOutOfBoundsException
如果也抛出components
数组不null
并没有大到足以容纳所有开始在颜色和alpha分量offset
。由于
IndexColorModel
可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,则如果它们使用不受支持的transferType
,则会抛出异常。- 重写:
-
getComponents
类ColorModel
- 参数
-
pixel
- 指定的像素 -
components
- 接收指定像素的颜色和alpha分量的数组 -
offset
- 进入components
数组的索引,开始存储指定像素的颜色和alpha分量 - 结果
- 一个数组,包含从指定偏移量开始的指定像素的颜色和alpha分量。
- 异常
-
ArrayIndexOutOfBoundsException
- 如果pixel
不足以容纳此ColorModel
的像素值或者如果components
阵列不是null
并且不足以容纳从offset
开始的所有颜色和alpha分量 -
ClassCastException
- 如果pixel
不是类型为transferType
的基本数组 -
UnsupportedOperationException
- 如果transferType
不是受支持的传输类型之一 - 另请参见:
-
ColorModel.hasAlpha()
,ColorModel.getNumComponents()
-
getDataElement
public int getDataElement(int[] components, int offset)
在给定一组非标准化颜色/ alpha分量的情况下,返回此ColorModel
表示为int的像素值。 一个ArrayIndexOutOfBoundsException
如果抛出components
阵列是不是大到足以容纳所有的颜色和alpha分量的开始offset
。 由于ColorModel
可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,则如果它们使用不受支持的transferType,则会抛出异常。- 重写:
-
getDataElement
类ColorModel
- 参数
-
components
- 非标准化颜色和alpha分量的数组 -
offset
-索引为components
,从此处开始检索颜色和alpha分量 - 结果
- 此
ColorModel
的int
像素值对应于指定的组件。 - 异常
-
ArrayIndexOutOfBoundsException
- 如果components
数组不足以容纳从offset
开始的所有颜色和alpha分量 -
UnsupportedOperationException
- 如果transferType
无效
-
getDataElements
public Object getDataElements(int[] components, int offset, Object pixel)
在给定一组非标准化颜色/ alpha分量的情况下,返回此ColorModel
像素的数据元素数组表示。 然后可以将此数组传递给WritableRaster
对象的setDataElements
方法。 一个ArrayIndexOutOfBoundsException
如果抛出components
阵列是不是大到足以容纳所有的颜色和alpha分量的开始offset
。 如果像素变量为null
,则分配新数组。 如果pixel
不是null
,则它必须是类型为transferType
的基本数组; 否则,抛出ClassCastException
。 一个ArrayIndexOutOfBoundsException
如果pixel不是特别大,不能保存此像素值抛出ColorModel
。由于
IndexColorModel
可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,那么如果它们使用不受支持的transferType
它们会抛出异常- 重写:
-
getDataElements
类ColorModel
- 参数
-
components
- 非标准化颜色和alpha分量的数组 -
offset
-索引为components
在开始检索颜色和alpha分量 -
pixel
-Object
表示颜色和alpha分量的数组 - 结果
-
Object
表示颜色和alpha分量的数组。 - 异常
-
ClassCastException
- 如果pixel
不是类型transferType
的原始数组 -
ArrayIndexOutOfBoundsException
- 如果pixel
不足以容纳此ColorModel
的像素值,或者components
数组不足以容纳从offset
开始的所有颜色和alpha分量 -
UnsupportedOperationException
- 如果transferType
不是受支持的传输类型之一 - 另请参见:
-
WritableRaster.setDataElements(int, int, java.lang.Object)
,SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
-
createCompatibleWritableRaster
public WritableRaster createCompatibleWritableRaster(int w, int h)
创建具有指定宽度和高度的WritableRaster
,其数据布局(SampleModel
)与此ColorModel
兼容。 此方法仅适用于每像素16位或更少位的颜色模型。由于
IndexColorModel
可以是子类,因此任何支持每像素大于16位的子类都必须覆盖此方法。- 重写:
-
createCompatibleWritableRaster
在类ColorModel
- 参数
-
w
- 要应用于新WritableRaster
的宽度 -
h
- 要应用于新WritableRaster
的高度 - 结果
- 具有指定宽度和高度的
WritableRaster
对象。 - 异常
-
UnsupportedOperationException
- 如果像素中的位数大于16 - 另请参见:
-
WritableRaster
,SampleModel
-
isCompatibleRaster
public boolean isCompatibleRaster(Raster raster)
返回true
如果raster
与此兼容ColorModel
或false
如果不是与此兼容ColorModel
。- 重写:
-
isCompatibleRaster
类ColorModel
- 参数
-
raster
- 要测试兼容性的Raster
对象 - 结果
-
true
如果raster
与此ColorModel
兼容; 否则为false
。
-
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
创建具有指定宽度和高度的SampleModel
,其数据布局与此ColorModel
兼容。- 重写:
-
createCompatibleSampleModel
在类ColorModel
- 参数
-
w
- 要应用于新SampleModel
的宽度 -
h
- 要应用于新SampleModel
的高度 - 结果
- 具有指定宽度和高度的
SampleModel
对象。 - 异常
-
IllegalArgumentException
- 如果w
或h
不大于0 - 另请参见:
-
SampleModel
-
isCompatibleSampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
检查指定的SampleModel
是否与此ColorModel
兼容。 如果sm
是null
,则此方法返回false
。- 重写:
-
isCompatibleSampleModel
在课程ColorModel
- 参数
-
sm
- 指定的SampleModel
或null
- 结果
-
true
若指定的SampleModel
与此ColorModel
兼容; 否则为false
。 - 另请参见:
-
SampleModel
-
convertToIntDiscrete
public BufferedImage convertToIntDiscrete(Raster raster, boolean forceARGB)
返回一个新BufferedImage
TYPE_INT_ARGB或TYPE_INT_RGB的具有Raster
通过展开源的索引来计算的与像素数据Raster
使用此的颜色/ alpha分量数组ColorModel
。 只有源Raster
中每个索引值的低n位(如上面的class description中所指定)用于计算返回图像中的颜色/ alpha值。 如果forceARGB
是true
,则返回TYPE_INT_ARGB图像,无论此ColorModel
是否具有alpha分量数组或透明像素。- 参数
-
raster
- 指定的Raster
-
forceARGB
- 如果是true
,则返回的BufferedImage
是TYPE_INT_ARGB; 否则是TYPE_INT_RGB - 结果
- 一个
BufferedImage
带有指定创建Raster
- 异常
-
IllegalArgumentException
- 如果raster参数与此IndexColorModel不兼容
-
isValid
public boolean isValid(int pixel)
返回像素是否有效。- 参数
-
pixel
- 指定的像素值 - 结果
-
true
如果pixel
有效; 否则为false
。 - 从以下版本开始:
- 1.3
-
isValid
public boolean isValid()
返回所有像素是否有效。- 结果
-
true
如果所有像素都有效; 否则为false
。 - 从以下版本开始:
- 1.3
-
getValidPixels
public BigInteger getValidPixels()
返回BigInteger
,指示colormap中的有效/无效像素。 如果设置了该索引处的BigInteger
值,则该位有效;如果未设置该索引处的BigInteger
值,则该BigInteger
无效。 要在BigInteger
中查询的唯一有效范围介于0和地图大小之间。- 结果
- a
BigInteger
指示有效/无效像素。 - 从以下版本开始:
- 1.3
-
finalize
@Deprecated(since="9")public void finalize()
Deprecated.Thefinalize
method has been deprecated. Subclasses that overridefinalize
in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overridingfinalize
method. When overriding thefinalize
method, its implementation must explicitly ensure thatsuper.finalize()
is invoked as described inObject.finalize()
. See the specification forObject.finalize()
for further information about migration options.一旦此ColorModel
不再被引用,则处置与此ColorModel
相关的系统资源。- 重写:
-
finalize
类ColorModel
- 另请参见:
-
WeakReference
,PhantomReference
-
toString
public String toString()
返回此ColorModel
对象的内容的String
表示形式。- 重写:
-
toString
在类ColorModel
- 结果
-
String
表示此ColorModel
对象的内容。
-
equals
public boolean equals(Object obj)
如果指定的测试Object
是一个实例IndexColorModel
,以及它是否该IndexColorModel
- 重写:
-
equals
,类ColorModel
- 参数
-
obj
- 用于测试相等性的Object
- 结果
-
true
如果指定的Object
于此IndexColorModel
; 否则为false
。 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回IndexColorModel的哈希码。- 重写:
-
hashCode
类ColorModel
- 结果
- IndexColorModel的哈希码
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-