JavaTM Platform
Standard Ed. 6

java.awt.image
类 ColorConvertOp

java.lang.Object
  继承者 java.awt.image.ColorConvertOp
所有已实现的接口:
BufferedImageOp, RasterOp

public class ColorConvertOp
extends Object
implements BufferedImageOp, RasterOp

此类对源图像中的数据执行逐像素的颜色转换。得到的颜色值可以扩展到目标图像的精度。颜色转换可以通过 ColorSpace 对象的数组或 ICC_Profile 对象的数组指定。

如果源是预乘了 alpha 的 BufferedImage,则在颜色转换前要将颜色分量除以 alpha 分量。如果目标是预乘了 alpha 的 BufferedImage,则要在颜色转换后将颜色分量乘以 alpha 分量。Raster 被认为是没有 alpha 通道的,也即所有 band 都是颜色 band。

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

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

另请参见:
RenderingHints.KEY_COLOR_RENDERING, RenderingHints.KEY_DITHERING

构造方法摘要
ColorConvertOp(ColorSpace srcCspace, ColorSpace dstCspace, RenderingHints hints)
          根据两个 ColorSpace 对象构造新的 ColorConvertOp。
ColorConvertOp(ColorSpace cspace, RenderingHints hints)
          根据 ColorSpace 对象构造新的 ColorConvertOp。
ColorConvertOp(ICC_Profile[] profiles, RenderingHints hints)
          根据 ICC_Profiles 的数组构造新的 ColorConvertOp。
ColorConvertOp(RenderingHints hints)
          构造从源颜色空间到目标颜色空间转换的新 ColorConvertOp。
 
方法摘要
 BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
          创建给定源的具有正确大小和 band 数量的归零目标图像。
 WritableRaster createCompatibleDestRaster(Raster src)
          创建给定源且具有正确 band 大小和数量的归零目标 Raster。
 BufferedImage filter(BufferedImage src, BufferedImage dest)
          对源 BufferedImage 进行颜色转换。
 WritableRaster filter(Raster src, WritableRaster dest)
          对源 Raster 中的图像数据进行颜色转换。
 Rectangle2D getBounds2D(BufferedImage src)
          返回给定源的目标边界框。
 Rectangle2D getBounds2D(Raster src)
          返回给定源的目标边界框。
 ICC_Profile[] getICC_Profiles()
          返回用于构造此 ColorConvertOp 的 ICC_Profiles 的数组。
 Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
          返回源中给定点的目标点的位置。
 RenderingHints getRenderingHints()
          此操作使用的呈现提示。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

ColorConvertOp

public ColorConvertOp(RenderingHints hints)
构造从源颜色空间到目标颜色空间转换的新 ColorConvertOp。RenderingHints 参数可以为 null。此操作只能与 BufferedImage 一起使用,并将直接从源图像的 ColorSpace 转换为目标图像的 ColorSpace。过滤器方法的目标参数不能指定为 null。

参数:
hints - 用来控制颜色转换的 RenderingHints 对象,或 null

ColorConvertOp

public ColorConvertOp(ColorSpace cspace,
                      RenderingHints hints)
根据 ColorSpace 对象构造新的 ColorConvertOp。RenderingHints 参数可以为 null。此操作只能与 BufferedImages 一起使用,并且在目标参数为 null 的情况下调用 filter 方法时特别有用。在这种情况下,ColorSpace 定义由过滤器方法创建的目标的目标颜色空间。否则,ColorSpace 将定义一个中间空间,源转换为目标空间之前要先转换为这个中间空间。

参数:
cspace - 定义目标 ColorSpace 或中间 ColorSpace
hints - 用来控制颜色转换的 RenderingHints 对象,或 null
抛出:
NullPointerException - 如果 cspace 为 null

ColorConvertOp

public ColorConvertOp(ColorSpace srcCspace,
                      ColorSpace dstCspace,
                      RenderingHints hints)
根据两个 ColorSpace 对象构造新的 ColorConvertOp。RenderingHints 参数可以为 null。此操作在调用 Raster 的过滤方法时特别有用,在这种情况下,这两个 ColorSpace 将定义对 Raster 执行的操作。在这种情况下,源 Raster 中的 band 数量必须与 srcCspace 中分量的数量匹配,并且目标 Raster 中的 band 数量必须与 dstCspace 中分量的数量匹配。对于 BufferedImages,这两个 ColorSpace 将定义一个中间空间,源在转换为目标空间之前要先转换为中间空间。

参数:
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。

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

参数:
profiles - ICC_Profile 对象的数组
hints - 用于控制颜色转换的 RenderingHints 对象,或 null
抛出:
IllegalArgumentException - 在配置文件序列未指定定义良好的颜色转换时
NullPointerException - 如果配置文件为 null
方法详细信息

