You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by cj...@apache.org on 2001/09/19 14:52:32 UTC

cvs commit: xml-batik/sources/org/apache/batik/svggen AbstractImageHandlerEncoder.java DefaultImageHandler.java SVGGraphics2DUnitTester.java

cjolif      01/09/19 05:52:32

  Modified:    sources/org/apache/batik/svggen
                        AbstractImageHandlerEncoder.java
                        DefaultImageHandler.java
                        SVGGraphics2DUnitTester.java
  Log:
  reduce dependencies from SVGGraphics2D on other modules
  
  Revision  Changes    Path
  1.10      +44 -7     xml-batik/sources/org/apache/batik/svggen/AbstractImageHandlerEncoder.java
  
  Index: AbstractImageHandlerEncoder.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/svggen/AbstractImageHandlerEncoder.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- AbstractImageHandlerEncoder.java	2001/06/21 12:44:37	1.9
  +++ AbstractImageHandlerEncoder.java	2001/09/19 12:52:32	1.10
  @@ -9,18 +9,17 @@
   package org.apache.batik.svggen;
   
   import java.awt.Graphics2D;
  +import java.awt.Dimension;
   import java.awt.Image;
   import java.awt.image.RenderedImage;
   import java.awt.image.BufferedImage;
   import java.awt.image.renderable.RenderableImage;
   import java.awt.geom.AffineTransform;
  +import java.lang.reflect.Method;
   import java.io.File;
   import java.net.MalformedURLException;
  -import java.awt.Dimension;
   import org.w3c.dom.Element;
   
  -import org.apache.batik.ext.awt.image.GraphicsUtil;
  -
   /**
    * This abstract implementation of the ImageHandler interface
    * is intended to be the base class for ImageHandlers that generate
  @@ -30,7 +29,7 @@
    * of the file created by this handler.
    *
    * @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
  - * @version $Id: AbstractImageHandlerEncoder.java,v 1.9 2001/06/21 12:44:37 deweese Exp $
  + * @version $Id: AbstractImageHandlerEncoder.java,v 1.10 2001/09/19 12:52:32 cjolif Exp $
    * @see             org.apache.batik.svggen.SVGGraphics2D
    * @see             org.apache.batik.svggen.ImageHandlerJPEGEncoder
    * @see             org.apache.batik.svggen.ImageHandlerPNGEncoder
  @@ -48,6 +47,44 @@
        */
       private String urlRoot = "";
   
  +    // for createGraphics method.
  +    private static Method createGraphics = null;
  +    private static boolean initDone = false;
  +    private final static Class[] paramc = new Class[] {BufferedImage.class};
  +    private static Object[] paramo = null;
  +
  +    /**
  +     * This method creates a <code>Graphics2D</code> from a
  +     * <code>BufferedImage</code>. If Batik extensions to AWT are
  +     * in the CLASSPATH it uses them, otherwise, it uses the regular
  +     * AWT method.
  +     */
  +    private static Graphics2D createGraphics(BufferedImage buf) {
  +        if (!initDone) {
  +            try {
  +                Class clazz = Class.forName("org.apache.batik.ext.awt.image.GraphicsUtil");
  +                createGraphics = clazz.getMethod("createGraphics", paramc);
  +                paramo = new Object[1];
  +            } catch (Throwable t) {
  +                // happen only if Batik extensions are not their
  +            } finally {
  +                initDone = true;
  +            }
  +        }
  +        if (createGraphics == null)
  +            return buf.createGraphics();
  +        else {
  +            paramo[0] = buf;
  +            Graphics2D g2d = null;
  +            try {
  +                g2d = (Graphics2D)createGraphics.invoke(null, paramo);
  +            } catch (Exception e) {
  +                // should not happened
  +            }
  +            return g2d;
  +        }
  +    }
  +
       /**
        * @param generatorContext the context in which the handler will work.
        * @param imageDir directory where this handler should generate images.
  @@ -91,7 +128,7 @@
                                          image.getHeight(null));
           BufferedImage buf = buildBufferedImage(size);
   
  -        Graphics2D g = GraphicsUtil.createGraphics(buf);
  +        Graphics2D g = createGraphics(buf);
   
           g.drawImage(image, 0, 0, null);
           g.dispose();
  @@ -111,7 +148,7 @@
           Dimension size = new Dimension(image.getWidth(), image.getHeight());
           BufferedImage buf = buildBufferedImage(size);
   
  -        Graphics2D g = GraphicsUtil.createGraphics(buf);
  +        Graphics2D g = createGraphics(buf);
   
           g.drawRenderedImage(image, IDENTITY);
           g.dispose();
  @@ -132,7 +169,7 @@
                                          (int)Math.ceil(image.getHeight()));
           BufferedImage buf = buildBufferedImage(size);
   
  -        Graphics2D g = GraphicsUtil.createGraphics(buf);
  +        Graphics2D g = createGraphics(buf);
   
           g.drawRenderableImage(image, IDENTITY);
           g.dispose();
  
  
  
  1.8       +4 -3      xml-batik/sources/org/apache/batik/svggen/DefaultImageHandler.java
  
  Index: DefaultImageHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/svggen/DefaultImageHandler.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DefaultImageHandler.java	2001/04/02 15:48:08	1.7
  +++ DefaultImageHandler.java	2001/09/19 12:52:32	1.8
  @@ -20,13 +20,14 @@
    * attribute and sets the width and height of the element.
    *
    * @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
  - * @version $Id: DefaultImageHandler.java,v 1.7 2001/04/02 15:48:08 cjolif Exp $
  + * @version $Id: DefaultImageHandler.java,v 1.8 2001/09/19 12:52:32 cjolif Exp $
    * @see             org.apache.batik.svggen.SVGGraphics2D
    */
   public class DefaultImageHandler implements ImageHandler, ErrorConstants {
  -    // reducing the dependency on dom package by doing this only once:
  +    // duplicate the string here to remove dependencies on
  +    // org.apache.batik.dom.util.XLinkSupport
       static final String XLINK_NAMESPACE_URI =
  -        org.apache.batik.dom.util.XLinkSupport.XLINK_NAMESPACE_URI;
  +        "http://www.w3.org/1999/xlink";
   
       /**
        * Build a <code>DefaultImageHandler</code>.
  
  
  
  1.8       +6 -3      xml-batik/sources/org/apache/batik/svggen/SVGGraphics2DUnitTester.java
  
  Index: SVGGraphics2DUnitTester.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/svggen/SVGGraphics2DUnitTester.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SVGGraphics2DUnitTester.java	2001/08/03 04:21:53	1.7
  +++ SVGGraphics2DUnitTester.java	2001/09/19 12:52:32	1.8
  @@ -31,7 +31,7 @@
    *
    * @author <a href="mailto:cjolif@ilog.fr">Christophe Jolif</a>
    * @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
  - * @version $Id: SVGGraphics2DUnitTester.java,v 1.7 2001/08/03 04:21:53 bella Exp $
  + * @version $Id: SVGGraphics2DUnitTester.java,v 1.8 2001/09/19 12:52:32 cjolif Exp $
    */
   public class SVGGraphics2DUnitTester implements SVGConstants {
       private String[] args;
  @@ -338,7 +338,8 @@
   
           imageHandler.handleImage((RenderedImage)testImage, imageElement,
                                    getContext(domFactory));
  -        System.out.println("Generated xlink:href is : " + imageElement.getAttributeNS(null, SVGSyntax.SVG_HREF_ATTRIBUTE));
  +        System.out.println("Generated xlink:href is : " +
  +                           imageElement.getAttributeNS(AbstractImageHandlerEncoder.XLINK_NAMESPACE_URI, "href"));
       }
   
       public void testImageHandlerPNGEncoder() throws Exception {
  @@ -366,7 +367,9 @@
   
           imageHandler.handleImage((RenderedImage)testImage, imageElement,
                                    getContext(domFactory));
  -        System.out.println("Generated xlink:href is : " + imageElement.getAttributeNS(null, SVGSyntax.ATTR_XLINK_HREF));
  +        System.out.println("Generated xlink:href is : " + imageElement.
  +                           getAttributeNS(AbstractImageHandlerEncoder.XLINK_NAMESPACE_URI,
  +                                          "href"));
       }
   
       public void testSVGAlphaComposite() throws Exception {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-dev-help@xml.apache.org