模块  java.desktop
软件包  java.awt.image

Class ComponentColorModel

  • 实现的所有接口
    Transparency

    public class ComponentColorModelextends ColorModel
    一个ColorModel类,使用像素值表示颜色和alpha信息作为单独的样本,并将每个样本存储在单独的数据元素中。 此类可以与任意ColorSpace一起使用。 像素值中的颜色样本数必须与ColorSpace的颜色分量数相同。 可能只有一个alpha样本。

    对于那些使用类型为transferType的基本数组像素表示的transferType ,数组长度与颜色和alpha样本的数量相同。 颜色样本首先存储在数组中,然后是alpha样本(如果存在)。 颜色样本的顺序由ColorSpace指定。 通常,此顺序反映颜色空间类型的名称。 例如,对于TYPE_RGB ,索引0对应红色,索引1对应绿色,索引2对应蓝色。

    从像素样本值到用于显示或处理目的的颜色/α分量的转换基于样本与组件的一对一对应。 根据用于创建实例ComponentColorModel的传输类型,该实例表示的像素样本值可以是有符号或无符号的,可以是整数类型或浮点数或双精度(详见下文)。 从样本值到标准化颜色/ alpha分量的转换必须遵循某些规则。 对于float和double样本,平移是一个标识,即标准化的组件值等于相应的样本值。 对于积分样本,平移应该只是一个简单的比例和偏移,其中每个分量的比例和偏移常数可能不同。 应用比例和偏移常数的结果是一组颜色/ alpha分量值,保证在一定范围内。 通常,颜色分量的范围将是由getMinValueColorSpace类的getMaxValue方法定义的范围。 alpha分量的范围应为0.0到1.0。

    的实例ComponentColorModel用传输类型创建DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORT ,和DataBuffer.TYPE_INT具有被视为无符号整数值的像素样本值。 像素值的颜色或alpha样本中的位数可能与传递给ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int)构造函数的相应颜色或alpha样本的ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int) 在这种情况下,该类假定样本值的最低有效n位保存组件值,其中n是传递给构造函数的组件的有效位数。 它还假设样本值中的任何高阶位都为零。 因此,样本值范围从0到2 n - 1.此类将这些样本值映射到标准化颜色分量值,使得0映射到从每个组件的ColorSpace's getMinValue方法获得的值,并且2 n - 1映射到从getMaxValue 要创建具有不同颜色样本映射的ComponentColorModel ,需要对getNormalizedComponents(Object, float[], int)子类化并重写getNormalizedComponents(Object, float[], int)方法。 alpha样本的映射始终映射0到0.0和2 n - 1到1.0。

    对于具有无符号样本值的实例,仅在两个条件成立时才支持非标准化颜色/ alpha分量表示。 首先,样本值0必须映射到归一化分量值0.0和样本值2 n - 1到1.0。 其次, ColorSpace的所有颜色分量的最小/最大范围必须为0.0到1.0。 在这种情况下,组件表示是相应样本的n个最低有效位。 因此,每个分量是0到2 n -1之间的无符号整数值,其中n是特定分量的有效位数。 如果不满足这些条件,则采用非标准化组件参数的任何方法都将抛出IllegalArgumentException

    的实例ComponentColorModel用传输类型创建DataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT ,和DataBuffer.TYPE_DOUBLE具有被视为有符号短,浮点型或双值的像素样本值。 此类实例不支持非标准化颜色/ alpha分量表示,因此任何采用这种表示形式作为参数的方法在其中一个实例上IllegalArgumentException时都会抛出IllegalArgumentException 此类的实例的规范化组件值具有取决于传输类型的范围,如下所示:对于浮点样本,浮点数据类型的整个范围; 对于double sample,float数据类型的整个范围(由double转换为float); 对于短的样品,从大约-maxVal到+ MAXVAL,其中MAXVAL对于每分量最大值ColorSpace (-32767映射到-maxVal,0映射到0.0,和32767名映射到+ MAXVAL)。 通过重写getNormalizedComponents(Object, float[], int)方法,子类可以覆盖短样本值到标准化组件值的getNormalizedComponents(Object, float[], int) 对于float和double样本,规范化的组件值被视为等于相应的样本值,并且子类不应尝试为这些传输类型添加任何非标识缩放。

    的实例ComponentColorModel用传输类型创建DataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT ,和DataBuffer.TYPE_DOUBLE使用所有采样值的所有位。 因此,所有的颜色/ alpha分量使用时具有16个比特DataBuffer.TYPE_SHORT使用时,32位DataBuffer.TYPE_FLOAT使用时,和64个比特DataBuffer.TYPE_DOUBLE ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int)形式的构造函数与其中一种传输类型一起使用时,将忽略bits数组参数。

    颜色/ alpha样本值可能无法合理地解释为渲染的组件值。 ComponentColorModel被子类化以覆盖无符号样本值到标准化颜色分量值的映射或使用超出特定范围的带符号样本值时,可能会发生这种情况。 (例如,将alpha分量指定为0到32767范围之外的有符号短值,标准化范围0.0到1.0,可能会导致意外结果。)应用程序有责任在渲染之前适当缩放像素数据组件落在ColorSpace的标准化范围内(使用getMinValueColorSpace类的getMaxValue方法获得),并且alpha组件介于0.0和1.0之间。 如果颜色或alpha分量值超出这些范围,则渲染结果是不确定的。

    使用单个int像素表示形式的方法抛出IllegalArgumentException ,除非成分的用于数ComponentColorModel是一个和成分值是无符号的-使用的传输类型,换句话说,单一颜色分量DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORT ,或DataBuffer.TYPE_INT和没有阿尔法。

    ComponentColorModel可以结合使用具有ComponentSampleModel ,一个BandedSampleModel ,或PixelInterleavedSampleModel构建BufferedImage

    另请参见:
    ColorModelColorSpaceComponentSampleModelBandedSampleModelPixelInterleavedSampleModelBufferedImage
    • 构造方法摘要

      构造方法  
      构造器 描述
      ComponentColorModel​(ColorSpace colorSpace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
      根据指定的参数构造一个 ComponentColorModel
      ComponentColorModel​(ColorSpace colorSpace, int[] bits, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
      根据指定的参数构造一个 ComponentColorModel
    • 方法摘要

      所有方法  实例方法 具体的方法 
      变量和类型 方法 描述
      ColorModel coerceData​(WritableRaster raster, boolean isAlphaPremultiplied)
      强制栅格数据与 isAlphaPremultiplied变量中指定的状态匹配,假设此数据当前由此 ColorModel正确描述。
      SampleModel createCompatibleSampleModel​(int w, int h)
      创建具有指定宽度和高度的 SampleModel ,其数据布局与此 ColorModel兼容。
      WritableRaster createCompatibleWritableRaster​(int w, int h)
      创建具有指定宽度和高度的 WritableRaster ,其具有与此 ColorModel兼容的数据布局( SampleModel )。
      boolean equals​(Object obj)
      测试指定 Object是一个实例 ComponentColorModel和等于这个 ComponentColorModel
      int getAlpha​(int pixel)
      返回指定像素的alpha分量,从0到255缩放。
      int getAlpha​(Object inData)
      返回指定像素的alpha分量,从0到255缩放。
      WritableRaster getAlphaRaster​(WritableRaster raster)
      返回 Raster表示图像的alpha通道,从输入中提取 Raster
      int getBlue​(int pixel)
      返回指定像素的蓝色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。
      int getBlue​(Object inData)
      返回指定像素的蓝色分量,在默认RGB ColorSpace (sRGB)中从0到255缩放。
      int[] getComponents​(int pixel, int[] components, int offset)
      返回给定 ColorModel的像素的非标准化颜色/ alpha分量 ColorModel
      int[] getComponents​(Object pixel, int[] components, int offset)
      ColorModel给出一个像素,返回一个非标准化颜色/ alpha分量 ColorModel
      int getDataElement​(float[] normComponents, int normOffset)
      在给定一组标准化颜色/ alpha分量的情况下,返回在此 ColorModel表示为 int的像素值。
      int getDataElement​(int[] components, int offset)
      在给定一组非标准化颜色/ alpha分量的情况下,返回此 ColorModel表示为int的像素值。
      Object getDataElements​(float[] normComponents, int normOffset, Object obj)
      在给定一个标准化颜色/ alpha分量数组的情况下,返回此 ColorModel像素的数据元素数组表示。
      Object getDataElements​(int[] components, int offset, Object obj)
      在给定一组非标准化颜色/ alpha分量的情况下,返回此 ColorModel像素的数据元素数组表示形式。
      Object getDataElements​(int rgb, Object pixel)
      在给定默认RGB颜色模型中的整数像素表示的情况下,返回此 ColorModel像素的数据元素数组表示形式。
      int getGreen​(int pixel)
      返回指定像素的绿色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。
      int getGreen​(Object inData)
      返回指定像素的绿色分量,在默认RGB ColorSpace (sRGB)中从0到255缩放。
      float[] getNormalizedComponents​(int[] components, int offset, float[] normComponents, int normOffset)
      在给定非标准化组件数组的情况下,以规范化形式返回所有颜色/ alpha分量的数组。
      float[] getNormalizedComponents​(Object pixel, float[] normComponents, int normOffset)
      在给定 ColorModel的像素的情况下,以标准化形式返回所有颜色/ alpha分量的 ColorModel
      int getRed​(int pixel)
      返回指定像素的红色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。
      int getRed​(Object inData)
      返回指定像素的红色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。
      int getRGB​(int pixel)
      以默认RGB颜色模型格式返回像素的颜色/ alpha分量。
      int getRGB​(Object inData)
      以默认RGB颜色模型格式返回指定像素的颜色/ alpha分量。
      int[] getUnnormalizedComponents​(float[] normComponents, int normOffset, int[] components, int offset)
      在给定标准化组件数组的情况下,以非标准化形式返回所有颜色/ alpha分量的数组。
      int hashCode()
      返回此ComponentColorModel的哈希码。
      boolean isCompatibleRaster​(Raster raster)
      如果raster与此ColorModel兼容,则返回true;否则返回true。 如果不是,则为假。
      boolean isCompatibleSampleModel​(SampleModel sm)
      检查指定的 SampleModel是否与此 ColorModel兼容。
    • 构造方法详细信息

      • ComponentColorModel

        public ComponentColorModel​(ColorSpace colorSpace,                           int[] bits,                           boolean hasAlpha,                           boolean isAlphaPremultiplied,                           int transparency,                           int transferType)
        根据指定的参数构造一个ComponentColorModel 颜色组件将在指定的ColorSpace 支持的传输类型为DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOATDataBuffer.TYPE_DOUBLE 如果不为null,则bits数组指定每种颜色和alpha分量的有效位数,如果像素值中没有alpha信息,则其长度应至少为ColorSpace的组件数,如果不是这个数,则为1有alpha信息。 transferTypeDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT ,或DataBuffer.TYPE_DOUBLEbits数组参数被忽略。 hasAlpha指示是否存在alpha信息。 如果hasAlpha为true,则布尔值isAlphaPremultiplied指定如何解释像素值中的颜色和alpha样本。 如果布尔值为true,则假定颜色样本已乘以alpha样本。 transparency指定此颜色模型可以表示的alpha值。 可接受transparency值是OPAQUEBITMASKTRANSLUCENT transferType是用于表示像素值的原始数组的类型。
        参数
        colorSpace - 与此颜色模型关联的 ColorSpace
        bits - 每个组件的有效位数。 可以为null,在这种情况下,所有组件样本的所有位都将是重要的。 如果transferType是DataBuffer.TYPE_FLOATDataBuffer.TYPE_DOUBLE之一, DataBuffer.TYPE_SHORT忽略,在这种情况下,所有组件样本的所有位都将是重要的。
        hasAlpha - 如果为true,则此颜色模型支持alpha。
        isAlphaPremultiplied - 如果为true,则alpha被预乘。
        transparency - 指定此颜色模型可以表示的Alpha值。
        transferType - 指定用于表示像素值的基本数组的类型。
        异常
        IllegalArgumentException -如果 bits数组参数不为空,其长度小于颜色和alpha分量的数量,并且是的transferType之一 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORT ,或 DataBuffer.TYPE_INT
        IllegalArgumentException -如果transferType时不是一个 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT ,或 DataBuffer.TYPE_DOUBLE
        另请参见:
        ColorSpaceTransparency
      • ComponentColorModel

        public ComponentColorModel​(ColorSpace colorSpace,                           boolean hasAlpha,                           boolean isAlphaPremultiplied,                           int transparency,                           int transferType)
        根据指定的参数构造一个ComponentColorModel 颜色组件将在指定的ColorSpace 支持的传输类型为DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOATDataBuffer.TYPE_DOUBLE 每种颜色和alpha分量的有效位数分别为8,16,32,16,32或64。 颜色分量的数量将是ColorSpace的组件数量。 如果hasAlphatrue则会有alpha分量。 如果hasAlpha为true,则布尔值isAlphaPremultiplied指定如何解释像素值中的颜色和alpha样本。 如果布尔值为true,则假定颜色样本已乘以alpha样本。 transparency指定此颜色模型可以表示的alpha值。 可接受transparency值是OPAQUEBITMASKTRANSLUCENT transferType是用于表示像素值的基本数组的类型。
        参数
        colorSpace - 与此颜色模型关联的 ColorSpace
        hasAlpha - 如果为true,则此颜色模型支持alpha。
        isAlphaPremultiplied - 如果为true,则alpha被预乘。
        transparency - 指定此颜色模型可以表示的Alpha值。
        transferType - 指定用于表示像素值的基本数组的类型。
        异常
        IllegalArgumentException -如果transferType时不是一个 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT ,或 DataBuffer.TYPE_DOUBLE
        从以下版本开始:
        1.4
        另请参见:
        ColorSpaceTransparency
    • 方法详细信息

      • getRed

        public int getRed​(int pixel)
        返回指定像素的红色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。 必要时进行颜色转换。 像素值指定为int。 返回的值将是非预乘值。 如果alpha是预乘的,则此方法在返回值之前将其除去(如果alpha值为0,则红色值将为0)。
        Specified by:
        getRed在类 ColorModel
        参数
        pixel - 要从中获取红色分量的像素。
        结果
        指定像素的红色分量,为int。
        异常
        IllegalArgumentException - 如果此 ColorModel有多个组件。
        IllegalArgumentException - 如果已签名此 ColorModel的组件值
      • getGreen

        public int getGreen​(int pixel)
        返回指定像素的绿色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。 必要时进行颜色转换。 像素值指定为int。 返回的值将是非预乘值。 如果alpha被预乘,则此方法在返回值之前将其除去(如果alpha值为0,则绿色值将为0)。
        Specified by:
        getGreen在类 ColorModel
        参数
        pixel - 要从中获取绿色分量的像素。
        结果
        指定像素的绿色分量,作为int。
        异常
        IllegalArgumentException - 如果此 ColorModel有多个组件。
        IllegalArgumentException - 如果已签名此 ColorModel的组件值
      • getBlue

        public int getBlue​(int pixel)
        返回指定像素的蓝色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。 必要时进行颜色转换。 像素值指定为int。 返回的值将是非预乘值。 如果alpha是预乘的,则此方法在返回值之前将其除去(如果alpha值为0,则蓝色值将为0)。
        Specified by:
        getBlue在类 ColorModel
        参数
        pixel - 要从中获取蓝色分量的像素。
        结果
        指定像素的蓝色分量,作为int。
        异常
        IllegalArgumentException - 如果此 ColorModel有多个组件。
        IllegalArgumentException - 如果已签名此 ColorModel的组件值
      • getAlpha

        public int getAlpha​(int pixel)
        返回指定像素的alpha分量,从0到255缩放。像素值指定为int。
        Specified by:
        getAlpha在类 ColorModel
        参数
        pixel - 要从中获取alpha分量的像素。
        结果
        指定像素的alpha分量,为int。
        异常
        IllegalArgumentException - 如果此 ColorModel有多个组件。
        IllegalArgumentException - 如果已签名此 ColorModel的组件值
      • getRGB

        public int getRGB​(int pixel)
        以默认RGB颜色模型格式返回像素的颜色/ alpha分量。 必要时进行颜色转换。 返回的值将采用非预乘格式。 如果alpha是预乘的,则此方法将其除以颜色分量(如果alpha值为0,则颜色值将为0)。
        重写:
        getRGBColorModel
        参数
        pixel - 要从中获取颜色/ alpha分量的像素。
        结果
        指定像素的颜色/ alpha分量,为int。
        异常
        IllegalArgumentException - 如果此 ColorModel有多个组件。
        IllegalArgumentException - 如果已签名此 ColorModel的组件值
        另请参见:
        ColorModel.getRGBdefault()
      • getRed

        public int getRed​(Object inData)
        返回指定像素的红色分量,在默认RGB ColorSpace(sRGB)中从0到255缩放。 必要时进行颜色转换。 pixel值由作为对象引用传入的类型为transferType的数据元素数组指定。 返回的值将是非预乘值。 如果alpha是预乘的,则此方法在返回值之前将其除去(如果alpha值为0,则红色值将为0)。 由于ComponentColorModel可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,则如果它们使用不受支持的transferType ,则会抛出异常。
        重写:
        getRed在类 ColorModel
        参数
        inData - 要从中获取红色分量的像素,由 transferType类型的数据元素数组指定。
        结果
        指定像素的红色分量,为int。
        异常
        ClassCastException - 如果 inData不是类型为 transferType的基本数组。
        ArrayIndexOutOfBoundsException - 如果 inData不足以容纳此 ColorModel的像素值。
        UnsupportedOperationException -如果此的传输类型 ComponentColorModel不是受支持的传输类型之一: DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT ,或 DataBuffer.TYPE_DOUBLE
      • getGreen

        public int getGreen​(Object inData)
        返回指定像素的绿色分量,在默认RGB ColorSpace (sRGB)中从0到255缩放。 必要时进行颜色转换。 pixel值由作为对象引用传入的类型为transferType的数据元素数组指定。 返回值是非预乘值。 如果alpha被预乘,则此方法在返回值之前将其除去(如果alpha值为0,则绿色值将为0)。 由于ComponentColorModel可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,则如果它们使用不受支持的transferType抛出异常。
        重写:
        getGreen在类 ColorModel
        参数
        inData - 要从中获取绿色分量的像素,由 transferType类型的数据元素数组指定。
        结果
        指定像素的绿色分量,作为int。
        异常
        ClassCastException - 如果 inData不是类型为 transferType的基本数组。
        ArrayIndexOutOfBoundsException - 如果 inData不足以容纳此 ColorModel的像素值。
        UnsupportedOperationException -如果此的传输类型 ComponentColorModel不是受支持的传输类型之一: DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT ,或 DataBuffer.TYPE_DOUBLE
      • getBlue

        public int getBlue​(Object inData)
        返回指定像素的蓝色分量,在默认RGB ColorSpace (sRGB)中从0到255缩放。 必要时进行颜色转换。 pixel值由作为对象引用传入的类型为transferType的数据元素数组指定。 返回值是非预乘值。 如果alpha是预乘的,则此方法在返回值之前将其除去(如果alpha值为0,则蓝色值将为0)。 由于ComponentColorModel可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,则如果它们使用不受支持的transferType抛出异常。
        重写:
        getBlue在类 ColorModel
        参数
        inData - 要从中获取蓝色分量的像素,由 transferType类型的数据元素数组指定。
        结果
        指定像素的蓝色分量,作为int。
        异常
        ClassCastException - 如果 inData不是类型为 transferType的基本数组。
        ArrayIndexOutOfBoundsException - 如果 inData不足以容纳此 ColorModel的像素值。
        UnsupportedOperationException -如果此的传输类型 ComponentColorModel不是受支持的传输类型之一: DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT ,或 DataBuffer.TYPE_DOUBLE
      • getAlpha

        public int getAlpha​(Object inData)
        返回指定像素的alpha分量,从0到255缩放。像素值由作为对象引用传入的类型为transferType的数据元素数组指定。 由于ComponentColorModel可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,则如果它们使用不受支持的transferType ,则会抛出异常。
        重写:
        getAlpha在类 ColorModel
        参数
        inData - 要从中获取alpha分量的像素,由 transferType类型的数据元素数组指定。
        结果
        指定像素的alpha分量,为int。
        异常
        ClassCastException - 如果 inData不是类型为 transferType的基本数组。
        ArrayIndexOutOfBoundsException - 如果 inData不足以容纳此 ColorModel的像素值。
        UnsupportedOperationException -如果此的传输类型 ComponentColorModel不是受支持的传输类型之一: DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT ,或 DataBuffer.TYPE_DOUBLE
      • getRGB

        public int getRGB​(Object inData)
        以默认RGB颜色模型格式返回指定像素的颜色/ alpha分量。 必要时进行颜色转换。 像素值由作为对象引用传入的类型为transferType的数据元素数组指定。 返回的值采用非预乘格式。 如果alpha是预乘的,则此方法将其除以颜色分量(如果alpha值为0,则颜色值将为0)。 由于ComponentColorModel可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,则如果它们使用不受支持的transferType抛出异常。
        重写:
        getRGB在类 ColorModel
        参数
        inData - 要从中获取颜色/ alpha分量的像素,由 transferType类型的数据元素数组指定。
        结果
        指定像素的颜色/ alpha分量,为int。
        异常
        ClassCastException - 如果 inData不是类型为 transferType的基本数组。
        ArrayIndexOutOfBoundsException - 如果 inData不足以容纳此 ColorModel的像素值。
        UnsupportedOperationException -如果此的传输类型 ComponentColorModel不是受支持的传输类型之一: DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT ,或 DataBuffer.TYPE_DOUBLE
        另请参见:
        ColorModel.getRGBdefault()
      • getDataElements

        public Object getDataElements​(int rgb,                              Object pixel)
        在给定默认RGB颜色模型中的整数像素表示的情况下,返回此ColorModel像素的数据元素数组表示形式。 然后可以将此数组传递给WritableRaster对象的setDataElements方法。 如果pixel参数为null,则分配新数组。 由于ComponentColorModel可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,则如果它们使用不受支持的transferType抛出异常。
        重写:
        getDataElements在类 ColorModel
        参数
        rgb - RGB颜色模型中像素的整数表示形式
        pixel - 指定的像素
        结果
        ColorModel像素的数据元素数组表示 ColorModel
        异常
        ClassCastException - 如果 pixel不为null且不是类型为 transferType的基本数组。
        ArrayIndexOutOfBoundsException - 如果 pixel不足以容纳此 ColorModel的像素值。
        UnsupportedOperationException -如果此的传输类型 ComponentColorModel不是受支持的传输类型之一: DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT ,或 DataBuffer.TYPE_DOUBLE
        另请参见:
        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 如果此ColorModel的组件值不能以非标准化形式方便地表示,则抛出IllegalArgumentException。 颜色/ alpha分量存储中components数组以offset (即使该阵列由这种方法分配的)。
        重写:
        getComponentsColorModel
        参数
        pixel - 指定为整数的像素值。
        components - 用于存储非标准化颜色/ alpha分量的整数数组。 如果components数组为null,则分配新数组。
        offset - components阵列的偏移量。
        结果
        组件数组。
        异常
        IllegalArgumentException - 如果此 ColorModel有多个组件。
        IllegalArgumentException - 如果此 ColorModel不支持非标准化表单
        ArrayIndexOutOfBoundsException - 如果 components数组不为null且不足以容纳所有颜色和alpha分量(从offset开始)。
      • getComponents

        public int[] getComponents​(Object pixel,                           int[] components,                           int offset)
        返回此ColorModel给定像素的非标准化颜色/ alpha分量ColorModel 像素值由作为对象引用传入的类型为transferType的数据元素数组指定。 如果此ColorModel的组件值不能以非标准化形式方便地表示,则抛出IllegalArgumentException。 颜色/ alpha分量存储中components数组以offset (即使该阵列由这种方法分配的)。 由于ComponentColorModel可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,则如果它们使用不受支持的transferType ,则此方法可能会抛出异常。
        重写:
        getComponentsColorModel
        参数
        pixel - 由类型为 transferType的数据元素数组指定的像素值。
        components - 用于存储非标准化颜色/ alpha分量的整数数组。 如果components数组为null,则分配新数组。
        offset - components数组的偏移量。
        结果
        components数组。
        异常
        IllegalArgumentException - 如果此 ComponentColorModel不支持非标准化形式
        UnsupportedOperationException -在某些情况下,当且仅当该移交类型 ComponentColorModel不是以下传输类型之一: DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORT ,或 DataBuffer.TYPE_INT
        ClassCastException - 如果 pixel不是类型为 transferType的基本数组。
        IllegalArgumentException - 如果 components数组不为null且不足以容纳所有颜色和alpha分量(从偏移量开始),或者如果 pixel不足以容纳此ColorModel的像素值。
      • getUnnormalizedComponents

        public int[] getUnnormalizedComponents​(float[] normComponents,                                       int normOffset,                                       int[] components,                                       int offset)
        在给定标准化组件数组的情况下,以非标准化形式返回所有颜色/ alpha分量的数组。 非标准化分量是0到2 n -1之间的无符号整数值,其中n是特定分量的位数。 正规化成分是每分量最小和最大由指定之间的浮点值ColorSpace对象此ColorModel 一个IllegalArgumentException如果这种颜色成分值会被抛出ColorModel不便于用非标准化形式表示。 如果components阵列为null ,则将分配新阵列。 将返回components数组。 颜色/ alpha分量存储中components数组以offset (即使该阵列由这种方法分配的)。 一个ArrayIndexOutOfBoundsException如果被抛出components数组不null ,不足够大以容纳所有的颜色和alpha分量(开始于offset )。 一个IllegalArgumentException如果抛出normComponents阵列是不是大到足以容纳所有开始在颜色和alpha分量normOffset
        重写:
        getUnnormalizedComponents在类 ColorModel
        参数
        normComponents - 包含规范化组件的数组
        normOffset - 要开始检索规范化组件的 normComponents数组的偏移量
        components - 从 normComponents接收组件的阵列
        offset -索引为 components ,从此处开始从存储标准化分量 normComponents
        结果
        包含非标准化颜色和alpha分量的数组。
        异常
        IllegalArgumentException - 如果此 ComponentColorModel不支持非标准化表单
        IllegalArgumentException - 如果长度 normComponents减去 normOffset小于 numComponents
      • getNormalizedComponents

        public float[] getNormalizedComponents​(int[] components,                                       int offset,                                       float[] normComponents,                                       int normOffset)
        在给定非标准化组件数组的情况下,以规范化形式返回所有颜色/ alpha分量的数组。 非标准化分量是0到2 n -1之间的无符号整数值,其中n是特定分量的位数。 正规化成分是每分量最小和最大由指定之间的浮点值ColorSpace对象此ColorModel 一个IllegalArgumentException如果这种颜色成分值会被抛出ColorModel不便于用非标准化形式表示。 如果normComponents阵列是null ,则将分配新阵列。 将返回normComponents数组。 颜色/ alpha分量存储中normComponents数组以normOffset (即使该阵列由这种方法分配的)。 一个ArrayIndexOutOfBoundsException如果被抛出normComponents数组不null ,不足够大以容纳所有的颜色和alpha分量(开始于normOffset )。 一个IllegalArgumentException如果抛出components阵列是不是大到足以容纳所有开始在颜色和alpha分量offset
        重写:
        getNormalizedComponentsColorModel
        参数
        components - 包含非标准化组件的数组
        offset - 进入 components数组的偏移量,开始检索非标准化组件
        normComponents - 接收规范化组件的数组
        normOffset - 开始存储规范化组件的 normComponents索引
        结果
        包含标准化颜色和alpha分量的数组。
        异常
        IllegalArgumentException - 如果此 ComponentColorModel不支持非标准化形式
      • getDataElement

        public int getDataElement​(int[] components,                          int offset)
        在给定一组非标准化颜色/ alpha分量的情况下,返回此 ColorModel表示为int的像素值。
        重写:
        getDataElementColorModel
        参数
        components - 非标准化颜色/ alpha分量的数组。
        offset - components数组的偏移量。
        结果
        像素值表示为int。
        异常
        IllegalArgumentException -如果在这多个组件 ColorModel
        IllegalArgumentException - 如果此 ComponentColorModel不支持非标准化表单
      • getDataElements

        public Object getDataElements​(int[] components,                              int offset,                              Object obj)
        在给定一组非标准化颜色/ alpha分量的情况下,返回此ColorModel像素的数据元素数组表示。 然后可以将此数组传递给WritableRaster对象的setDataElements方法。
        重写:
        getDataElements在类 ColorModel
        参数
        components - 非标准化颜色/ alpha分量的数组。
        offset - components数组中的整数偏移量。
        obj - 用于存储像素的数据元素数组表示的对象。 如果obj变量为null,则分配新数组。 如果obj不为null,则它必须是类型为transferType的基本数组。 一个ArrayIndexOutOfBoundsException如果抛出obj不够大,不能保存这个像素值ColorModel 由于ComponentColorModel可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,则如果它们使用不受支持的transferType抛出异常。
        结果
        ColorModel像素的数据元素数组表示 ColorModel
        异常
        IllegalArgumentException - 如果components数组不足以容纳所有颜色和alpha分量(从offset开始)。
        ClassCastException - 如果 obj不为null且不是类型为 transferType的基本数组。
        ArrayIndexOutOfBoundsException - 如果 obj不足以容纳此 ColorModel的像素值。
        IllegalArgumentException - 如果此 ComponentColorModel不支持非标准化表单
        UnsupportedOperationException -如果该转移型 ComponentColorModel不是以下传输类型之一: DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORT ,或 DataBuffer.TYPE_INT
        另请参见:
        WritableRaster.setDataElements(int, int, java.lang.Object)SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
      • getDataElement

        public int getDataElement​(float[] normComponents,                          int normOffset)
        在给定一组标准化颜色/ alpha分量的情况下,返回此ColorModel表示为int的像素值。 此方法将抛出IllegalArgumentException如果这个像素值ColorModel不是作为一个便于表示int 一个ArrayIndexOutOfBoundsException如果被抛出normComponents阵列是没有大到足以容纳所有的颜色和alpha分量(开始于normOffset )。
        重写:
        getDataElement在类 ColorModel
        参数
        normComponents - 标准化颜色和alpha分量的数组
        normOffset - 要开始检索颜色和alpha分量的 normComponents索引
        结果
        ColorModel与指定组件对应的 int像素值。
        异常
        IllegalArgumentException - 如果此 ColorModel像素值不能方便地表示为单个 int
        ArrayIndexOutOfBoundsException - 如果 normComponents数组不足以容纳从 normOffset开始的所有颜色和alpha分量
        从以下版本开始:
        1.4
      • getDataElements

        public Object getDataElements​(float[] normComponents,                              int normOffset,                              Object obj)
        在给定一个标准化颜色/ alpha分量数组的情况下,返回此ColorModel像素的数据元素数组表示形式。 然后可以将此数组传递给WritableRaster对象的setDataElements方法。 一个ArrayIndexOutOfBoundsException如果被抛出normComponents阵列是没有大到足以容纳所有的颜色和alpha分量(开始于normOffset )。 如果obj变量为null ,则将分配新数组。 如果obj不是null ,则它必须是transferType类型的基本数组; 否则,抛出ClassCastException 一个ArrayIndexOutOfBoundsException如果抛出obj不够大,不能保存这个像素值ColorModel
        重写:
        getDataElements在类 ColorModel
        参数
        normComponents - 标准化颜色和alpha分量的数组
        normOffset - 开始检索颜色和alpha分量的 normComponents索引
        obj - 用于保存返回像素的原始数据数组
        结果
        Object ,它是像素的原始数据阵列表示
        异常
        ClassCastException - 如果 obj不是类型为 transferType的基本数组
        ArrayIndexOutOfBoundsException - 如果 obj不足以容纳此 ColorModel的像素值,或者 normComponents数组不足以容纳从 normOffset开始的所有颜色和alpha分量
        从以下版本开始:
        1.4
        另请参见:
        WritableRaster.setDataElements(int, int, java.lang.Object)SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
      • getNormalizedComponents

        public float[] getNormalizedComponents​(Object pixel,                                       float[] normComponents,                                       int normOffset)
        在给定ColorModel的像素的情况下,以标准化形式返回所有颜色/ alpha分量的ColorModel 像素值由作为对象引用传入的transferType类型的数据元素数组指定。 如果pixel不是transferType类型的基本数组,则抛出ClassCastException 一个ArrayIndexOutOfBoundsException如果抛出pixel不够大,不能保存这个像素值ColorModel 正规化成分是每分量最小和最大由指定之间的浮点值ColorSpace对象此ColorModel 如果normComponents阵列为null ,则将分配新阵列。 将返回normComponents数组。 颜色/ alpha分量存储中normComponents数组以normOffset (即使该阵列由这种方法分配的)。 一个ArrayIndexOutOfBoundsException如果被抛出normComponents数组不null ,不足够大以容纳所有的颜色和alpha分量(开始于normOffset )。

        如果该子类旨在以非默认方式将像素样本值转换为颜色分量值,则必须由子类重写此方法。 类中实现的默认转换在类注释中描述。 任何实现非默认转换的子类都必须遵循那里定义的允许转换的约束。

        重写:
        getNormalizedComponentsColorModel
        参数
        pixel - 指定的像素
        normComponents - 用于接收规范化组件的数组
        normOffset - normComponents数组的偏移量,开始存储规范化组件
        结果
        包含标准化颜色和alpha分量的数组。
        异常
        ClassCastException - 如果 pixel不是transferType类型的基本数组
        ArrayIndexOutOfBoundsException - 如果 normComponents不足以容纳从 normOffset开始的所有颜色和alpha分量
        ArrayIndexOutOfBoundsException - 如果 pixel不足以容纳此 ColorModel的像素值。
        从以下版本开始:
        1.4
      • coerceData

        public ColorModel coerceData​(WritableRaster raster,                             boolean isAlphaPremultiplied)
        强制栅格数据与isAlphaPremultiplied变量中指定的状态匹配,假设此数据当前由ColorModel正确描述。 它可以将颜色栅格数据乘以或除以alpha,或者如果数据处于正确状态则不执行任何操作。 如果需要强制数据,则此方法还会返回此ColorModel的实例,并isAlphaPremultiplied设置isAlphaPremultiplied标志。 由于ColorModel可以是子类,因此子类继承此方法的实现,如果它们不覆盖它,则如果它们使用不受支持的transferType抛出异常。
        重写:
        coerceData在类 ColorModel
        参数
        raster - 数据 WritableRaster
        isAlphaPremultiplied - true如果alpha被预乘; 否则为false
        结果
        表示强制数据的 ColorModel对象。
        异常
        NullPointerException - 如果 rasternull ,则需要数据强制。
        UnsupportedOperationException -如果此的传输类型 ComponentColorModel是不支持的传输类型之一: DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT ,或 DataBuffer.TYPE_DOUBLE
      • isCompatibleRaster

        public boolean isCompatibleRaster​(Raster raster)
        如果raster与此ColorModel兼容,则返回true;否则返回true。 如果不是,则为假。
        重写:
        isCompatibleRaster ,类 ColorModel
        参数
        raster - 用于测试兼容性的 Raster对象。
        结果
        true如果 raster与此兼容 ColorModelfalse ,如果它不是。
      • createCompatibleWritableRaster

        public WritableRaster createCompatibleWritableRaster​(int w,                                                     int h)
        创建具有指定宽度和高度的 WritableRaster ,其具有与此 ColorModel兼容的数据布局( SampleModel )。
        重写:
        createCompatibleWritableRaster在类 ColorModel
        参数
        w - 要创建的 WritableRaster的宽度。
        h - 要创建的 WritableRaster的高度。
        结果
        一个 WritableRaster这是与此兼容 ColorModel
        另请参见:
        WritableRasterSampleModel
      • createCompatibleSampleModel

        public SampleModel createCompatibleSampleModel​(int w,                                               int h)
        创建具有指定宽度和高度的 SampleModel ,其数据布局与此 ColorModel兼容。
        重写:
        createCompatibleSampleModel在类 ColorModel
        参数
        w - 要创建的 SampleModel的宽度。
        h - 要创建的 SampleModel的高度。
        结果
        SampleModel与此 ColorModel兼容。
        另请参见:
        SampleModel
      • isCompatibleSampleModel

        public boolean isCompatibleSampleModel​(SampleModel sm)
        检查指定的 SampleModel是否与此 ColorModel兼容。
        重写:
        isCompatibleSampleModelColorModel
        参数
        sm - 用于测试兼容性的 SampleModel
        结果
        true如果 SampleModel与此 ColorModel兼容,如果不兼容 ColorModel false
        另请参见:
        SampleModel
      • getAlphaRaster

        public WritableRaster getAlphaRaster​(WritableRaster raster)
        返回Raster表示图像的alpha通道,从输入中提取Raster 此方法假定与此ColorModel关联的Raster对象将alpha波段(如果存在)存储为图像数据的最后一个波段。 如果没有与此ColorModel关联的单独空间Alpha通道,则返回null。 此方法创建一个新的Raster ,但将共享数据数组。
        重写:
        getAlphaRaster在类 ColorModel
        参数
        raster - WritableRaster提取alpha通道的 WritableRaster
        结果
        包含图像的alpha通道的 WritableRaster
      • equals

        public boolean equals​(Object obj)
        测试指定 Object是一个实例 ComponentColorModel和等于这个 ComponentColorModel
        重写:
        equals在类 ColorModel
        参数
        obj - 测试相等性的 Object
        结果
        true如果指定Object是的一个实例ComponentColorModel并且等于此ComponentColorModel ; 否则为false
        另请参见:
        Object.hashCode()HashMap