Class StackBlurFilter
- All Implemented Interfaces:
BufferedImageOp
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.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreates 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. -
Method Summary
Modifier and TypeMethodDescriptionfilter
(BufferedImage src, BufferedImage dst) int
Returns the effective radius of the stack blur.int
Returns the number of iterations used to approximate a Gaussian blur.int
Returns the radius used by this filter, in pixels.Methods inherited from class org.jdesktop.swingx.image.AbstractFilter
createCompatibleDestImage, getBounds2D, getPoint2D, getRenderingHints
Methods inherited from class org.jdesktop.beans.AbstractBean
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, clone, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, getPropertyChangeListeners, getPropertyChangeListeners, getVetoableChangeListeners, getVetoableChangeListeners, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
-
Field Details
-
radius
private final int radius -
iterations
private final int iterations
-
-
Constructor Details
-
StackBlurFilter
public StackBlurFilter()Creates a new blur filter with a default radius of 3 and 3 iterations.
-
StackBlurFilter
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.
- Parameters:
radius
- the radius, in pixels, of the blur
-
StackBlurFilter
public 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.
- Parameters:
radius
- the radius, in pixels, of the bluriterations
- the number of iterations to approximate a Gaussian blur
-
-
Method Details
-
getEffectiveRadius
public 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.
- Returns:
- the number of iterations times the blur radius
-
getRadius
public int getRadius()Returns the radius used by this filter, in pixels.
- Returns:
- the radius of the blur
-
getIterations
public int getIterations()Returns the number of iterations used to approximate a Gaussian blur.
- Returns:
- the number of iterations used by this blur
-
filter
- Specified by:
filter
in interfaceBufferedImageOp
- Specified by:
filter
in classAbstractFilter
-