BlueJay
21-07-2011, 17:44
Hallo Leute,
ich versuche, mit obiger Bibliothek ein SVG in ein BufferedImage hineinzustopfen, aber da scheinen mir immer einige Bibliotheksteile zu fehlen.
Nachdem ich mit dem binären Batik-Toolkit nicht so richtig weitergekommen bin, habe ich mir die Batik-Sourcen geholt und (unter Windows 7) kompiliert. Abgesehen von etlichen Warnungen vor deprecated Code hat das auch hingehauen.
Leider bekomme ich das Ganze immer noch nicht hin.
Mein Codeabschnitt:
// SVG via Batik:
public BufferedImage svgimage(String filnam)
{
BufferedImage ima=null;
loadsave fh=new loadsave();
String instr=fh.get_ressource(filnam);
System.out.println("lese:"+filnam);
// bis hierher läuft alles nach Plan, das SVG-file ist jetzt als String in instr
try
{
StringReader sreader=new StringReader(instr); // so wurde es von Salamander verwertet, ist also auch noch ok
StringWriter swriter=new StringWriter();
TranscoderInput transin = new TranscoderInput(sreader);
TranscoderOutput transout= new TranscoderOutput(swriter);
PNGTranscoder ptrans=new PNGTranscoder();
System.out.println("Transcode");
// Hier knallt's:
ptrans.transcode(transin,transout);
ima = ptrans.createImage(breite,hoehe);
System.out.println("geladen:"+filnam);
swriter.flush();
swriter.close();
sreader.close();
}
catch (TranscoderException e) { System.out.println(e); }
catch (IOException e) { System.out.println(e); }
return ima;
}
Fehlermeldung:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Propertie s.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at org.apache.batik.util.XMLResourceDescriptor.getPar serProps(Unknown Source)
at org.apache.batik.util.XMLResourceDescriptor.getXML ParserClassName(Unknown Source)
at org.apache.batik.transcoder.XMLAbstractTranscoder. transcode(Unknown Source)
at org.apache.batik.transcoder.SVGAbstractTranscoder. transcode(Unknown Source)
at svgmahjongg.svgpanel.svgimage(svgpanel.java:237)
Die letzte Fehlermeldung gibt an, wo es bei mir geknallt hat (s.oben).
Verfolgt man die vorletzte im transcoder, so fehlen im org.apache.batik.transcoder.SVGAbstractTranscoder. transcode weitere Bibliotheken, insbesondere im org.w3c-Zweig.
Der ganze Zweig org.w3c.dom ist gähnend leer.
Die Quellen sind bereits von
http://xmlgraphics.apache.org/batik/
Wo finde ich eine komplette Batik-Bibilothek für Windows 7?
Gruß,
Ulrike
ich versuche, mit obiger Bibliothek ein SVG in ein BufferedImage hineinzustopfen, aber da scheinen mir immer einige Bibliotheksteile zu fehlen.
Nachdem ich mit dem binären Batik-Toolkit nicht so richtig weitergekommen bin, habe ich mir die Batik-Sourcen geholt und (unter Windows 7) kompiliert. Abgesehen von etlichen Warnungen vor deprecated Code hat das auch hingehauen.
Leider bekomme ich das Ganze immer noch nicht hin.
Mein Codeabschnitt:
// SVG via Batik:
public BufferedImage svgimage(String filnam)
{
BufferedImage ima=null;
loadsave fh=new loadsave();
String instr=fh.get_ressource(filnam);
System.out.println("lese:"+filnam);
// bis hierher läuft alles nach Plan, das SVG-file ist jetzt als String in instr
try
{
StringReader sreader=new StringReader(instr); // so wurde es von Salamander verwertet, ist also auch noch ok
StringWriter swriter=new StringWriter();
TranscoderInput transin = new TranscoderInput(sreader);
TranscoderOutput transout= new TranscoderOutput(swriter);
PNGTranscoder ptrans=new PNGTranscoder();
System.out.println("Transcode");
// Hier knallt's:
ptrans.transcode(transin,transout);
ima = ptrans.createImage(breite,hoehe);
System.out.println("geladen:"+filnam);
swriter.flush();
swriter.close();
sreader.close();
}
catch (TranscoderException e) { System.out.println(e); }
catch (IOException e) { System.out.println(e); }
return ima;
}
Fehlermeldung:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Propertie s.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at org.apache.batik.util.XMLResourceDescriptor.getPar serProps(Unknown Source)
at org.apache.batik.util.XMLResourceDescriptor.getXML ParserClassName(Unknown Source)
at org.apache.batik.transcoder.XMLAbstractTranscoder. transcode(Unknown Source)
at org.apache.batik.transcoder.SVGAbstractTranscoder. transcode(Unknown Source)
at svgmahjongg.svgpanel.svgimage(svgpanel.java:237)
Die letzte Fehlermeldung gibt an, wo es bei mir geknallt hat (s.oben).
Verfolgt man die vorletzte im transcoder, so fehlen im org.apache.batik.transcoder.SVGAbstractTranscoder. transcode weitere Bibliotheken, insbesondere im org.w3c-Zweig.
Der ganze Zweig org.w3c.dom ist gähnend leer.
Die Quellen sind bereits von
http://xmlgraphics.apache.org/batik/
Wo finde ich eine komplette Batik-Bibilothek für Windows 7?
Gruß,
Ulrike