package com.marshalchen.common.uimodule.imageprocessing.filter.effect; import com.marshalchen.common.uimodule.imageprocessing.filter.GroupFilter; import com.marshalchen.common.uimodule.imageprocessing.filter.processing.GaussianBlurFilter; /** * This uses a similar process as the GPUImageToonFilter, only it precedes the toon effect with a Gaussian blur to smooth out noise. * blurSize: A multiplier for the prepass blur size, ranging from 0.0 on up * threshold: The sensitivity of the edge detection, with lower values being more sensitive. Ranges from 0.0 to 1.0 * quantizationLevels: The number of color levels to represent in the final image. * @author Chris Batt */ public class SmoothToonFilter extends GroupFilter { public SmoothToonFilter(float blurSize, float threshold, float quantizationLevels) { GaussianBlurFilter blur = new GaussianBlurFilter(blurSize); ToonFilter toon = new ToonFilter(threshold, quantizationLevels); blur.addTarget(toon); toon.addTarget(this); registerInitialFilter(blur); registerTerminalFilter(toon); } }