1 /* Copyright (C) 2005-2011 Fabio Riccardi */
2 
3 /*
4  * $RCSfile: ErodeRIF.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.1 $
11  * $Date: 2005/02/11 04:56:24 $
12  * $State: Exp $
13  */
14 package com.lightcrafts.jai.opimage;
15 
16 import com.lightcrafts.media.jai.opimage.RIFUtil;
17 
18 import java.awt.RenderingHints;
19 import java.awt.image.RenderedImage;
20 import java.awt.image.renderable.ParameterBlock;
21 import java.awt.image.renderable.RenderedImageFactory;
22 import com.lightcrafts.mediax.jai.BorderExtender;
23 import com.lightcrafts.mediax.jai.ImageLayout;
24 import com.lightcrafts.mediax.jai.KernelJAI;
25 
26 /**
27  * @see LCErodeOpImage
28  */
29 public class LCErodeRIF implements RenderedImageFactory {
30 
31     /** Constructor. */
LCErodeRIF()32     public LCErodeRIF() {}
33 
34     /**
35      * Create a new instance of ErodeOpImage in the rendered layer.
36      * This method satisfies the implementation of RIF.
37      *
38      * @param paramBlock  The source image and the erosion kernel.
39      */
create(ParameterBlock paramBlock, RenderingHints renderHints)40     public RenderedImage create(ParameterBlock paramBlock,
41                                 RenderingHints renderHints) {
42         // Get ImageLayout from renderHints if any.
43         ImageLayout layout = RIFUtil.getImageLayoutHint(renderHints);
44 
45 
46         // Get BorderExtender from renderHints if any.
47         BorderExtender extender = RIFUtil.getBorderExtenderHint(renderHints);
48 
49         KernelJAI unRotatedKernel =
50             (KernelJAI)paramBlock.getObjectParameter(0);
51         KernelJAI kJAI = unRotatedKernel.getRotatedKernel();
52 
53 	RenderedImage source = paramBlock.getRenderedSource(0);
54 
55         return new LCErodeOpImage(source,
56                                   extender,
57                                   renderHints,
58                                   layout,
59                                   kJAI);
60     }
61 }
62