1 /* Copyright (C) 2005-2011 Fabio Riccardi */
2 
3 /*
4  * $RCSfile: LCColorConvertCRIF.java,v $
5  *
6  * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
7  *
8  * Use is subject to license terms.
9  *
10  * $Revision: 1.2 $
11  * $Date: 2005/03/28 17:45:12 $
12  * $State: Exp $
13  */
14 
15 package com.lightcrafts.jai.opimage;
16 
17 import java.awt.RenderingHints;
18 import java.awt.color.ICC_Profile;
19 import java.awt.image.ColorModel;
20 import java.awt.image.RenderedImage;
21 import java.awt.image.renderable.ParameterBlock;
22 import com.lightcrafts.mediax.jai.CRIFImpl;
23 import com.lightcrafts.mediax.jai.ImageLayout;
24 import com.lightcrafts.media.jai.opimage.RIFUtil;
25 import com.lightcrafts.jai.operator.LCMSColorConvertDescriptor;
26 
27 
28 /**
29  * A <code>CRIF</code> supporting the "ColorConvert" operation in the rendered
30  * and renderable image layers.
31  *
32  * @see com.lightcrafts.mediax.jai.operator.ColorConvertDescriptor
33  * @see com.lightcrafts.media.jai.opimage.ColorConvertOpImage
34  *
35  * @since EA4
36  *
37  */
38 public class LCMSColorConvertCRIF extends CRIFImpl {
39 
40     /** Constructor. */
LCMSColorConvertCRIF()41     public LCMSColorConvertCRIF() {
42         super("LCMSColorConvert");
43     }
44 
45     /**
46      * Creates a new instance of <code>ColorConvertOpImage</code> in the
47      * rendered layer.
48      *
49      * @param args         The source image and the destination ColorModel.
50      * @param renderHints  Optionally contains destination image layout.
51      */
52     @Override
create(ParameterBlock args, RenderingHints renderHints)53     public RenderedImage create(ParameterBlock args,
54                                 RenderingHints renderHints) {
55         // Get ImageLayout from renderHints if any.
56         ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints);
57 
58         return new LCMSColorConvertOpImage(args.getRenderedSource(0),
59                                        renderHints,
60 				       layout,
61 				       (ColorModel) args.getObjectParameter(0),
62                                        (LCMSColorConvertDescriptor.RenderingIntent) args.getObjectParameter(1),
63                                        (ICC_Profile) args.getObjectParameter(2),
64                                        (LCMSColorConvertDescriptor.RenderingIntent) args.getObjectParameter(3));
65     }
66 }
67