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]

Reply via email to