Class FilterResRable8Bit
- java.lang.Object
-
- org.apache.batik.ext.awt.image.renderable.AbstractRable
-
- org.apache.batik.ext.awt.image.renderable.FilterResRable8Bit
-
- All Implemented Interfaces:
java.awt.image.renderable.RenderableImage
,Filter
,FilterResRable
,PaintRable
public class FilterResRable8Bit extends AbstractRable implements FilterResRable, PaintRable
Interface for implementing filter resolution.
-
-
Field Summary
-
Fields inherited from class org.apache.batik.ext.awt.image.renderable.AbstractRable
props, srcs, stamp
-
-
Constructor Summary
Constructors Constructor Description FilterResRable8Bit()
FilterResRable8Bit(Filter src, int filterResX, int filterResY)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
allPaintRable(java.awt.image.renderable.RenderableImage ri)
This returns true ifri
and all ofri
's sources implement the PaintRable interface.java.awt.image.RenderedImage
createRendering(java.awt.image.renderable.RenderContext renderContext)
boolean
distributeAcross(java.awt.image.renderable.RenderableImage src, java.awt.Graphics2D g2d)
This function attempts to distribute the filterRes operation across src.int
getFilterResolutionX()
Returns the resolution along the X axis.int
getFilterResolutionY()
Returns the resolution along the Y axis.Filter
getSource()
Returns the source to be cropped.boolean
paintRable(java.awt.Graphics2D g2d)
Should perform the equivilent action as createRendering followed by drawing the RenderedImage.void
setFilterResolutionX(int filterResolutionX)
Sets the resolution along the X axis, i.e., the maximum size for intermediate images along that axis.void
setFilterResolutionY(int filterResolutionY)
Sets the resolution along the Y axis, i.e., the maximum size for intermediate images along that axis.void
setSource(Filter src)
Sets the source to be cropped-
Methods inherited from class org.apache.batik.ext.awt.image.renderable.AbstractRable
createDefaultRendering, createScaledRendering, getBounds2D, getDependencyRegion, getDirtyRegion, getHeight, getMinX, getMinY, getProperty, getPropertyNames, getSources, getTimeStamp, getWidth, init, init, init, init, isDynamic, touch
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.batik.ext.awt.image.renderable.Filter
getBounds2D, getDependencyRegion, getDirtyRegion, getTimeStamp
-
-
-
-
Constructor Detail
-
FilterResRable8Bit
public FilterResRable8Bit()
-
FilterResRable8Bit
public FilterResRable8Bit(Filter src, int filterResX, int filterResY)
-
-
Method Detail
-
getSource
public Filter getSource()
Returns the source to be cropped.- Specified by:
getSource
in interfaceFilterResRable
-
setSource
public void setSource(Filter src)
Sets the source to be cropped- Specified by:
setSource
in interfaceFilterResRable
- Parameters:
src
- image to offset.
-
getFilterResolutionX
public int getFilterResolutionX()
Returns the resolution along the X axis.- Specified by:
getFilterResolutionX
in interfaceFilterResRable
-
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 interfaceFilterResRable
-
getFilterResolutionY
public int getFilterResolutionY()
Returns the resolution along the Y axis.- Specified by:
getFilterResolutionY
in interfaceFilterResRable
-
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 interfaceFilterResRable
-
allPaintRable
public boolean allPaintRable(java.awt.image.renderable.RenderableImage ri)
This returns true ifri
and all ofri
'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(java.awt.image.renderable.RenderableImage src, java.awt.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(java.awt.Graphics2D g2d)
Should perform the equivilent action as createRendering followed by drawing the RenderedImage.- Specified by:
paintRable
in interfacePaintRable
- 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 java.awt.image.RenderedImage createRendering(java.awt.image.renderable.RenderContext renderContext)
- Specified by:
createRendering
in interfacejava.awt.image.renderable.RenderableImage
-
-