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