Class FilterResRable8Bit

java.lang.Object
org.apache.batik.ext.awt.image.renderable.AbstractRable
org.apache.batik.ext.awt.image.renderable.FilterResRable8Bit
All Implemented Interfaces:
RenderableImage, Filter, FilterResRable, PaintRable

public class FilterResRable8Bit extends AbstractRable implements FilterResRable, PaintRable
Interface for implementing filter resolution.
  • Constructor Details

    • FilterResRable8Bit

      public FilterResRable8Bit()
    • FilterResRable8Bit

      public FilterResRable8Bit(Filter src, int filterResX, int filterResY)
  • Method Details

    • getSource

      public Filter getSource()
      Returns the source to be cropped.
      Specified by:
      getSource in interface FilterResRable
    • setSource

      public void setSource(Filter src)
      Sets the source to be cropped
      Specified by:
      setSource in interface FilterResRable
      Parameters:
      src - image to offset.
    • getFilterResolutionX

      public int getFilterResolutionX()
      Returns the resolution along the X axis.
      Specified by:
      getFilterResolutionX in interface FilterResRable
    • setFilterResolutionX

      public void setFilterResolutionX(int filterResolutionX)
      Sets the resolution along the X axis, i.e., the maximum size for intermediate images along that axis. The value should be greater than zero to have an effect. Negative values are illegal.
      Specified by:
      setFilterResolutionX in interface FilterResRable
    • getFilterResolutionY

      public int getFilterResolutionY()
      Returns the resolution along the Y axis.
      Specified by:
      getFilterResolutionY in interface FilterResRable
    • setFilterResolutionY

      public void setFilterResolutionY(int filterResolutionY)
      Sets the resolution along the Y axis, i.e., the maximum size for intermediate images along that axis. If the Y-value is less than zero, the scale applied to the rendered images is computed to preserve the image's aspect ratio
      Specified by:
      setFilterResolutionY in interface FilterResRable
    • allPaintRable

      public boolean allPaintRable(RenderableImage ri)
      This returns true if ri and all of ri's sources implement the PaintRable interface. This is used to indicate that the chain has a good potential for bypassing the filterRes operation entirely. Ideally there would be a checkPaintRable method in PaintRable that could be used to get a definate answer about a filters ability to draw directly to a Graphics2D (this can sometimes 'fail' because of the way the Graphics2D is currently configured).
    • distributeAcross

      public boolean distributeAcross(RenderableImage src, Graphics2D g2d)
      This function attempts to distribute the filterRes operation across src. Right now it knows about two operations, pad and composite. It's main target is the composite but often pad operations are sprinked in the chain so it needs to know about them. This list could be extended however if it gets much longer it should probably be rolled into a new 'helper interface' like PaintRable. NOTE: This is essentially a bad hack, but it is a hack that is recomended by the SVG specification so I do it.
    • paintRable

      public boolean paintRable(Graphics2D g2d)
      Should perform the equivilent action as createRendering followed by drawing the RenderedImage.
      Specified by:
      paintRable in interface PaintRable
      Parameters:
      g2d - The Graphics2D to draw to.
      Returns:
      true if the paint call succeeded, false if for some reason the paint failed (in which case a createRendering should be used).
    • createRendering

      public RenderedImage createRendering(RenderContext renderContext)
      Specified by:
      createRendering in interface RenderableImage