com.jhlabs.image

Class BoxBlurFilter

Implemented Interfaces:
BufferedImageOp, Cloneable

public class BoxBlurFilter
extends AbstractBufferedImageOp

A filter which performs a box blur on an image. The horizontal and vertical blurs can be specified separately and a number of iterations can be given which allows an approximation to Gaussian blur.

Constructor Summary

BoxBlurFilter()
Construct a default BoxBlurFilter.
BoxBlurFilter(float hRadius, float vRadius, int iterations)
Construct a BoxBlurFilter.

Method Summary

static void
blur(int[] in, int[] out, int width, int height, float radius)
Blur and transpose a block of ARGB pixels.
static void
blurFractional(int[] in, int[] out, int width, int height, float radius)
BufferedImage
filter(BufferedImage src, BufferedImage dst)
float
getHRadius()
Get the horizontal size of the blur.
int
getIterations()
Get the number of iterations the blur is performed.
boolean
getPremultiplyAlpha()
Get whether to premultiply the alpha channel.
float
getRadius()
Get the size of the blur.
float
getVRadius()
Get the vertical size of the blur.
void
setHRadius(float hRadius)
Set the horizontal size of the blur.
void
setIterations(int iterations)
Set the number of iterations the blur is performed.
void
setPremultiplyAlpha(boolean premultiplyAlpha)
Set whether to premultiply the alpha channel.
void
setRadius(float radius)
Set both the horizontal and vertical sizes of the blur.
void
setVRadius(float vRadius)
Set the vertical size of the blur.
String
toString()

Methods inherited from class com.jhlabs.image.AbstractBufferedImageOp

clone, createCompatibleDestImage, getBounds2D, getPoint2D, getRGB, getRenderingHints, setRGB

Constructor Details

BoxBlurFilter

public BoxBlurFilter()
Construct a default BoxBlurFilter.

BoxBlurFilter

public BoxBlurFilter(float hRadius,
                     float vRadius,
                     int iterations)
Construct a BoxBlurFilter.
Parameters:
hRadius - the horizontal radius of blur
vRadius - the vertical radius of blur
iterations - the number of time to iterate the blur

Method Details

blur

public static void blur(int[] in,
                        int[] out,
                        int width,
                        int height,
                        float radius)
Blur and transpose a block of ARGB pixels.
Parameters:
in - the input pixels
out - the output pixels
width - the width of the pixel array
height - the height of the pixel array
radius - the radius of blur

blurFractional

public static void blurFractional(int[] in,
                                  int[] out,
                                  int width,
                                  int height,
                                  float radius)

filter

public BufferedImage filter(BufferedImage src,
                            BufferedImage dst)

getHRadius

public float getHRadius()
Get the horizontal size of the blur.
Returns:
the radius of the blur in the horizontal direction

getIterations

public int getIterations()
Get the number of iterations the blur is performed.
Returns:
the number of iterations

getPremultiplyAlpha

public boolean getPremultiplyAlpha()
Get whether to premultiply the alpha channel.
Returns:
true to premultiply the alpha

getRadius

public float getRadius()
Get the size of the blur.
Returns:
the radius of the blur in the horizontal direction

getVRadius

public float getVRadius()
Get the vertical size of the blur.
Returns:
the radius of the blur in the vertical direction

setHRadius

public void setHRadius(float hRadius)
Set the horizontal size of the blur.
Parameters:
hRadius - the radius of the blur in the horizontal direction

setIterations

public void setIterations(int iterations)
Set the number of iterations the blur is performed.
Parameters:
iterations - the number of iterations

setPremultiplyAlpha

public void setPremultiplyAlpha(boolean premultiplyAlpha)
Set whether to premultiply the alpha channel.
Parameters:
premultiplyAlpha - true to premultiply the alpha

setRadius

public void setRadius(float radius)
Set both the horizontal and vertical sizes of the blur.
Parameters:
radius - the radius of the blur in both directions

setVRadius

public void setVRadius(float vRadius)
Set the vertical size of the blur.
Parameters:
vRadius - the radius of the blur in the vertical direction

toString

public String toString()