java.lang.Object java.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
对象