public class StackBlurFilter extends AbstractFilter
A stack blur filter can be used to create an approximation of a
Gaussian blur. The approximation is controlled by the number of times the
FastBlurFilter
is applied onto the source
picture. The default number of iterations, 3, provides a decent compromise
between speed and rendering quality.
The force of the blur can be controlled with a radius and the default radius is 3. Since the blur clamps values on the edges of the source picture, you might need to provide a picture with empty borders to avoid artifacts at the edges. The performance of this filter are independent from the radius.
Modifier and Type | Field and Description |
---|---|
private int |
iterations |
private int |
radius |
Constructor and Description |
---|
StackBlurFilter()
Creates a new blur filter with a default radius of 3 and 3 iterations.
|
StackBlurFilter(int radius)
Creates a new blur filter with the specified radius and 3 iterations.
|
StackBlurFilter(int radius,
int iterations)
Creates a new blur filter with the specified radius.
|
Modifier and Type | Method and Description |
---|---|
BufferedImage |
filter(BufferedImage src,
BufferedImage dst) |
int |
getEffectiveRadius()
Returns the effective radius of the stack blur.
|
int |
getIterations()
Returns the number of iterations used to approximate a Gaussian
blur.
|
int |
getRadius()
Returns the radius used by this filter, in pixels.
|
createCompatibleDestImage, getBounds2D, getPoint2D, getRenderingHints
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, clone, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, getPropertyChangeListeners, getPropertyChangeListeners, getVetoableChangeListeners, getVetoableChangeListeners, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
private final int radius
private final int iterations
public StackBlurFilter()
Creates a new blur filter with a default radius of 3 and 3 iterations.
public StackBlurFilter(int radius)
Creates a new blur filter with the specified radius and 3 iterations. If the radius is lower than 1, a radius of 1 will be used automatically.
radius
- the radius, in pixels, of the blurpublic StackBlurFilter(int radius, int iterations)
Creates a new blur filter with the specified radius. If the radius is lower than 1, a radius of 1 will be used automatically. The number of iterations controls the approximation to a Gaussian blur. If the number of iterations is lower than 1, one iteration will be used automatically.
radius
- the radius, in pixels, of the bluriterations
- the number of iterations to approximate a Gaussian blurpublic int getEffectiveRadius()
Returns the effective radius of the stack blur. If the radius of the blur is 1 and the stack iterations count is 3, then the effective blur radius is 1 * 3 = 3.
public int getRadius()
Returns the radius used by this filter, in pixels.
public int getIterations()
Returns the number of iterations used to approximate a Gaussian blur.
public BufferedImage filter(BufferedImage src, BufferedImage dst)
filter
in interface BufferedImageOp
filter
in class AbstractFilter
WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses