com.jhlabs.image
Class VariableBlurFilter

java.lang.Object
  extended by com.jhlabs.image.AbstractBufferedImageOp
      extended by com.jhlabs.image.VariableBlurFilter
All Implemented Interfaces:
java.awt.image.BufferedImageOp, java.lang.Cloneable

public class VariableBlurFilter
extends AbstractBufferedImageOp

A filter which performs a box blur with a different blur radius at each pixel. The radius can either be specified by providing a blur mask image or by overriding the blurRadiusAt method.


Constructor Summary
VariableBlurFilter()
           
 
Method Summary
 void blur(int[] in, int[] out, int width, int height, int radius, int pass)
           
protected  float blurRadiusAt(int x, int y, int width, int height)
          Override this to get a different blur radius at eahc point.
 java.awt.image.BufferedImage createCompatibleDestImage(java.awt.image.BufferedImage src, java.awt.image.ColorModel dstCM)
           
 java.awt.image.BufferedImage filter(java.awt.image.BufferedImage src, java.awt.image.BufferedImage dst)
           
 java.awt.image.BufferedImage getBlurMask()
          Get the mask used to give the amount of blur at each point.
 java.awt.geom.Rectangle2D getBounds2D(java.awt.image.BufferedImage src)
           
 int getHRadius()
          Get the horizontal size of the blur.
 int getIterations()
          Get the number of iterations the blur is performed.
 java.awt.geom.Point2D getPoint2D(java.awt.geom.Point2D srcPt, java.awt.geom.Point2D dstPt)
           
 boolean getPremultiplyAlpha()
          Get whether to premultiply the alpha channel.
 int getRadius()
          Get the radius of the effect.
 java.awt.RenderingHints getRenderingHints()
           
 int getVRadius()
          Get the vertical size of the blur.
 void setBlurMask(java.awt.image.BufferedImage blurMask)
          Set the mask used to give the amount of blur at each point.
 void setHRadius(int 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(int radius)
          Set the radius of the effect.
 void setVRadius(int vRadius)
          Set the vertical size of the blur.
 java.lang.String toString()
           
 
Methods inherited from class com.jhlabs.image.AbstractBufferedImageOp
clone, getRGB, setRGB
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VariableBlurFilter

public VariableBlurFilter()
Method Detail

setPremultiplyAlpha

public void setPremultiplyAlpha(boolean premultiplyAlpha)
Set whether to premultiply the alpha channel.

Parameters:
premultiplyAlpha - true to premultiply the alpha
See Also:
getPremultiplyAlpha()

getPremultiplyAlpha

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

Returns:
true to premultiply the alpha
See Also:
setPremultiplyAlpha(boolean)

filter

public java.awt.image.BufferedImage filter(java.awt.image.BufferedImage src,
                                           java.awt.image.BufferedImage dst)

createCompatibleDestImage

public java.awt.image.BufferedImage createCompatibleDestImage(java.awt.image.BufferedImage src,
                                                              java.awt.image.ColorModel dstCM)
Specified by:
createCompatibleDestImage in interface java.awt.image.BufferedImageOp
Overrides:
createCompatibleDestImage in class AbstractBufferedImageOp

getBounds2D

public java.awt.geom.Rectangle2D getBounds2D(java.awt.image.BufferedImage src)
Specified by:
getBounds2D in interface java.awt.image.BufferedImageOp
Overrides:
getBounds2D in class AbstractBufferedImageOp

getPoint2D

public java.awt.geom.Point2D getPoint2D(java.awt.geom.Point2D srcPt,
                                        java.awt.geom.Point2D dstPt)
Specified by:
getPoint2D in interface java.awt.image.BufferedImageOp
Overrides:
getPoint2D in class AbstractBufferedImageOp

getRenderingHints

public java.awt.RenderingHints getRenderingHints()
Specified by:
getRenderingHints in interface java.awt.image.BufferedImageOp
Overrides:
getRenderingHints in class AbstractBufferedImageOp

blur

public void blur(int[] in,
                 int[] out,
                 int width,
                 int height,
                 int radius,
                 int pass)

blurRadiusAt

protected float blurRadiusAt(int x,
                             int y,
                             int width,
                             int height)
Override this to get a different blur radius at eahc point.

Parameters:
x - the x coordinate
y - the y coordinate
width - the width of the image
height - the height of the image
Returns:
the blur radius

setHRadius

public void setHRadius(int hRadius)
Set the horizontal size of the blur.

Parameters:
hRadius - the radius of the blur in the horizontal direction
See Also:
getHRadius()

getHRadius

public int getHRadius()
Get the horizontal size of the blur.

Returns:
the radius of the blur in the horizontal direction
See Also:
setHRadius(int)

setVRadius

public void setVRadius(int vRadius)
Set the vertical size of the blur.

Parameters:
vRadius - the radius of the blur in the vertical direction
See Also:
getVRadius()

getVRadius

public int getVRadius()
Get the vertical size of the blur.

Returns:
the radius of the blur in the vertical direction
See Also:
setVRadius(int)

setRadius

public void setRadius(int radius)
Set the radius of the effect.

Parameters:
radius - the radius
See Also:
getRadius()

getRadius

public int getRadius()
Get the radius of the effect.

Returns:
the radius
See Also:
setRadius(int)

setIterations

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

Parameters:
iterations - the number of iterations
See Also:
getIterations()

getIterations

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

Returns:
the number of iterations
See Also:
setIterations(int)

setBlurMask

public void setBlurMask(java.awt.image.BufferedImage blurMask)
Set the mask used to give the amount of blur at each point.

Parameters:
blurMask - the mask
See Also:
getBlurMask()

getBlurMask

public java.awt.image.BufferedImage getBlurMask()
Get the mask used to give the amount of blur at each point.

Returns:
the mask
See Also:
setBlurMask(java.awt.image.BufferedImage)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object