Java image JPEG encode JAI RuntimeException
-
23-09-2019 - |
Question
Je suis en train de construire une application qui code et redimensionner les images de tout type d'image et de le stocker au format JPEG.
J'utilise cette un peu bizarre jpeg et utiliser pour les tests.
Pour une raison quelconque ne peut pas rendre JAI cette image au format JPEG. J'utilise le code suivant:
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);
}
sur encoder.encode(image)
une RuntimeException
est levée.
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)
....
Toutes les suggestions?
La solution
Un RuntimeException
est une enveloppe pour les exceptions. Essayez d'utiliser le getCause
d'imprimer la trace de la pile de l'exception actaul étant levée:
http: //java.sun .com / J2SE / docs / 1.4.2 / api / java / lang / RuntimeException.html
Il est également possible ce fichier JPEG est pas pris en charge par la bibliothèque utilisée, comme libjpeg
ou quelque chose lié au format JPEG 2000 ou quelque chose hors spécifications.