Hello,
I'am just writting it into an byteArray?!
Works fine...
....
byte[] jpegByteArr = null;
public void makeJpeg() {
logger.debug("Entering makeJpeg!");
long duracel = System.currentTimeMillis();
try {
JPEGTranscoder jtrans = new JPEGTranscoder();
jtrans.addTranscodingHint(JPEGTranscoder.KEY_QUALITY, new Float(1));
jtrans.addTranscodingHint(JPEGTranscoder.KEY_WIDTH, new Float(150));
jtrans.addTranscodingHint(JPEGTranscoder.KEY_HEIGHT, new Float(150));
TranscoderInput input = new TranscoderInput(ag.getSVGDocument());
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
TranscoderOutput output = new TranscoderOutput(outStream);
jtrans.transcode(input, output);
jpegByteArr = outStream.toByteArray();
outStream.flush();
outStream.close();
} catch (Exception e) {
logger.error(e.getMessage());
}
logger.info("Duration creating JPEG: "
+ (System.currentTimeMillis() - duracel) + " ms");
}
.....
Mit freundlichen Grüßen Michael Kerschbaum
________________________________
Von: Simon Mittermüller [mailto:[email protected]]
Gesendet: Donnerstag, 22. Jänner 2009 12:10
An: [email protected]
Betreff: Document saved as JPEG - getting IncompatibleClassChangeError
Hi,
Saving as SVG or PNG works fine.
But I am getting error when doing this:
I use this piece of code to save a document as a JPEG:
<code>
public void saveAsJPEG(File file) throws IOException, TranscoderException {
JPEGTranscoder t = new JPEGTranscoder();
t.addTranscodingHint(JPEGTranscoder.KEY_QUALITY, new Float(1.0));
TranscoderInput input = new TranscoderInput(document);
OutputStream ostream = new FileOutputStream(file);
TranscoderOutput output = new TranscoderOutput(ostream);
t.addTranscodingHint(JPEGTranscoder.KEY_WIDTH, new Float(100));
t.addTranscodingHint(JPEGTranscoder.KEY_HEIGHT, new Float(100));
t.transcode(input, output);
ostream.flush();
ostream.close();
}
</code>
Exception in thread "AWT-EventQueue-0" java.lang.IncompatibleClassChangeError:
Found interface com.sun.image.codec.jpeg.JPEGImageEncoder, but class was
expected
at org.apache.batik.ext.awt.image.codec.jpeg.JPEGImageWriter.writeImage(Unknown
Source)
at org.apache.batik.transcoder.image.JPEGTranscoder.writeImage(Unknown Source)
at org.apache.batik.transcoder.image.ImageTranscoder.transcode(Unknown Source)
at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown Source)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
...
Has anybody had similar problems?
Where is "com.sun.image.codec.jpeg.JPEGImageEncoder" located? Inside the
batik.jar? Or is it a problem of my com.sun.image.codec.jpeg package?
batik jar: batik-1.7.jar
I'am using JDK 1.5 on MacOsX 10.5.6.
Developing with Eclipse 3.4
Thx
Simon