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

Reply via email to