- 所有已实现的接口:
-
透明度
IndexColorModel类是一个与像素值一起工作的ColorModel类,该像素值由单个样本组成,该样本是默认sRGB颜色空间中固定颜色映射表中的索引。颜色映射表指定了与每个索引对应的红色、绿色、蓝色和可选的alpha分量。所有分量在颜色映射表中都表示为8位无符号整数值。一些构造函数允许调用者通过指示在BigInteger对象中设置的位来指定颜色映射表中哪些颜色映射是有效的,哪些代表不可用的颜色。这种颜色模型类似于X11伪彩色视觉效果。
一些构造函数提供了一种方法,用于为颜色映射表中的每个像素指定一个alpha分量,而其他构造函数要么不提供这种方法,要么在某些情况下提供一个标志,指示颜色映射数据是否包含alpha值。如果构造函数没有提供alpha,则假定每个条目的alpha分量为不透明(alpha = 1.0)。可以提供一个可选的透明像素值,该值指示要使其完全透明的像素,而不考虑为该像素值提供或假定的任何alpha分量。请注意,IndexColorModel对象的颜色映射表中的颜色分量永远不会与alpha分量预先相乘。
如果IndexColorModel对象的透明度值为Transparency.OPAQUE,则hasAlpha和getNumComponents方法(都是从ColorModel继承的)分别返回false和3。对于任何其他透明度值,hasAlpha返回true,getNumComponents返回4。
对于那些使用transferType类型的原始数组像素表示的方法,数组长度始终为1。支持的传输类型为DataBuffer.TYPE_BYTE和DataBuffer.TYPE_USHORT。单个int像素表示对于此类的所有对象都是有效的,因为始终可以用单个int表示与此类一起使用的像素值。因此,使用此表示的方法不会因为无效的像素值而抛出IllegalArgumentException。
此类中的许多方法都是final的。这样做的原因是底层的本机图形代码对这个类的布局和操作做出了假设,这些假设反映在这里标记为final的方法的实现中。您可以为其他原因对此类进行子类化,但不能覆盖或修改这些方法的行为。
- 参见:
-
Field Summary
Fields declared in class java.awt.image.ColorModel
pixel_bits, transferTypeFields declared in interface java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT -
Constructor Summary
ConstructorsConstructorDescriptionIndexColorModel(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分量组成。 -
Method Summary
Modifier and TypeMethodDescriptionconvertToIntDiscrete(Raster raster, boolean forceARGB) 返回一个新的BufferedImage,其类型为TYPE_INT_ARGB或TYPE_INT_RGB,其Raster使用此ColorModel的颜色/alpha分量数组扩展源Raster中的索引计算像素数据。createCompatibleSampleModel(int w, int h) 创建一个具有指定宽度和高度的SampleModel,其数据布局与此ColorModel兼容。createCompatibleWritableRaster(int w, int h) 创建一个具有指定宽度和高度的WritableRaster,其数据布局(SampleModel)与此ColorModel兼容。boolean检查指定的Object是否是IndexColorModel的实例,并且是否等于此IndexColorModel。final intgetAlpha(int pixel) 返回指定像素的alpha分量,从0到255进行缩放。final voidgetAlphas(byte[] a) 将alpha透明度分量数组复制到指定的数组中。final intgetBlue(int pixel) 返回指定像素的蓝色分量,在默认RGB ColorSpace sRGB中从0到255进行缩放。final voidgetBlues(byte[] b) 将蓝色分量数组复制到指定的数组中。int[]getComponents(int pixel, int[] components, int offset) 返回此ColorModel中指定像素的未归一化颜色/alpha分量数组。int[]getComponents(Object pixel, int[] components, int offset) 返回此ColorModel中指定像素的未归一化颜色/alpha分量数组。int[]返回每个颜色/alpha分量的位数数组。intgetDataElement(int[] components, int offset) 给定一组未归一化的颜色/alpha分量数组,返回此ColorModel中表示为int的像素值。getDataElements(int[] components, int offset, Object pixel) 给定一组未归一化的颜色/alpha分量数组,返回此ColorModel中表示为数据元素数组的像素。getDataElements(int rgb, Object pixel) 给定默认RGB颜色模型中的整数像素表示,返回此ColorModel中像素的数据元素数组表示。final intgetGreen(int pixel) 返回指定像素的绿色分量,在默认RGB ColorSpace sRGB中从0到255进行缩放。final voidgetGreens(byte[] g) 将绿色分量数组复制到指定的数组中。final int返回此IndexColorModel中颜色/alpha分量数组的大小。final intgetRed(int pixel) 返回指定像素的红色分量,在默认RGB ColorSpace sRGB中从0到255进行缩放。final voidgetReds(byte[] r) 将红色分量数组复制到指定的数组中。final intgetRGB(int pixel) 返回默认RGB颜色模型格式中像素的颜色/alpha分量。final voidgetRGBs(int[] rgb) 将颜色和alpha分量数组中的每个索引的数据转换为默认RGB ColorModel格式中的int,并将生成的32位ARGB值复制到指定的数组中。int返回透明度。final int返回此IndexColorModel中透明像素的索引,如果没有alpha值为0的像素,则返回-1。返回指示颜色映射表中有效/无效像素的BigInteger。inthashCode()返回IndexColorModel的哈希码。booleanisCompatibleRaster(Raster raster) 如果raster与此ColorModel兼容,则返回true,否则返回false。boolean检查指定的SampleModel是否与此ColorModel兼容。booleanisValid()返回所有像素是否都有效。booleanisValid(int pixel) 返回像素是否有效。toString()返回此ColorModel对象内容的String表示形式。Methods declared in 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
-
Constructor Details
-
IndexColorModel
public IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b) 从指定的红色、绿色和蓝色分量数组构造一个IndexColorModel。由此颜色模型描述的像素都具有未归一化的alpha分量255(1.0标准化),这意味着它们是完全不透明的。指定颜色分量的所有数组必须至少具有指定数量的条目。颜色空间是默认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。由该颜色模型描述的像素的alpha分量都是未归一化的255(1.0归一化),这意味着它们是完全不透明的,除了要设置为透明的指定像素。所有指定颜色分量的数组必须至少具有指定数量的条目。ColorSpace是默认的sRGB空间。透明度值可以是Transparency.OPAQUE或Transparency.BITMASK,具体取决于参数,如上述类描述中所述。传输类型是可以容纳单个像素的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中的任意一个,具体取决于参数,如上述类描述中所述。传输类型是可以容纳单个像素的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中的任意一个,具体取决于参数,如上述类描述中所述。传输类型是可以容纳单个像素的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中的任意一个,具体取决于参数,如上述类描述中所述。传输类型是可以容纳单个像素的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) 从一个包含红色、绿色、蓝色和可选alpha分量的int数组构造一个IndexColorModel,每个int都采用默认RGB颜色模型格式。指定的透明索引表示一个像素,无论为其指定的任何alpha值,都将完全透明。数组必须具有足够的值来填充指定大小的所有所需组件数组。ColorSpace是默认的sRGB空间。透明度值可以是Transparency.OPAQUE、Transparency.BITMASK或Transparency.TRANSLUCENT中的任意一个,具体取决于参数,如上述类描述中所述。- 参数:
-
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都由红色、绿色、蓝色和alpha分量组成,采用默认的RGB颜色模型格式。数组必须具有足够的值来填充指定大小的所有所需组件数组。ColorSpace是默认的sRGB空间。透明度值可以是Transparency.OPAQUE、Transparency.BITMASK或Transparency.TRANSLUCENT中的任意一个,具体取决于参数,如上述类描述中所述。传输类型必须是DataBuffer.TYPE_BYTE或DataBuffer.TYPE_USHORT之一。BigInteger对象指定了cmap数组中的有效/无效像素。如果在该索引处的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
-
-
Method Details
-
getTransparency
public int getTransparency()返回透明度。返回OPAQUE、BITMASK或TRANSLUCENT中的一个- 指定由:
-
getTransparency在接口Transparency中 - 覆盖:
-
getTransparency在类ColorModel中 - 返回:
-
此
IndexColorModel的透明度 - 参见:
-
getComponentSize
public int[] getComponentSize()返回每个颜色/alpha组件的位数数组。数组按照红色、绿色、蓝色的顺序排列,然后是alpha组件(如果存在)。- 覆盖:
-
getComponentSize在类ColorModel中 - 返回:
-
包含此
IndexColorModel的每个颜色和alpha组件的位数的数组
-
getMapSize
public final int getMapSize()返回此IndexColorModel中颜色/alpha组件数组的大小。- 返回:
- 颜色和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的0到255进行缩放。像素值以int形式指定。仅使用像素值的较低n位(如上述类描述中指定的)来计算返回值。返回值是非预乘值。- 指定由:
-
getRed在类ColorModel中 - 参数:
-
pixel- 指定的像素 - 返回:
- 指定像素的红色颜色组件的值
-
getGreen
public final int getGreen(int pixel) 返回指定像素的绿色颜色组件,从默认RGB ColorSpace的0到255进行缩放。像素值以int形式指定。仅使用像素值的较低n位(如上述类描述中指定的)来计算返回值。返回值是非预乘值。- 指定由:
-
getGreen在类ColorModel中 - 参数:
-
pixel- 指定的像素 - 返回:
- 指定像素的绿色颜色组件的值
-
getBlue
public final int getBlue(int pixel) 返回指定像素的蓝色颜色组件,从默认RGB ColorSpace的0到255进行缩放。像素值以int形式指定。仅使用像素值的较低n位(如上述类描述中指定的)来计算返回值。返回值是非预乘值。- 指定由:
-
getBlue在类ColorModel中 - 参数:
-
pixel- 指定的像素 - 返回:
- 指定像素的蓝色颜色组件的值
-
getAlpha
public final int getAlpha(int pixel) 返回指定像素的alpha组件,从0到255进行缩放。像素值以int形式指定。仅使用像素值的较低n位(如上述类描述中指定的)来计算返回值。- 指定由:
-
getAlpha在类ColorModel中 - 参数:
-
pixel- 指定的像素 - 返回:
- 指定像素的alpha组件的值
-
getRGB
public final int getRGB(int pixel) 返回默认RGB颜色模型格式中像素的颜色/alpha组件。像素值以int形式指定。仅使用像素值的较低n位(如上述类描述中指定的)来计算返回值。返回值是非预乘格式。- 覆盖:
-
getRGB在类ColorModel中 - 参数:
-
pixel- 默认RGB颜色模型中的整数像素表示 - 返回:
-
指定像素在此
IndexColorModel中的数组表示 - 参见:
-
getDataElements
返回此ColorModel中像素的数据元素数组表示,给定默认RGB颜色模型中的整数像素表示。然后可以将此数组传递给WritableRaster对象的setDataElements方法。如果像素变量为null,则会分配一个新数组。如果pixel不为null,它必须是transferType类型的原始数组;否则,将抛出ClassCastException。如果pixel不足以容纳此ColorModel的像素值,则会抛出ArrayIndexOutOfBoundsException。返回像素数组。由于
IndexColorModel可以被子类化,子类会继承此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType时会抛出异常。- 覆盖:
-
getDataElements在类ColorModel中 - 参数:
-
rgb- 默认RGB颜色模型中的整数像素表示 -
pixel- 指定的像素 - 返回:
-
此
IndexColorModel中指定像素的数组表示 - 抛出:
-
ClassCastException- 如果pixel不是transferType类型的原始数组 -
ArrayIndexOutOfBoundsException- 如果pixel不足以容纳此ColorModel的像素值 -
UnsupportedOperationException- 如果transferType无效 - 参见:
-
getComponents
public int[] getComponents(int pixel, int[] components, int offset) 返回此ColorModel中指定像素的未标准化颜色/alpha组件的数组。像素值以int形式指定。如果components数组为null,则会分配一个包含offset + getNumComponents()个元素的新数组。返回components数组,仅当hasAlpha返回true时才包括alpha组件。即使由此方法分配数组,颜色/alpha组件也会从offset开始存储在components数组中。如果components数组不为null且不足以容纳从offset开始的所有颜色和alpha组件,则会抛出ArrayIndexOutOfBoundsException异常。- 覆盖:
-
getComponents在类中ColorModel - 参数:
-
pixel- 指定的像素 -
components- 用于接收指定像素的颜色和alpha组件的数组 -
offset- 开始存储颜色和alpha组件的components数组中的偏移量 - 返回:
- 包含从指定偏移量开始的指定像素的颜色和alpha组件的数组。
- 参见:
-
getComponents
返回此ColorModel中指定像素的未标准化颜色/alpha组件的数组。像素值由作为对象引用传入的transferType类型的数据元素数组指定。如果pixel不是transferType类型的原始数组,则会抛出ClassCastException异常。如果pixel不足以容纳此ColorModel的像素值,则会抛出ArrayIndexOutOfBoundsException异常。如果components数组为null,则会分配一个包含offset + getNumComponents()个元素的新数组。返回components数组,仅当hasAlpha返回true时才包括alpha组件。即使由此方法分配数组,颜色/alpha组件也会从offset开始存储在components数组中。如果components数组不足以容纳从offset开始的所有颜色和alpha组件,则还会抛出ArrayIndexOutOfBoundsException异常。由于
IndexColorModel可以被子类化,子类会继承此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType时会抛出异常。- 覆盖:
-
getComponents在类中ColorModel - 参数:
-
pixel- 指定的像素 -
components- 用于接收指定像素的颜色和alpha组件的数组 -
offset- 开始存储指定像素的颜色和alpha组件的components数组中的索引 - 返回:
- 包含从指定偏移量开始的指定像素的颜色和alpha组件的数组。
- 抛出:
-
ArrayIndexOutOfBoundsException- 如果pixel不足以容纳此ColorModel的像素值,或者components数组不为null且不足以容纳从offset开始的所有颜色和alpha组件 -
ClassCastException- 如果pixel不是transferType类型的原始数组 -
UnsupportedOperationException- 如果transferType不是受支持的传输类型之一 - 参见:
-
getDataElement
public int getDataElement(int[] components, int offset) 返回此ColorModel中以int形式表示的像素值,给定一个未标准化颜色/alpha组件的数组。如果components数组不足以容纳从offset开始的所有颜色和alpha组件,则会抛出ArrayIndexOutOfBoundsException异常。由于ColorModel可以被子类化,子类会继承此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType时会抛出异常。- 覆盖:
-
getDataElement在类中ColorModel - 参数:
-
components- 未标准化颜色和alpha组件的数组 -
offset- 开始检索颜色和alpha组件的components中的索引 - 返回:
-
在此
ColorModel中对应于指定组件的int像素值。 - 抛出:
-
ArrayIndexOutOfBoundsException- 如果components数组不足以容纳从offset开始的所有颜色和alpha组件 -
UnsupportedOperationException- 如果transferType无效
-
getDataElements
返回此ColorModel中像素的数据元素数组表示,给定一个未标准化颜色/alpha组件的数组。然后可以将此数组传递给WritableRaster对象的setDataElements方法。如果components数组不足以容纳从offset开始的所有颜色和alpha组件,则会抛出ArrayIndexOutOfBoundsException异常。如果像素变量为null,则会分配一个新数组。如果pixel不为null,则它必须是transferType类型的原始数组;否则,会抛出ClassCastException异常。如果像素不足以容纳此ColorModel的像素值,则会抛出ArrayIndexOutOfBoundsException异常。由于
IndexColorModel可以被子类化,子类会继承此方法的实现,如果它们不覆盖它,则在使用不受支持的transferType时会抛出异常。- 覆盖:
-
getDataElements在类中ColorModel - 参数:
-
components- 未标准化颜色和alpha组件的数组 -
offset- 开始检索颜色和alpha组件的components中的索引 -
pixel- 表示颜色和alpha组件数组的Object - 返回:
-
表示颜色和alpha组件数组的
Object。 - 抛出:
-
ClassCastException- 如果pixel不是transferType类型的原始数组 -
ArrayIndexOutOfBoundsException- 如果pixel不足以容纳此ColorModel的像素值,或者components数组不足以容纳从offset开始的所有颜色和alpha组件 -
UnsupportedOperationException- 如果transferType不是受支持的传输类型之一 - 参见:
-
createCompatibleWritableRaster
创建一个具有指定宽度和高度的WritableRaster,其数据布局(SampleModel)与此ColorModel兼容。此方法仅适用于每像素16位或更少的颜色模型。由于
IndexColorModel可以被子类化,任何支持大于16位每像素的子类必须覆盖此方法。- 覆盖:
-
createCompatibleWritableRaster在类中ColorModel - 参数:
-
w- 应用于新WritableRaster的宽度 -
h- 应用于新WritableRaster的高度 - 返回:
-
具有指定宽度和高度的
WritableRaster对象。 - 抛出:
-
UnsupportedOperationException- 如果每像素的位数大于16 - 参见:
-
isCompatibleRaster
如果raster与此ColorModel兼容,则返回true;如果不兼容,则返回false。- 覆盖:
-
isCompatibleRaster在类ColorModel中 - 参数:
-
raster- 要测试兼容性的Raster对象 - 返回:
-
如果
raster与此ColorModel兼容,则返回true;否则返回false。
-
createCompatibleSampleModel
创建一个具有指定宽度和高度的SampleModel,其数据布局与此ColorModel兼容。- 覆盖:
-
createCompatibleSampleModel在类ColorModel中 - 参数:
-
w- 要应用于新SampleModel的宽度 -
h- 要应用于新SampleModel的高度 - 返回:
-
具有指定宽度和高度的
SampleModel对象。 - 抛出:
-
IllegalArgumentException- 如果w或h不大于0 - 参见:
-
isCompatibleSampleModel
检查指定的SampleModel是否与此ColorModel兼容。如果sm为null,则此方法返回false。- 覆盖:
-
isCompatibleSampleModel在类ColorModel中 - 参数:
-
sm- 指定的SampleModel,或null - 返回:
-
如果指定的
SampleModel与此ColorModel兼容,则返回true;否则返回false。 - 参见:
-
convertToIntDiscrete
返回一个新的TYPE_INT_ARGB或TYPE_INT_RGB的BufferedImage,其Raster使用此ColorModel的颜色/alpha组件数组扩展源Raster中的索引来计算像素数据。仅使用源Raster中每个索引值的低n位(如上面的类描述中指定的)来计算返回图像中的颜色/alpha值。如果forceARGB为true,则无论此ColorModel是否具有alpha组件数组或透明像素,都将返回TYPE_INT_ARGB图像。- 参数:
-
raster- 指定的Raster -
forceARGB- 如果为true,返回的BufferedImage为TYPE_INT_ARGB;否则为TYPE_INT_RGB - 返回:
-
使用指定
Raster创建的BufferedImage - 抛出:
-
IllegalArgumentException- 如果raster参数与此IndexColorModel不兼容
-
isValid
public boolean isValid(int pixel) 返回像素是否有效。- 参数:
-
pixel- 指定的像素值 - 返回:
-
如果
pixel有效,则返回true;否则返回false。 - 自:
- 1.3
-
isValid
public boolean isValid()返回所有像素是否有效。- 返回:
-
如果所有像素有效,则返回
true;否则返回false。 - 自:
- 1.3
-
getValidPixels
返回一个BigInteger,指示颜色映射中的有效/无效像素。如果在BigInteger中的索引处设置了值,则该位有效,如果在BigInteger中的索引处未设置值,则该位无效。在BigInteger中查询的唯一有效范围是0到映射大小。- 返回:
-
表示有效/无效像素的
BigInteger。 - 自:
- 1.3
-
toString
返回此ColorModel对象内容的String表示形式。- 覆盖:
-
toString在类ColorModel中 - 返回:
-
表示此
ColorModel对象内容的String。
-
equals
测试指定的Object是否是IndexColorModel的实例,并且是否等于此IndexColorModel。- 覆盖:
-
equals在类ColorModel中 - 参数:
-
obj- 要测试相等性的Object - 返回:
-
如果指定的
Object等于此IndexColorModel,则返回true;否则返回false。 - 参见:
-
hashCode
public int hashCode()返回IndexColorModel的哈希码。- 覆盖:
-
hashCode在类ColorModel中 - 返回:
- IndexColorModel的哈希码
- 参见:
-