Problemas com Batik SVG

0 respostas
C

Olá, eu tenho uma imagem svg carregado num ByteArraysOutputStrem "baos" e preciso transformar em BufferedImage, o problema é q n encontro um outro jeito de fazer isso sem q tenha um URL e está dando a seguinte exception:

java.lang.ClassCastException: org.apache.xerces.dom.DeferredDocumentImpl cannot be cast to org.apache.batik.dom.svg.SVGOMDocument
at org.apache.batik.bridge.BridgeContext.setDocument(BridgeContext.java:441)
at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:54)
na linha 29 "root = builder.build(ctx, doc);"

UserAgent userAgent = new UserAgentAdapter();
DocumentLoader loader = new DocumentLoader(userAgent);

BridgeContext ctx = new BridgeContext(userAgent, loader);
BufferedImage bufImg =
        new BufferedImage(64, 64, BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = GraphicsUtil.createGraphics(bufImg);

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = null;
try {
    docBuilder = factory.newDocumentBuilder();
} catch (ParserConfigurationException ex) {
    return null;
}
Document doc;
try {
    doc = docBuilder.parse(new ByteArrayInputStream(baos.toByteArray()));
} catch (SAXException ex) {
    return null;
} catch (IOException ex) {
    return null;
}

GVTBuilder builder = new GVTBuilder();
GraphicsNode root = null;

try {
    root = builder.build(ctx, doc);
    root.paint(graphics);
    graphics.dispose();
    return bufImg;
} catch (Exception e) {
    e.printStackTrace();
}
alguns imports
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.batik.bridge.BridgeContext;
import org.apache.batik.bridge.DocumentLoader;
import org.apache.batik.bridge.GVTBuilder;
import org.apache.batik.bridge.UserAgent;
import org.apache.batik.bridge.UserAgentAdapter;
import org.apache.batik.ext.awt.image.GraphicsUtil;
import org.apache.batik.gvt.GraphicsNode;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
Criado 14 de outubro de 2011
Respostas 0
Participantes 1