- java.lang.Object
-
- java.awt.image.ColorModel
-
- java.awt.image.IndexColorModel
-
- All Implemented Interfaces:
-
Transparency
public class IndexColorModel extends ColorModel
IndexColorModel
类是一个ColorModel
类,适用于由单个样本组成的像素值,该样本是默认sRGB颜色空间中固定色彩映射的索引。 颜色映射指定对应于每个索引的红色,绿色,蓝色和可选的alpha组件。 所有组件在色彩映射中表示为8位无符号积分值。 一些构造函数允许调用者通过指定哪些色彩映射条目有效并且通过BigInteger
对象中设置的位来表示不可用的颜色来指定色彩映射中的“空洞”。 此颜色模型与X11 PseudoColor视觉相似。一些构造函数提供了指定色彩映射中每个像素的alpha分量的方法,而其他构造函数不提供这样的方法,或者在某些情况下提供一个标志来指示色彩映射数据是否包含alpha值。 如果没有向构造函数提供alpha,则会为每个条目假定使用不透明的alpha组件(alpha = 1.0)。 可以提供可选的透明像素值,其指示要完全透明的像素,而不管为该像素值提供或假设的任何α分量。 请注意,
IndexColorModel
对象的颜色映射中的颜色分量决不会与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
-
-
Field Summary
-
Fields inherited from class java.awt.image.ColorModel
pixel_bits, transferType
-
Fields inherited from interface java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
-
-
构造方法摘要
构造方法 Constructor 描述 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组件组成。
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 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
方法已被弃用。 为了执行清理,覆盖finalize
子类应被修改为使用替代的清理机制,并删除覆盖的finalize
方法。 当覆盖finalize
方法时,其实现必须明确地确保super.finalize()
被调用,如Object.finalize()
所述 。 有关迁移选项的更多信息,请参阅Object.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)
返回这个ColorModel
的一个像素的数据元素数组表示,给出一个非标准化颜色/ alpha分量的数组。Object
getDataElements(int rgb, Object pixel)
返回此ColorModel中的像素的数据元素数组表示,给出了默认RGB颜色模型中的整数像素表示。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()
如果没有alpha值为0的像素,则返回此IndexColorModel
中的透明像素的索引或-1。BigInteger
getValidPixels()
返回一个表示颜色映射中有效/无效像素的BigInteger
。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
表示。-
Methods inherited from class 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的非标准化(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归一化)的alpha分量,这意味着它们是完全不透明的,除了指示的像素被制成透明。 指定颜色分量的所有数组必须至少具有指定数量的条目。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
- 表示alpha值是否包含在cmap
数组中 - 异常
-
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
- 表示alpha值是否包含在cmap
数组中 -
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
- 表示alpha值是否包含在cmap
数组中 -
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
- aBigInteger
对象。 如果在BigInteger中设置了一个位,该索引处的像素是有效的。 如果未设置位,该索引处的像素被认为是无效的。 如果为空,则所有像素均为有效。 只考虑从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()
如果没有Alpha值为0的像素,则返回此IndexColorModel
中的透明像素的索引或-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)
返回此ColorModel中的像素的数据元素数组表示,给出了默认RGB颜色模型中的整数像素表示。 然后可以将该数组传递给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
- 要开始存储指定像素的颜色和alpha分量的components
数组中的索引 - 结果
- 一个数组,包含从指定的偏移开始的指定像素的颜色和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组件 - 结果
-
这个
int
像素值在这个ColorModel
对应的指定组件。 - 异常
-
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
。 每个索引值的源只有较低的n位Raster
,在指定的class description以上,用于计算返回的图像中的颜色/α值。 如果forceARGB
为true
,则返回TYPE_INT_ARGB图像,无论此ColorModel
是否具有Alpha组件数组或透明像素。- 参数
-
raster
- 指定的Raster
-
forceARGB
- 如果是true
,返回的BufferedImage
是TYPE_INT_ARGB; 否则为TYPE_INT_RGB - 结果
-
一个
BufferedImage
具有指定创建Raster
- 异常
-
IllegalArgumentException
- 如果栅格参数与此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
,表示BigInteger
中的有效/无效像素。 如果该索引处的BigInteger
值被设置,则该位有效,如果该索引处的BigInteger
值未设置,则该BigInteger
无效。 在BigInteger
中查询的唯一有效范围是0和地图大小之间。- 结果
-
一个表示有效/无效像素的
BigInteger
。 - 从以下版本开始:
- 1.3
-
finalize
@Deprecated(since="9") public void finalize()
已过时。finalize
方法已被弃用。 为了执行清理,覆盖finalize
子类应被修改为使用替代清理机制,并删除覆盖的finalize
方法。 当覆盖finalize
方法时,其实现必须明确地确保按照super.finalize()
中所述调用super.finalize() 。 有关迁移选项的更多信息,请参阅Object.finalize()
的规范。一旦这个ColorModel
不再被引用,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)
-
-