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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top