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