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

Class ColorConvertOp

  • 实现的所有接口
    BufferedImageOpRasterOp

    public class ColorConvertOpextends Objectimplements BufferedImageOp, RasterOp
    此类对源图像中的数据执行逐像素颜色转换。 生成的颜色值将缩放到目标图像的精度。 可以通过ColorSpace对象数组或ICC_Profile对象数组指定颜色转换。

    如果源是具有预乘alpha的BufferedImage,则颜色分量在颜色转换之前被alpha分量除。 如果目标是具有预乘alpha的BufferedImage,则转换后颜色分量将乘以alpha分量。 栅格被视为没有alpha通道,即所有带都是色带。

    如果在构造函数中指定了RenderingHints对象,则可以使用颜色呈现提示和抖动提示来控制颜色转换。

    请注意,Source和Destination可能是同一个对象。

    另请参见:
    RenderingHints.KEY_COLOR_RENDERINGRenderingHints.KEY_DITHERING
    • 构造方法详细信息

      • ColorConvertOp

        public ColorConvertOp​(RenderingHints hints)
        构造一个新的ColorConvertOp,它将从源颜色空间转换为目标颜色空间。 RenderingHints参数可以为null。 此Op只能与BufferedImages一起使用,并且会直接从源图像的ColorSpace转换为目标的ColorSpace。 filter方法的destination参数不能指定为null。
        参数
        hints - 用于控制颜色转换的 RenderingHints对象,或 null
      • ColorConvertOp

        public ColorConvertOp​(ColorSpace cspace,                      RenderingHints hints)
        从ColorSpace对象构造一个新的ColorConvertOp。 RenderingHints参数可以为null。 此Op只能与BufferedImages一起使用,并且在使用目标参数null调用filter方法时非常有用。 在这种情况下,ColorSpace定义由filter方法创建的目标的目标颜色空间。 否则,ColorSpace定义一个中间空间,在转换到目标空间之前将源转换到该中间空间。
        参数
        cspace - 定义目标 ColorSpace或中间 ColorSpace
        hints - 用于控制颜色转换的 RenderingHints对象,或 null
        异常
        NullPointerException - 如果cspace为null
      • ColorConvertOp

        public ColorConvertOp​(ColorSpace srcCspace,                      ColorSpace dstCspace,                      RenderingHints hints)
        从两个ColorSpace对象构造一个新的ColorConvertOp。 RenderingHints参数可以为null。 此Op主要用于在Rasters上调用过滤器方法,在这种情况下,两个ColorSpaces定义要在Rasters上执行的操作。 在这种情况下,源Raster中的band数必须与srcCspace中的组件数相匹配,并且目标Raster中的band数必须与dstCspace中的组件数相匹配。 对于BufferedImages,两个ColorSpaces定义了中间空间,在转换到目标空间之前,通过这些空间转换源。
        参数
        srcCspace - 源 ColorSpace
        dstCspace - 目的地 ColorSpace
        hints - 用于控制颜色转换的 RenderingHints对象,或 null
        异常
        NullPointerException - 如果srcCspace或dstCspace为null
      • ColorConvertOp

        public ColorConvertOp​(ICC_Profile[] profiles,                      RenderingHints hints)
        从ICC_Profiles数组构造一个新的ColorConvertOp。 RenderingHints参数可以为null。 轮廓序列可以包括表示颜色空间的轮廓,表示效果的轮廓等。如果整个序列不表示明确定义的颜色转换,则抛出异常。

        对于BufferedImages,如果源BufferedImage的ColorSpace与数组中第一个配置文件的要求不匹配,则第一次转换为适当的ColorSpace。 如果目标BufferedImage的ColorSpace不满足数组中最后一个配置文件的要求,则最后一次转换是到目标的ColorSpace。

        对于Rasters,源Raster中的波段数必须与阵列中第一个配置文件的要求相匹配,并且目标Raster中的波段数必须与阵列中最后一个配置文件的要求相匹配。 该数组必须至少有两个元素,否则调用Rasters的filter方法将抛出IllegalArgumentException。

        参数
        profiles - ICC_Profile对象的数组
        hints - 用于控制颜色转换的 RenderingHints对象,或 null
        异常
        IllegalArgumentException - 当配置文件序列未指定明确定义的颜色转换时
        NullPointerException - 如果profiles为null
    • 方法详细信息

      • getICC_Profiles

        public final ICC_Profile[] getICC_Profiles()
        返回用于构造此ColorConvertOp的ICC_Profiles数组。 如果ColorConvertOp不是从这样的数组构造的,则返回null。
        结果
        ColorConvertOpICC_Profile对象的数组,或 null如果此 ColorConvertOp未使用 ICC_Profile对象的数组 ICC_Profile
      • filter

        public final BufferedImage filter​(BufferedImage src,                                  BufferedImage dest)
        ColorConverts源BufferedImage。 如果目标图像为null,则将使用适当的ColorModel创建BufferedImage。
        Specified by:
        filter in interface BufferedImageOp
        参数
        src - 要转换的源 BufferedImage
        dest - 目的地 BufferedImagenull
        结果
        dest颜色转换自 src或新的,转换 BufferedImage如果 destnull
        异常
        IllegalArgumentException - 如果dest为null并且此op是使用仅接受RenderingHints参数的构造函数构造的,因为操作定义不正确。
      • filter

        public final WritableRaster filter​(Raster src,                                   WritableRaster dest)
        ColorConvert源Raster中的图像数据。 如果目标Raster为null,则将创建一个新的Raster。 源和目标Rasters中的波段数必须满足上述要求。 用于创建此ColorConvertOp的构造函数必须提供足够的信息来定义源颜色空间和目标颜色空间。 往上看。 否则,抛出异常。
        Specified by:
        filter在界面 RasterOp
        参数
        src - 要转换的源 Raster
        dest - 目的地 WritableRaster ,或 null
        结果
        dest颜色转换自 src或新的,转换 WritableRaster如果 destnull
        异常
        IllegalArgumentException - 如果源或目标band的数量不正确,则源或目标颜色空间未定义,或者此op由一个仅适用于BufferedImages上的操作的构造函数构造。
      • getBounds2D

        public final Rectangle2D getBounds2D​(BufferedImage src)
        给定此源,返回目标的边界框。 请注意,这将与源的边界框相同。
        Specified by:
        getBounds2D in interface BufferedImageOp
        参数
        src - 源 BufferedImage
        结果
        a Rectangle2D ,它是目标的边界框,给定指定的 src
      • getBounds2D

        public final Rectangle2D getBounds2D​(Raster src)
        给定此源,返回目标的边界框。 请注意,这将与源的边界框相同。
        Specified by:
        getBounds2D接口 RasterOp
        参数
        src - 源 Raster
        结果
        a Rectangle2D ,它是目标的边界框,给定指定的 src
      • createCompatibleDestImage

        public BufferedImage createCompatibleDestImage​(BufferedImage src,                                               ColorModel destCM)
        在给定此源的情况下,使用正确的大小和波段数创建归零的目标图像。
        Specified by:
        createCompatibleDestImage接口 BufferedImageOp
        参数
        src - 过滤器操作的源图像。
        destCM - 目的地的ColorModel。 如果为null,则将使用适当的ColorModel。
        结果
        a BufferedImage具有正确的大小和指定的 src频段数。
        异常
        IllegalArgumentException - 如果 destCMnull并且这个 ColorConvertOp创建没有为目的地定义任何 ICC_ProfileColorSpace
      • createCompatibleDestRaster

        public WritableRaster createCompatibleDestRaster​(Raster src)
        在给定此源的情况下,创建具有正确大小和波段数的归零目标Raster。
        Specified by:
        createCompatibleDestRaster in interface RasterOp
        参数
        src - 指定的 Raster
        结果
        a WritableRaster具有正确的大小和指定的 src的波段数
        异常
        IllegalArgumentException - 如果创建此 ColorConvertOp时没有足够的信息来定义 dstsrc颜色空间
      • getPoint2D

        public final Point2D getPoint2D​(Point2D srcPt,                                Point2D dstPt)
        返回给定源中某个点的目标点的位置。 如果dstPt非null,则它将用于保存返回值。 请注意,对于此类,目标点将与源点相同。
        Specified by:
        getPoint2D在界面 BufferedImageOp
        Specified by:
        getPoint2D in interface RasterOp
        参数
        srcPt - 指定的源 Point2D
        dstPt - 目的地 Point2D
        结果
        dstPt设置其位置后与 srcPt相同