deweese 02/04/10 14:36:45
Modified: sources/org/apache/batik/bridge
AbstractSVGFilterPrimitiveElementBridge.java
sources/org/apache/batik/gvt/filter BackgroundRable8Bit.java
Log:
Fixes a bug in background image handleing.
Revision Changes Path
1.8 +15 -5
xml-batik/sources/org/apache/batik/bridge/AbstractSVGFilterPrimitiveElementBridge.java
Index: AbstractSVGFilterPrimitiveElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/AbstractSVGFilterPrimitiveElementBridge.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- AbstractSVGFilterPrimitiveElementBridge.java 18 Mar 2002 10:28:19 -0000
1.7
+++ AbstractSVGFilterPrimitiveElementBridge.java 10 Apr 2002 21:36:45 -0000
1.8
@@ -17,6 +17,8 @@
import org.apache.batik.ext.awt.image.renderable.FilterAlphaRable;
import org.apache.batik.ext.awt.image.renderable.FilterColorInterpolation;
import org.apache.batik.ext.awt.image.renderable.FloodRable8Bit;
+import org.apache.batik.ext.awt.image.PadMode;
+import org.apache.batik.ext.awt.image.renderable.PadRable8Bit;
import org.apache.batik.gvt.GraphicsNode;
import org.apache.batik.gvt.filter.BackgroundRable8Bit;
@@ -28,7 +30,7 @@
* The base bridge class for SVG filter primitives.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: AbstractSVGFilterPrimitiveElementBridge.java,v 1.7 2002/03/18
10:28:19 hillion Exp $
+ * @version $Id: AbstractSVGFilterPrimitiveElementBridge.java,v 1.8 2002/04/10
21:36:45 deweese Exp $
*/
public abstract class AbstractSVGFilterPrimitiveElementBridge
extends AbstractSVGBridge
@@ -153,20 +155,24 @@
Map filterMap,
BridgeContext ctx) {
+ // SourceGraphic
+ Filter srcG = (Filter)filterMap.get(SVG_SOURCE_GRAPHIC_VALUE);
+ Rectangle2D filterRegion = srcG.getBounds2D();
+
int length = s.length();
Filter source = null;
switch (length) {
case 13:
if (SVG_SOURCE_GRAPHIC_VALUE.equals(s)) {
// SourceGraphic
- source = (Filter)filterMap.get(SVG_SOURCE_GRAPHIC_VALUE);
+ source = srcG;
}
break;
case 11:
if (s.charAt(1) == SVG_SOURCE_ALPHA_VALUE.charAt(1)) {
if (SVG_SOURCE_ALPHA_VALUE.equals(s)) {
// SourceAlpha
- source = (Filter)filterMap.get(SVG_SOURCE_GRAPHIC_VALUE);
+ source = srcG;
source = new FilterAlphaRable(source);
}
} else if (SVG_STROKE_PAINT_VALUE.equals(s)) {
@@ -174,7 +180,7 @@
Paint paint = PaintServer.convertStrokePaint
(filteredElement,filteredNode, ctx);
// <!> FIXME: Should we create a transparent flood ???
- source = new FloodRable8Bit(INFINITE_FILTER_REGION, paint);
+ source = new FloodRable8Bit(filterRegion, paint);
}
break;
case 15:
@@ -182,11 +188,15 @@
if (SVG_BACKGROUND_IMAGE_VALUE.equals(s)) {
// BackgroundImage
source = new BackgroundRable8Bit(filteredNode);
+ source = new PadRable8Bit(source, filterRegion,
+ PadMode.ZERO_PAD);
}
} else if (SVG_BACKGROUND_ALPHA_VALUE.equals(s)) {
// BackgroundAlpha
source = new BackgroundRable8Bit(filteredNode);
source = new FilterAlphaRable(source);
+ source = new PadRable8Bit(source, filterRegion,
+ PadMode.ZERO_PAD);
}
break;
case 9:
@@ -197,7 +207,7 @@
if (paint == null) {
paint = new Color(0, 0, 0, 0); // create a transparent flood
}
- source = new FloodRable8Bit(INFINITE_FILTER_REGION, paint);
+ source = new FloodRable8Bit(filterRegion, paint);
}
break;
}
1.11 +15 -6
xml-batik/sources/org/apache/batik/gvt/filter/BackgroundRable8Bit.java
Index: BackgroundRable8Bit.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/gvt/filter/BackgroundRable8Bit.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- BackgroundRable8Bit.java 20 Sep 2001 19:36:05 -0000 1.10
+++ BackgroundRable8Bit.java 10 Apr 2002 21:36:45 -0000 1.11
@@ -35,6 +35,8 @@
import org.apache.batik.ext.awt.image.renderable.AbstractRable;
import org.apache.batik.ext.awt.image.renderable.CompositeRable8Bit;
import org.apache.batik.ext.awt.image.renderable.AffineRable8Bit;
+import org.apache.batik.ext.awt.image.renderable.PadRable8Bit;
+import org.apache.batik.ext.awt.image.PadMode;
/**
* This implementation of RenderableImage will render its input
@@ -42,7 +44,7 @@
* createRendering methods.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a>
- * @version $Id: BackgroundRable8Bit.java,v 1.10 2001/09/20 19:36:05 deweese Exp $
+ * @version $Id: BackgroundRable8Bit.java,v 1.11 2002/04/10 21:36:45 deweese Exp $
*/
public class BackgroundRable8Bit
extends AbstractRable {
@@ -353,8 +355,6 @@
return false;
}
- Filter background = null;
-
/**
* Creates a RenderedImage that represented a rendering of this image
* using a given RenderContext. This is the most general way to obtain a
@@ -388,12 +388,21 @@
Rectangle2D.intersect(r2d, aoiR2d, r2d);
}
- background = getBackground(node, null, r2d);
-
+ Filter background = getBackground(node, null, r2d);
+
if ( background == null)
return null;
+
+ background = new PadRable8Bit(background, r2d, PadMode.ZERO_PAD);
- RenderedImage ri = background.createRendering(renderContext);
+
+ RenderedImage ri = background.createRendering
+ (new RenderContext(renderContext.getTransform(), r2d,
+ renderContext.getRenderingHints()));
+ // System.out.println("RI: [" + ri.getMinX() + ", "
+ // + ri.getMinY() + ", " +
+ // + ri.getWidth() + ", " +
+ // + ri.getHeight() + "]");
// org.ImageDisplay.showImage("BG: ", ri);
return ri;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]