## org.apache.batik.ext.awt.image.rendered
Class MorphologyOp

    java.lang.Object
      org.apache.batik.ext.awt.image.rendered.MorphologyOp

All Implemented Interfaces:
  java.awt.image.BufferedImageOp, java.awt.image.RasterOp

public class MorphologyOp
extends java.lang.Object
implements java.awt.image.BufferedImageOp, java.awt.image.RasterOp

This class provides an implementation for the SVG feMorphology filter, as defined in Chapter 15, section 20 of the SVG specification.

Constructor Summary
`MorphologyOp(int radiusX, int radiusY, boolean doDilation)`

Method Summary
`java.awt.image.BufferedImage` `createCompatibleDestImage(java.awt.image.BufferedImage src, java.awt.image.ColorModel destCM)`
`java.awt.image.WritableRaster` `createCompatibleDestRaster(java.awt.image.Raster src)`
`java.awt.image.BufferedImage` `filter(java.awt.image.BufferedImage src, java.awt.image.BufferedImage dest)` This implementation of filter does the morphology operation on a premultiplied alpha image.
`java.awt.image.WritableRaster` `filter(java.awt.image.Raster src, java.awt.image.WritableRaster dest)` Filters src and writes result into dest.
`java.awt.geom.Rectangle2D` `getBounds2D(java.awt.image.BufferedImage src)`
`java.awt.geom.Rectangle2D` `getBounds2D(java.awt.image.Raster src)`
`java.awt.geom.Point2D` `getPoint2D(java.awt.geom.Point2D srcPt, java.awt.geom.Point2D destPt)`
`java.awt.RenderingHints` `getRenderingHints()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### MorphologyOp

    public MorphologyOp(int radiusX,
                        int radiusY,
                        boolean doDilation)

Parameters:
  `radiusX` - defines the radius of filter operation on X-axis. Should not be negative. A value of zero will disable the effect of the operation on X-axis, as described in the SVG specification.
  `radiusY` - defines the radius of filter operation on Y-axis. Should not be negative. A value of zero will disable the effect of the operation on Y-axis, as described in the SVG specification.
  `doDilation` - defines whether to do dilation or erosion operation. Will do dilation when the value is true, erosion when false.

Method Detail

### getBounds2D

    public java.awt.geom.Rectangle2D getBounds2D(java.awt.image.Raster src)

  Specified by:
    `getBounds2D` in interface `java.awt.image.RasterOp`

### getBounds2D

    public java.awt.geom.Rectangle2D getBounds2D(java.awt.image.BufferedImage src)

  Specified by:
    `getBounds2D` in interface `java.awt.image.BufferedImageOp`

### getPoint2D

    public java.awt.geom.Point2D getPoint2D(java.awt.geom.Point2D srcPt,
                                            java.awt.geom.Point2D destPt)

  Specified by:
    `getPoint2D` in interface `java.awt.image.BufferedImageOp`

### getRenderingHints

    public java.awt.RenderingHints getRenderingHints()

  Specified by:
    `getRenderingHints` in interface `java.awt.image.BufferedImageOp`

### createCompatibleDestRaster

    public java.awt.image.WritableRaster createCompatibleDestRaster(java.awt.image.Raster src)

  Specified by:
    `createCompatibleDestRaster` in interface `java.awt.image.RasterOp`

### createCompatibleDestImage

    public java.awt.image.BufferedImage createCompatibleDestImage(java.awt.image.BufferedImage src,
                                                                  java.awt.image.ColorModel destCM)

  Specified by:
    `createCompatibleDestImage` in interface `java.awt.image.BufferedImageOp`

### filter

    public java.awt.image.WritableRaster filter(java.awt.image.Raster src,
                                                java.awt.image.WritableRaster dest)

  Filters src and writes result into dest. If dest if null, then a Raster is created. If dest and src refer to the same object, then the source is modified.

  The filtering kernel(the operation range for each pixel) is a rectangle of width 2*radiusX+1 and height radiusY+1

  Specified by:
    `filter` in interface `java.awt.image.RasterOp`
  Parameters:
    `src` - the Raster to be filtered
    `dest` - stores the filtered image. If null, a destination will be created. src and dest can refer to the same Raster, in which situation the src will be modified.

### filter

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

  This implementation of filter does the morphology operation on a premultiplied alpha image. This tends to muddy the colors. so something that is supposed to be a mostly transparent bright red may well become a muddy opaque red. Where as I think it should become a bright opaque red. Which is the result you would get if you were using unpremult data.

  Specified by:
    `filter` in interface `java.awt.image.BufferedImageOp`

Copyright © 2004 Apache Software Foundation. All Rights Reserved.