Java JAI JPEG-Bild kodieren Runtime
-
23-09-2019 - |
Frage
Ich versuche, eine Anwendung, die codiert und Resize Bilder aus jeder Art von Bild zu bauen und speichern Sie es als JPEG.
Ich benutze diese irgendwie seltsam jpeg und Verwendung zum Testen.
Aus irgendeinem Grund JAI kann das Bild als JPEG nicht machen. Ich verwende den folgenden Code:
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);
}
auf encoder.encode(image)
ein RuntimeException
geworfen wird.
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)
....
Irgendwelche Vorschläge?
Lösung
Ein RuntimeException
ist ein Wrapper für Ausnahmen. mit dem getCause
Versuchen Sie, den Stack-Trace der actaul Ausnahme drucken geworfen:
http: //java.sun .com / j2se / 1.4.2 / docs / api / java / lang / RuntimeException.html
Es ist auch möglich, diese JPEG-Datei nicht von der Bibliothek wird verwendet, wie libjpeg
oder etwas im Zusammenhang mit JPEG 2000 oder etwas out-of-spec unterstützt wird.