java.lang.Objectjava.awt.image.ColorConvertOp
public class ColorConvertOp
此类对源图像中的数据执行逐像素的颜色转换。得到的颜色值可以扩展到目标图像的精度。颜色转换可以通过 ColorSpace 对象的数组或 ICC_Profile 对象的数组指定。
如果源是预乘了 alpha 的 BufferedImage,则在颜色转换前要将颜色分量除以 alpha 分量。如果目标是预乘了 alpha 的 BufferedImage,则要在颜色转换后将颜色分量乘以 alpha 分量。Raster 被认为是没有 alpha 通道的,也即所有 band 都是颜色 band。
如果 RenderingHints 对象是在构造方法中指定的,则可以使用颜色呈现提示和抖动提示来控制颜色转换。
注意,Source 和 Destination 可以是同一个对象。
| 构造方法摘要 | |
|---|---|
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 |
| 构造方法详细信息 |
|---|
public ColorConvertOp(RenderingHints hints)
hints - 用来控制颜色转换的
RenderingHints 对象,或
null
public ColorConvertOp(ColorSpace cspace, RenderingHints hints)
filter 方法时特别有用。在这种情况下,ColorSpace 定义由过滤器方法创建的目标的目标颜色空间。否则,ColorSpace 将定义一个中间空间,源转换为目标空间之前要先转换为这个中间空间。
cspace - 定义目标
ColorSpace 或中间
ColorSpace
hints - 用来控制颜色转换的
RenderingHints 对象,或
null
NullPointerException - 如果 cspace 为 null
public ColorConvertOp(ColorSpace srcCspace, ColorSpace dstCspace, RenderingHints hints)
srcCspace - 源
ColorSpace
dstCspace - 目标
ColorSpace
hints - 用于控制颜色转换的
RenderingHints 对象,或
null
NullPointerException - 如果 srcCspace 或 dstCspace 为 null
public ColorConvertOp(ICC_Profile[] profiles, RenderingHints hints)
对于 BufferedImages,如果源 BufferedImage 的 ColorSpace 与数组中的第一个配置文件的要求不匹配,则首次转换要转换到适当的 ColorSpace。如果目标 BufferedImage 的 ColorSpace 不能满足数组中的最后一个配置文件的要求,则最后一次转换要转换到目标的 ColorSpace。
对于 Raster,源 Raster 中的 band 数量必须与数组中第一个配置文件的要求匹配,并且目标 Raster 中的 band 数量必须与数组中最后一个配置文件的要求匹配。该数组至少有两个元素,否则调用 Raster 的过滤方法将抛出 IllegalArgumentException。
profiles -
ICC_Profile 对象的数组
hints - 用于控制颜色转换的
RenderingHints 对象,或
null
IllegalArgumentException - 在配置文件序列未指定定义良好的颜色转换时
NullPointerException - 如果配置文件为 null
| 方法详细信息 |
|---|
public final ICC_Profile[] getICC_Profiles()
ColorConvertOp 的
ICC_Profile 对象的数组,或
null 如果此
ColorConvertOp 不是通过
ICC_Profile 对象构造的。
public final BufferedImage filter(BufferedImage src, BufferedImage dest)
BufferedImageOp 中的
filter
src - 要转换的源
BufferedImage
dest - 目标
BufferedImage,或
null
src 转换的
dest 颜色,或已转换的新
BufferedImage(如果
dest 为
null)
IllegalArgumentException - 如果 dest 为 null,并且此操作是使用因操作定义得不好而只采用 RenderingHints 参数的构造方法构造的。
public final WritableRaster filter(Raster src, WritableRaster dest)
src - 要转换的源
Raster
dest - 目标
WritableRaster,或
null
src 转换的
dest 颜色,或已转换的新
WritableRaster(如果
dest 为
null)
IllegalArgumentException - 如果源或目标 band 数量不正确,或未定义源或目标颜色空间,或此操作是通过只应用于 BufferedImages 上的操作的构造方法之一构造的。
public final Rectangle2D getBounds2D(BufferedImage src)
BufferedImageOp 中的
getBounds2D
src - 源
BufferedImage
src 的情况下返回目标边界框
Rectangle2D
public final Rectangle2D getBounds2D(Raster src)
RasterOp 中的
getBounds2D
src - 源
Raster
src 的情况下返回目标边界框
Rectangle2D
public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
BufferedImageOp 中的
createCompatibleDestImage
src - 进行过滤操作的源图像。
destCM - 该目标的 ColorModel。如果为 null,则使用适当的 ColorModel。
src 中具有正确 band 大小和数量的
BufferedImage。
IllegalArgumentException - 如果
destCM 为
null,并且此
ColorConvertOp 不是通过针对目标定义的任何
ICC_Profile 或
ColorSpace 创建的
public WritableRaster createCompatibleDestRaster(Raster src)
RasterOp 中的
createCompatibleDestRaster
src - 指定
Raster
src 中具有正确 band 大小和数量的
WritableRaster
IllegalArgumentException - 如果此
ColorConvertOp 不是根据足以定义
dst 和
src 颜色空间的信息创建的
public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
dstPt 为非 null,则使用它存储返回值。注意,对于此类,目标点将与源点相同。
BufferedImageOp 中的
getPoint2D
RasterOp 中的
getPoint2D
srcPt - 指定源
Point2D
dstPt - 目标
Point2D
srcPt 相同之后返回
dstPt。
public final RenderingHints getRenderingHints()
BufferedImageOp 中的
getRenderingHints
RasterOp 中的
getRenderingHints
ColorConvertOp 的
RenderingHints 对象