- 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 方法 描述 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方法已被弃用。 为了执行清理,覆盖finalize子类应被修改为使用替代的清理机制,并删除覆盖的finalize方法。 当覆盖finalize方法时,其实现必须明确地确保super.finalize()被调用,如Object.finalize()所述 。 有关迁移选项的更多信息,请参阅Object.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)返回这个ColorModel的一个像素的数据元素数组表示,给出一个非标准化颜色/ alpha分量的数组。ObjectgetDataElements(int rgb, Object pixel)返回此ColorModel中的像素的数据元素数组表示,给出了默认RGB颜色模型中的整数像素表示。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()如果没有alpha值为0的像素,则返回此IndexColorModel中的透明像素的索引或-1。BigIntegergetValidPixels()返回一个表示颜色映射中有效/无效像素的BigInteger。inthashCode()返回IndexColorModel的哈希码。booleanisCompatibleRaster(Raster raster)返回true如果raster与此兼容ColorModel或者false如果不是与此兼容ColorModel。booleanisCompatibleSampleModel(SampleModel sm)检查指定的SampleModel是否与此ColorModel兼容。booleanisValid()返回所有像素是否有效。booleanisValid(int pixel)返回像素是否有效。StringtoString()返回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_BYTEDataBuffer.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,它们将抛出异常。- 重写:
-
getDataElementColorModel - 参数
-
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)
返回一个新BufferedImageTYPE_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)
-
-