Java JAI JPEG immagine codificare RuntimeException
-
23-09-2019 - |
Domanda
Sto cercando di creare un'applicazione che codifica e ridimensionare le immagini fuori qualsiasi tipo di immagine e memorizzarla come file JPEG.
Io uso questo di jpeg strano e utilizzare per il test.
Per qualche ragione JAI non può rendere questa immagine in formato JPEG. Io uso il seguente codice:
private SeekableStream seekableStream;
...
public RenderedOp builRenderedOp(byte[] bytes) {
seekableStream = SeekableStream.wrapInputStream(new ByteArrayInputStream(bytes),true);
RenderedOp img = JAI.create("stream", seekableStream);
return img ;
}
...
public void writeImageToJPEG(OutputStream out,RenderedOp image,float quality) throws IOException {
JPEGEncodeParam encodeParam = new JPEGEncodeParam();
encodeParam.setQuality(quality);
ImageEncoder encoder = ImageCodec.createImageEncoder("JPEG", out, encodeParam);
encoder.encode(image);
}
su encoder.encode(image)
un RuntimeException
è gettato.
java.lang.RuntimeException: - Unable to render RenderedOp for this operation.
at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:838)
at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:878)
at javax.media.jai.RenderedOp.getWidth(RenderedOp.java:2190)
....
Qualche suggerimento?
Soluzione
Un RuntimeException
è un wrapper per le eccezioni. Provare a utilizzare il getCause
per stampare la traccia dello stack dell'eccezione actaul essere gettato:
http: //java.sun .com / J2SE / 1.4.2 / docs / api / java / lang / RuntimeException.html
E 'possibile anche questo file JPEG non è supportato dalla libreria in uso, come ad esempio libjpeg
o qualcosa legato al JPEG 2000 o qualcosa di out-of-spec.