- 所有已实现的接口:
-
透明度
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, transferType
Fields declared in interface java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
-
Constructor Summary
ConstructorDescriptionIndexColorModel
(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 int
getAlpha
(int pixel) 返回指定像素的alpha分量,从0到255进行缩放。final void
getAlphas
(byte[] a) 将alpha透明度分量数组复制到指定的数组中。final int
getBlue
(int pixel) 返回指定像素的蓝色分量,在默认RGB ColorSpace sRGB中从0到255进行缩放。final void
getBlues
(byte[] b) 将蓝色分量数组复制到指定的数组中。int[]
getComponents
(int pixel, int[] components, int offset) 返回此ColorModel
中指定像素的未归一化颜色/alpha分量数组。int[]
getComponents
(Object pixel, int[] components, int offset) 返回此ColorModel
中指定像素的未归一化颜色/alpha分量数组。int[]
返回每个颜色/alpha分量的位数数组。int
getDataElement
(int[] components, int offset) 给定一组未归一化的颜色/alpha分量数组,返回此ColorModel
中表示为int的像素值。getDataElements
(int[] components, int offset, Object pixel) 给定一组未归一化的颜色/alpha分量数组,返回此ColorModel
中表示为数据元素数组的像素。getDataElements
(int rgb, Object pixel) 给定默认RGB颜色模型中的整数像素表示,返回此ColorModel
中像素的数据元素数组表示。final int
getGreen
(int pixel) 返回指定像素的绿色分量,在默认RGB ColorSpace sRGB中从0到255进行缩放。final void
getGreens
(byte[] g) 将绿色分量数组复制到指定的数组中。final int
返回此IndexColorModel
中颜色/alpha分量数组的大小。final int
getRed
(int pixel) 返回指定像素的红色分量,在默认RGB ColorSpace sRGB中从0到255进行缩放。final void
getReds
(byte[] r) 将红色分量数组复制到指定的数组中。final int
getRGB
(int pixel) 返回默认RGB颜色模型格式中像素的颜色/alpha分量。final void
getRGBs
(int[] rgb) 将颜色和alpha分量数组中的每个索引的数据转换为默认RGB ColorModel格式中的int,并将生成的32位ARGB值复制到指定的数组中。int
返回透明度。final int
返回此IndexColorModel
中透明像素的索引,如果没有alpha值为0的像素,则返回-1。返回指示颜色映射表中有效/无效像素的BigInteger
。int
hashCode()
返回IndexColorModel
的哈希码。boolean
isCompatibleRaster
(Raster raster) 如果raster
与此ColorModel
兼容,则返回true
,否则返回false
。boolean
检查指定的SampleModel
是否与此ColorModel
兼容。boolean
isValid()
返回所有像素是否都有效。boolean
isValid
(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的哈希码
- 参见:
-