- java.lang.Object
-
- java.awt.image.ColorModel
-
- java.awt.image.IndexColorModel
-
- 实现的所有接口
-
Transparency
public class IndexColorModel extends 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分量组成。
-
方法摘要
所有方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 BufferedImageconvertToIntDiscrete(Raster raster, boolean forceARGB)返回一个新BufferedImageTYPE_INT_ARGB或TYPE_INT_RGB的具有Raster通过展开源的索引来计算的与像素数据Raster使用此的颜色/ alpha分量数组ColorModel。SampleModelcreateCompatibleSampleModel(int w, int h)创建具有指定宽度和高度的SampleModel,其数据布局与此ColorModel兼容。WritableRastercreateCompatibleWritableRaster(int w, int h)创建具有指定宽度和高度的WritableRaster,其数据布局(SampleModel)与此ColorModel兼容。booleanequals(Object obj)如果指定的测试Object是一个实例IndexColorModel,以及它是否该IndexColorModelvoidfinalize()已过时。finalize方法已被弃用。intgetAlpha(int pixel)返回指定像素的alpha分量,从0到255缩放。voidgetAlphas(byte[] a)将Alpha透明度组件数组复制到指定的数组中。intgetBlue(int pixel)返回指定像素的蓝色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。voidgetBlues(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分量的位数数组。intgetDataElement(int[] components, int offset)在给定一组非标准化颜色/ alpha分量的情况下,返回此ColorModel表示为int的像素值。ObjectgetDataElements(int[] components, int offset, Object pixel)在给定一组非标准化颜色/ alpha分量的情况下,返回此ColorModel像素的数据元素数组表示。ObjectgetDataElements(int rgb, Object pixel)给定默认RGB颜色模型中的整数像素表示,返回此ColorModel中像素的数据元素数组表示形式。intgetGreen(int pixel)返回指定像素的绿色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。voidgetGreens(byte[] g)将绿色组件数组复制到指定的数组中。intgetMapSize()返回此IndexColorModel颜色/ alpha分量数组的IndexColorModel。intgetRed(int pixel)返回指定像素的红色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。voidgetReds(byte[] r)将红色组件数组复制到指定的数组中。intgetRGB(int pixel)以默认RGB颜色模型格式返回像素的颜色/ alpha分量。voidgetRGBs(int[] rgb)将每个索引的数据从颜色和alpha组件数组转换为默认RGB ColorModel格式的int,并将生成的32位ARGB值复制到指定的数组中。intgetTransparency()返回透明度。intgetTransparentPixel()返回此IndexColorModel透明像素的索引,如果没有alpha值为0的像素,则返回-1。BigIntegergetValidPixels()返回BigInteger,指示colormap中的有效/无效像素。inthashCode()返回IndexColorModel的哈希码。booleanisCompatibleRaster(Raster raster)返回true如果raster与此兼容ColorModel或false如果不是与此兼容ColorModel。booleanisCompatibleSampleModel(SampleModel sm)检查指定的SampleModel是否与此ColorModel兼容。booleanisValid()返回所有像素是否有效。booleanisValid(int pixel)返回像素是否有效。StringtoString()返回此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_BYTEDataBuffer.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)
返回一个新BufferedImageTYPE_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.Thefinalizemethod has been deprecated. Subclasses that overridefinalizein order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overridingfinalizemethod. When overriding thefinalizemethod, 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)
-
-