Hi,

No, does not work for me:

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 experimentalcode.simon.gui.PatternPlot.saveAsJPEG(PatternPlot.java: 564) at experimentalcode.simon.gui.PatternControlPanel $ImageSaveDialog.actionPerformed(PatternControlPanel.java:494) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java: 2028) at javax.swing.AbstractButton $Handler.actionPerformed(AbstractButton.java:2351) at javax .swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java: 387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java: 242) at javax .swing .plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java: 236)
        at java.awt.Component.processMouseEvent(Component.java:6126)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5891)
        at java.awt.Container.processEvent(Container.java:2102)
        at java.awt.Component.dispatchEventImpl(Component.java:4497)
        at java.awt.Container.dispatchEventImpl(Container.java:2160)
        at java.awt.Component.dispatchEvent(Component.java:4327)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java: 4366) at java.awt.LightweightDispatcher.processMouseEvent(Container.java: 4030)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3960)
        at java.awt.Container.dispatchEventImpl(Container.java:2146)
        at java.awt.Window.dispatchEventImpl(Window.java:2440)
        at java.awt.Component.dispatchEvent(Component.java:4327)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java .awt .EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java: 300) at java .awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java: 210) at java .awt .EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java: 200) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 195) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 187)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)



Exception occurs on
jtrans.transcode(input, output);


I've never seen an IncompatibleClassChangeError.


Is Batik and the Sun implemention different? (different versions?)

In the batik sources, I cant find "com.sun.image.codec.jpeg.JPEGImageEncoder" class or interface. The JPEGTranscoder is located in the package "org.apache.batik.transcoder.image".

What version of JPEGImageEncoder do I need?

Do I need the Java Image I/O?
Do I need to download it?

Is there another way for saving a DOM (SVGDocument) to a JPEG?

-----------
JDK 1.5 for Macosx
batik-1.7

thx.
Simon.

On 22. Jan 2009, at 14:14 , Kerschbaum Michael wrote:

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to