I am trying to create an SVG from a BufferedImage using the example at https://xmlgraphics.apache.org/batik/using/svg-generator.html. The image is a TIFF read from disk using Apache Commons Imaging. I can successfully export this image to PNG. However cannot create an SVG. The code is
public static void main(String[] args) { try { File inFile = new File(args[0]); BufferedImage sourceImage = ImageReadExample.imageReadExample(inFile); // Imaging.writeImage(sourceImage, new File("sourceImage.png"), ImageFormats.PNG, null); // Get a DOMImplementation. DOMImplementation domImpl = GenericDOMImplementation.getDOMImplementation(); // Create an instance of org.w3c.dom.Document. String svgNS = "http://www.w3.org/2000/svg"; Document document = domImpl.createDocument(svgNS, "svg", null); // Create an instance of the SVG Generator. SVGGraphics2D svgGenerator = new SVGGraphics2D(document); // Ask the test to render into the SVG Graphics2D implementation. svgGenerator.drawImage(sourceImage, 0, 0, null); ... When I end with `Imaging.writeImage(sourceImage, new File("sourceImage.png"), ImageFormats.PNG, null);` a PNG is created. However at `svgGenerator.drawImage(sourceImage, 0, 0, null);` I get this stack trace: java.lang.NullPointerException at org.apache.batik.svggen.ImageHandlerBase64Encoder.encodeImage(Unknown Source) at org.apache.batik.svggen.ImageHandlerBase64Encoder.handleHREF(Unknown Source) at org.apache.batik.svggen.ImageHandlerBase64Encoder.handleHREF(Unknown Source) at org.apache.batik.svggen.DefaultImageHandler.handleImage(Unknown Source) at org.apache.batik.svggen.SimpleImageHandler.handleImage(Unknown Source) at org.apache.batik.svggen.SVGGraphics2D.drawImage(Unknown Source) at com.corp.util.image.ImageReadExample.main(ImageReadExample.java:49) I am using Batik 1.8 with Java 1.8.0_91 on MacOS 10.10.5. -- "Hell hath no limits, nor is circumscrib'd In one self-place; but where we are is hell, And where hell is, there must we ever be" --Christopher Marlowe, *Doctor Faustus* (v. 121-24)