- java.lang.Object
-
- java.awt.image.ColorConvertOp
-
- All Implemented Interfaces:
-
BufferedImageOp,RasterOp
public class ColorConvertOp extends Object implements BufferedImageOp, RasterOp
该类对源图像中的数据执行逐像素颜色转换。 所得到的颜色值被缩放到目标图像的精度。 可以通过ColorSpace对象或ICC_Profile对象数组来指定颜色转换。如果源是具有预乘α的BufferedImage,则颜色分量在颜色转换之前被alpha分量除。 如果目的地是具有预乘法α的BufferedImage,则颜色分量在转换后乘以alpha分量。 光栅被视为没有alpha通道,即所有的带都是彩色带。
如果在构造函数中指定了RenderingHints对象,则可以使用颜色渲染提示和抖动提示来控制颜色转换。
请注意,源和目标可能是相同的对象。
-
-
构造方法摘要
构造方法 Constructor 描述 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,它将从源颜色空间转换为目标色彩空间。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 BufferedImagecreateCompatibleDestImage(BufferedImage src, ColorModel destCM)给出这个来源,创建具有正确大小和频带数的归零目标图像。WritableRastercreateCompatibleDestRaster(Raster src)给出这个来源,创建一个具有正确大小和频带数的归零目标光栅。BufferedImagefilter(BufferedImage src, BufferedImage dest)ColorConverts源BufferedImage。WritableRasterfilter(Raster src, WritableRaster dest)Color转换源光栅中的图像数据。Rectangle2DgetBounds2D(BufferedImage src)给出这个源,返回目的地的边界框。Rectangle2DgetBounds2D(Raster src)给出这个源,返回目的地的边界框。ICC_Profile[]getICC_Profiles()返回用于构造此ColorConvertOp的ICC_Profiles数组。Point2DgetPoint2D(Point2D srcPt, Point2D dstPt)返回源中给定点的目标点的位置。RenderingHintsgetRenderingHints()返回此op使用的渲染提示。
-
-
-
构造方法详细信息
-
ColorConvertOp
public ColorConvertOp(RenderingHints hints)
构造一个新的ColorConvertOp,它将从源颜色空间转换为目标色彩空间。 RenderingHints参数可能为null。 此Op仅可用于BufferedImages,并将直接从源图像的ColorSpace转换为目标的。 filter方法的destination参数不能指定为null。- 参数
-
hints- 用于控制颜色转换的RenderingHints对象,或null
-
ColorConvertOp
public ColorConvertOp(ColorSpace cspace, RenderingHints hints)
从ColorSpace对象构造一个新的ColorConvertOp。 RenderingHints参数可能为null。 此Op仅可与BufferedImages一起使用,并且在以目标参数为null调用filter方法时主要有用。 在这种情况下,ColorSpace定义了由过滤方法创建的目的地的目标颜色空间。 否则,ColorSpace在转换为目的地空间之前定义了一个中间空间,源将被转换。- 参数
-
cspace- 定义目的地ColorSpace或中间件ColorSpace -
hints- 用于控制颜色转换的RenderingHints对象,或null - 异常
-
NullPointerException- 如果cspace为空
-
ColorConvertOp
public ColorConvertOp(ColorSpace srcCspace, ColorSpace dstCspace, RenderingHints hints)
从两个ColorSpace对象构造一个新的ColorConvertOp。 RenderingHints参数可能为null。 此Op主要用于在Raster上调用过滤器方法,在这种情况下,两个ColorSpaces定义要在光栅上执行的操作。 在这种情况下,源光栅中的条带数必须与srcCspace中的组件数量相匹配,目标光栅中的条带数必须与dstCspace中的组件数量相匹配。 对于BufferedImages,两个ColorSpaces定义了在转换为目标空间之前转换源的中间空间。- 参数
-
srcCspace- 来源ColorSpace -
dstCspace- 目的地ColorSpace -
hints- 用于控制颜色转换的RenderingHints对象,或null - 异常
-
NullPointerException- 如果srcCspace或dstCspace为空
-
ColorConvertOp
public ColorConvertOp(ICC_Profile[] profiles, RenderingHints hints)
从ICC_Profiles数组构造一个新的ColorConvertOp。 RenderingHints参数可能为null。 配置文件的序列可能包括表示颜色空间的配置文件,表示效果的配置文件等。如果整个序列不表示明确定义的颜色转换,则抛出异常。对于BufferedImages,如果源BufferedImage的ColorSpace与阵列中第一个配置文件的要求不匹配,则首次转换为适当的ColorSpace。 如果阵列中最后一个配置文件的要求不被目标BufferedImage的ColorSpace满足,则最后一次转换是到目标的ColorSpace。
对于光栅,源光栅中的光带数必须与阵列中第一个配置文件的要求相匹配,目标光栅中的光带数必须与阵列中最后一个配置文件的要求相匹配。 数组必须至少有两个元素,或者为Raster调用过滤器方法将抛出一个IllegalArgumentException异常。
- 参数
-
profiles-ICC_Profile对象的数组 -
hints- 用于控制颜色转换的RenderingHints对象,或null - 异常
-
IllegalArgumentException- 当轮廓序列未指定明确定义的颜色转换时 -
NullPointerException- 如果个人资料为空
-
-
方法详细信息
-
getICC_Profiles
public final ICC_Profile[] getICC_Profiles()
返回用于构造此ColorConvertOp的ICC_Profiles数组。 如果ColorConvertOp未由此类阵列构造,则返回null。- 结果
-
这个
ColorConvertOp的ICC_Profile对象的数组,或者null如果这个ColorConvertOp没有用ICC_Profile对象的数组构造的ICC_Profile。
-
filter
public final BufferedImage filter(BufferedImage src, BufferedImage dest)
ColorConverts源BufferedImage。 如果目标图像为空,则使用适当的ColorModel创建一个BufferedImage。- Specified by:
-
filter在接口BufferedImageOp - 参数
-
src- 要转换的来源BufferedImage -
dest- 目的地BufferedImage或null - 结果
-
dest颜色转换为src或新转换BufferedImage如果dest是null - 异常
-
IllegalArgumentException- 如果dest为空,并且该op是使用仅使用RenderingHints参数的构造函数构造的,因为操作不正确。
-
filter
public final WritableRaster filter(Raster src, WritableRaster dest)
Color转换源光栅中的图像数据。 如果目标Raster为null,将创建一个新的栅格。 源和目标光栅中的频带数必须满足上述要求。 用于创建此ColorConvertOp的构造函数必须提供足够的信息来定义源和目标颜色空间。 往上看。 否则抛出异常。- Specified by:
-
filter在接口RasterOp - 参数
-
src- 要转换的来源Raster -
dest- 目的地WritableRaster或null - 结果
-
dest颜色转换从src或一个新的,转换WritableRaster如果dest是null - 异常
-
IllegalArgumentException- 如果源或目标频带的数量不正确,则源或目标色彩空间未定义,或者该op是使用仅适用于BufferedImages操作的构造函数构造的。
-
getBounds2D
public final Rectangle2D getBounds2D(BufferedImage src)
给出这个源,返回目的地的边界框。 请注意,这将与源的边框相同。- Specified by:
-
getBounds2D在接口BufferedImageOp - 参数
-
src- 来源BufferedImage - 结果
-
一个
Rectangle2D是目的地的边界盒,给定了指定的src
-
getBounds2D
public final Rectangle2D getBounds2D(Raster src)
给出这个源,返回目的地的边界框。 请注意,这将与源的边框相同。- Specified by:
-
getBounds2D在接口RasterOp - 参数
-
src- 来源Raster - 结果
-
一个
Rectangle2D是目的地的边界框,给定了指定的src
-
createCompatibleDestImage
public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
给出这个来源,创建具有正确大小和频带数的归零目标图像。- Specified by:
-
createCompatibleDestImage在接口BufferedImageOp - 参数
-
src- 过滤器操作的源图像。 -
destCM- 目的地的ColorModel。 如果为null,将使用适当的ColorModel。 - 结果
-
一个
BufferedImage具有正确的大小和数量的频带,从指定的src。 - 异常
-
IllegalArgumentException- 如果destCM是null而这个ColorConvertOp是创建的,没有为目标定义任何ICC_Profile或ColorSpace
-
createCompatibleDestRaster
public WritableRaster createCompatibleDestRaster(Raster src)
给出这个来源,创建一个具有正确大小和频带数的归零目标光栅。- Specified by:
-
createCompatibleDestRaster在接口RasterOp - 参数
-
src- 指定的Raster - 结果
-
一个
WritableRaster具有正确的大小和数量的频带,从指定的src - 异常
-
IllegalArgumentException- 如果这个ColorConvertOp没有足够的信息创建来定义dst和src颜色空间
-
getPoint2D
public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
返回源中给定点的目标点的位置。 如果dstPt是非空值,它将用于保存返回值。 请注意,对于此类,目标点将与源点相同。- Specified by:
-
getPoint2D在接口BufferedImageOp - Specified by:
-
getPoint2D在接口RasterOp - 参数
-
srcPt- 指定的来源Point2D -
dstPt- 目的地Point2D - 结果
-
dstPt将其位置设置为与srcPt相同
-
getRenderingHints
public final RenderingHints getRenderingHints()
返回此op使用的渲染提示。- Specified by:
-
getRenderingHints在接口BufferedImageOp - Specified by:
-
getRenderingHints在接口RasterOp - 结果
-
该
RenderingHints对象ColorConvertOp
-
-