java.awt.image

Class ColorConvertOp

Implemented Interfaces:
BufferedImageOp, RasterOp

public class ColorConvertOp
extends Object
implements BufferedImageOp, RasterOp

ColorConvertOp is a filter for converting an image from one colorspace to another colorspace. The filter can convert the image through a sequence of colorspaces or just from source to destination. Color conversion is done on the color components without alpha. Thus if a BufferedImage has alpha premultiplied, this is divided out before color conversion, and premultiplication applied if the destination requires it. Color rendering and dithering hints may be applied if specified. This is likely platform-dependent.

Constructor Summary

ColorConvertOp(RenderingHints hints)
Convert from source image color space to destination image color space.
ColorConvertOp(ColorSpace cspace, RenderingHints hints)
Convert BufferedImage through a ColorSpace.
ColorConvertOp(ColorSpace srcCspace, ColorSpace dstCspace, RenderingHints hints)
ColorConvertOp(ICC_Profile[] profiles, RenderingHints hints)
Convert from a source image destination image color space.

Method Summary

BufferedImage
createCompatibleDestImage(BufferedImage src, ColorModel dstCM)
WritableRaster
createCompatibleDestRaster(Raster src)
BufferedImage
filter(BufferedImage src, BufferedImage dst)
WritableRaster
filter(Raster src, WritableRaster dest)
Rectangle2D
getBounds2D(BufferedImage src)
Rectangle2D
getBounds2D(Raster src)
ICC_Profile[]
getICC_Profiles()
Point2D
getPoint2D(Point2D src, Point2D dst)
Return corresponding destination point for source point.
RenderingHints
getRenderingHints()
Return the rendering hints for this op.

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

ColorConvertOp

public ColorConvertOp(RenderingHints hints)
Convert from source image color space to destination image color space. Only valid for BufferedImage objects, this Op converts from the source color space to the destination color space. The destination can't be null for this operation.
Parameters:
hints - Rendering hints to use during conversion, or null.

ColorConvertOp

public ColorConvertOp(ColorSpace cspace,
                      RenderingHints hints)
Convert BufferedImage through a ColorSpace. This filter version is only valid for BufferedImages. The source image is converted to cspace. If the destination is not null, it is then converted to the destination colorspace. Normally this filter will only be used with a null destination.
Parameters:
cspace - The target color space.
hints - Rendering hints to use in conversion, or null.

ColorConvertOp

public ColorConvertOp(ColorSpace srcCspace,
                      ColorSpace dstCspace,
                      RenderingHints hints)

ColorConvertOp

public ColorConvertOp(ICC_Profile[] profiles,
                      RenderingHints hints)
Convert from a source image destination image color space. This constructor builds a ColorConvertOp from an array of ICC_Profiles. The source image will be converted through the sequence of color spaces defined by the profiles. If the sequence of profiles doesn't give a well-defined conversion, throws IllegalArgumentException. NOTE: Sun's docs don't clearly define what a well-defined conversion is - or perhaps someone smarter can come along and sort it out. For BufferedImages, when the first and last profiles match the requirements of the source and destination color space respectively, the corresponding conversion is unnecessary. TODO: code this up. I don't yet understand how you determine this. For Rasters, the first and last profiles must have the same number of bands as the source and destination Rasters, respectively. If this is not the case, or there fewer than 2 profiles, an IllegalArgumentException will be thrown.
Parameters:
profiles -
hints -

Method Details

createCompatibleDestImage

public BufferedImage createCompatibleDestImage(BufferedImage src,
                                               ColorModel dstCM)
Specified by:
createCompatibleDestImage in interface BufferedImageOp

createCompatibleDestRaster

public WritableRaster createCompatibleDestRaster(Raster src)
Specified by:
createCompatibleDestRaster in interface RasterOp

filter

public final BufferedImage filter(BufferedImage src,
                                  BufferedImage dst)
Specified by:
filter in interface BufferedImageOp

filter

public final WritableRaster filter(Raster src,
                                   WritableRaster dest)
Specified by:
filter in interface RasterOp

getBounds2D

public final Rectangle2D getBounds2D(BufferedImage src)
Specified by:
getBounds2D in interface BufferedImageOp

getBounds2D

public final Rectangle2D getBounds2D(Raster src)
Specified by:
getBounds2D in interface RasterOp

getICC_Profiles

public final ICC_Profile[] getICC_Profiles()

getPoint2D

public final Point2D getPoint2D(Point2D src,
                                Point2D dst)
Return corresponding destination point for source point. LookupOp will return the value of src unchanged.
Specified by:
getPoint2D in interface BufferedImageOp
getPoint2D in interface RasterOp
Parameters:
src - The source point.
dst - The destination point.

getRenderingHints

public final RenderingHints getRenderingHints()
Return the rendering hints for this op.
Specified by:
getRenderingHints in interface BufferedImageOp
getRenderingHints in interface RasterOp

ColorModel.java -- Copyright (C) 2004 Free Software Foundation This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.