Package org.pushingpixels.substance.internal.utils.filters

# Class AbstractFilter

java.lang.Object
org.pushingpixels.substance.internal.utils.filters.AbstractFilter

All Implemented Interfaces:
  `BufferedImageOp`

Direct Known Subclasses:
  `ColorSchemeFilter`, `GrayscaleFilter`, `NegatedFilter`, `TranslucentFilter`

public abstract class AbstractFilter extends Object implements BufferedImageOp

Provides an abstract implementation of the `BufferedImageOp` interface. This class can be used to created new image filters based on `BufferedImageOp`.

## Constructor Summary

Constructors
Constructor
Description
`AbstractFilter()`

## Method Summary

Modifier and Type
Method
Description
`BufferedImage`
`createCompatibleDestImage(BufferedImage src, ColorModel destCM)`
`abstract BufferedImage`
`filter(BufferedImage src, BufferedImage dest)`
`Rectangle2D`
`getBounds2D(BufferedImage src)`
`protected int[]`
`getPixels(BufferedImage img, int x, int y, int w, int h, int[] pixels)`
`Point2D`
`getPoint2D(Point2D srcPt, Point2D dstPt)`
`RenderingHints`
`getRenderingHints()`
`protected void`
`setPixels(BufferedImage img, int x, int y, int w, int h, int[] pixels)`
Writes a rectangular area of pixels in the destination `BufferedImage`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### AbstractFilter

public AbstractFilter()

## Method Details

### filter

public abstract BufferedImage filter(BufferedImage src, BufferedImage dest)

Specified by:
  `filter` in interface `BufferedImageOp`

### getBounds2D

public Rectangle2D getBounds2D(BufferedImage src)

Specified by:
  `getBounds2D` in interface `BufferedImageOp`

### createCompatibleDestImage

public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)

Specified by:
  `createCompatibleDestImage` in interface `BufferedImageOp`

### getPoint2D

public Point2D getPoint2D(Point2D srcPt, Point2D dstPt)

Specified by:
  `getPoint2D` in interface `BufferedImageOp`

### getRenderingHints

public RenderingHints getRenderingHints()

Specified by:
  `getRenderingHints` in interface `BufferedImageOp`

### getPixels

protected int[] getPixels(BufferedImage img, int x, int y, int w, int h, int[] pixels)

### setPixels

protected void setPixels(BufferedImage img, int x, int y, int w, int h, int[] pixels)

Writes a rectangular area of pixels in the destination `BufferedImage`. Calling this method on an image of type different from `BufferedImage.TYPE_INT_ARGB` and `BufferedImage.TYPE_INT_RGB` will unmanage the image.

Parameters:
  `img` - the destination image
  `x` - the x location at which to start storing pixels
  `y` - the y location at which to start storing pixels
  `w` - the width of the rectangle of pixels to store
  `h` - the height of the rectangle of pixels to store
  `pixels` - an array of pixels, stored as integers
Throws:
  `IllegalArgumentException` - is `pixels` is non-null and of length < w*h