getICC_Profiles

public final ICC_Profile[] getICC_Profiles()
返回用于构造此 ColorConvertOp 的 ICC_Profiles 的数组。如果 ColorConvertOp 不是通过此类数组构造的,则返回 null。

返回:
ColorConvertOpICC_Profile 对象的数组,或 null 如果此 ColorConvertOp 不是通过 ICC_Profile 对象构造的。

filter

public final BufferedImage filter(BufferedImage src,
                                  BufferedImage dest)
对源 BufferedImage 进行颜色转换。如果目标图像为 null,则根据适当的 ColorModel 创建 BufferedImage。

指定者:
接口 BufferedImageOp 中的 filter
参数:
src - 要转换的源 BufferedImage
dest - 目标 BufferedImage,或 null
返回:
通过 src 转换的 dest 颜色,或已转换的新 BufferedImage(如果 destnull
抛出:
IllegalArgumentException - 如果 dest 为 null,并且此操作是使用因操作定义得不好而只采用 RenderingHints 参数的构造方法构造的。

filter

public final WritableRaster filter(Raster src,
                                   WritableRaster dest)
对源 Raster 中的图像数据进行颜色转换。如果目标 Raster 为 null,则创建新 Raster。源和目标 Raster 中的 band 数量必须满足上述要求。用于创建此 ColorConvertOp 的构造方法必须提供足够的可用来定义源和目标颜色空间的信息。请参阅上文。否则,将抛出异常。

指定者:
接口 RasterOp 中的 filter
参数:
src - 要转换的源 Raster
dest - 目标 WritableRaster,或 null
返回:
通过 src 转换的 dest 颜色,或已转换的新 WritableRaster(如果 destnull
抛出:
IllegalArgumentException - 如果源或目标 band 数量不正确,或未定义源或目标颜色空间,或此操作是通过只应用于 BufferedImages 上的操作的构造方法之一构造的。

getBounds2D

public final Rectangle2D getBounds2D(BufferedImage src)
返回给定源的目标边界框。注意,此框与源的边界框相同。

指定者:
接口 BufferedImageOp 中的 getBounds2D
参数:
src - 源 BufferedImage
返回:
在指定 src 的情况下返回目标边界框 Rectangle2D

getBounds2D

public final Rectangle2D getBounds2D(Raster src)
返回给定源的目标边界框。注意,此框与源的边界框相同。

指定者:
接口 RasterOp 中的 getBounds2D
参数:
src - 源 Raster
返回:
在指定 src 的情况下返回目标边界框 Rectangle2D

createCompatibleDestImage

public BufferedImage createCompatibleDestImage(BufferedImage src,
                                               ColorModel destCM)
创建给定源的具有正确大小和 band 数量的归零目标图像。

指定者:
接口 BufferedImageOp 中的 createCompatibleDestImage
参数:
src - 进行过滤操作的源图像。
destCM - 该目标的 ColorModel。如果为 null,则使用适当的 ColorModel。
返回:
指定 src 中具有正确 band 大小和数量的 BufferedImage
抛出:
IllegalArgumentException - 如果 destCMnull,并且此 ColorConvertOp 不是通过针对目标定义的任何 ICC_ProfileColorSpace 创建的

createCompatibleDestRaster

public WritableRaster createCompatibleDestRaster(Raster src)
创建给定源且具有正确 band 大小和数量的归零目标 Raster。

指定者:
接口 RasterOp 中的 createCompatibleDestRaster
参数:
src - 指定 Raster
返回:
指定 src 中具有正确 band 大小和数量的 WritableRaster
抛出:
IllegalArgumentException - 如果此 ColorConvertOp 不是根据足以定义 dstsrc 颜色空间的信息创建的

getPoint2D

public final Point2D getPoint2D(Point2D srcPt,
                                Point2D dstPt)
返回源中给定点的目标点的位置。如果 dstPt 为非 null,则使用它存储返回值。注意,对于此类,目标点将与源点相同。

指定者:
接口 BufferedImageOp 中的 getPoint2D
指定者:
接口 RasterOp 中的 getPoint2D
参数:
srcPt - 指定源 Point2D
dstPt - 目标 Point2D
返回:
将其位置设置为与 srcPt 相同之后返回 dstPt

getRenderingHints

public final RenderingHints getRenderingHints()
此操作使用的呈现提示。

指定者:
接口 BufferedImageOp 中的 getRenderingHints
指定者:
接口 RasterOp 中的 getRenderingHints
返回:
ColorConvertOpRenderingHints 对象

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策