Newsgroup: it.comp.java
Titolo: [JAI] Facile facile :->

Ho l'hex di un files GIF in una stringa e con JAI vorrei convertire la GIF
in un BMP.
Convertito l'hex bei byte del file, creo uno StringBufferInputStream e lo
wrappo
su un SeekableStream e lo passo come "stream" a JAI
Problema, JAI leggendo dallo stream chissà come cazz fa a sapere che tipo di
immagine sta leggendo...
vabbè poche parole e molti fatti, ecco 4 righe di codice:
// CREA LO STRINGBUFFER DAL BINARIO
StringBufferInputStream streamdistringa=new
StringBufferInputStream(this.Hex2Bin());
// WRAPPA IN UNO SEEKABLE PER JAI
SeekableStream
streamImmagine=SeekableStream.wrapInputStream(streamdistringa,false);
// CREA L'OGGETTO source DALLO STREAM
 RenderedOp src= JAI.create("stream",streamImmagine);
// SALVA il source come BMP nel file test.bmp
JAI.create("filestore", src, "test.bmp", "BMP", null);
In ritorno mi spara (sull'ultima create) un bel:
java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at javax.media.jai.FactoryCache.invoke(FactoryCache.java:130)
 at
javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1669)
 at
javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(ThreadSafeOperatio
nRegistry.java:481)
 at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:340)
 at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:805)
 at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:853)
 at javax.media.jai.RenderedOp.getSampleModel(RenderedOp.java:2189)
 at com.sun.media.jai.codecimpl.BMPCodec.canEncodeImage(BMPCodec.java:60)
 at
javax.media.jai.operator.FileStoreDescriptor.validateArguments(FileStoreDesc
riptor.java:163)
 at javax.media.jai.JAI.createNS(JAI.java:899)
 at javax.media.jai.JAI.create(JAI.java:786)
 at javax.media.jai.JAI.create(JAI.java:1471)
 at atomicsms.ContentConverter.prova1(ContentConverter.java:72)
 at atomicsms.ContentConverter.main(ContentConverter.java:94)
Caused by: java.lang.IllegalArgumentException: src must support seeking
backwards or marking.
 at com.sun.media.jai.codec.ImageCodec.getDecoderNames(ImageCodec.java:253)
 at com.sun.media.jai.opimage.StreamRIF.create(StreamRIF.java:74)
 ... 18 more
java.lang.RuntimeException: - Unable to render RenderedOp for this
operation.
 at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:813)
 at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:853)
 at javax.media.jai.RenderedOp.getSampleModel(RenderedOp.java:2189)
 at com.sun.media.jai.codecimpl.BMPCodec.canEncodeImage(BMPCodec.java:60)
 at
javax.media.jai.operator.FileStoreDescriptor.validateArguments(FileStoreDesc
riptor.java:163)
 at javax.media.jai.JAI.createNS(JAI.java:899)
 at javax.media.jai.JAI.create(JAI.java:786)
 at javax.media.jai.JAI.create(JAI.java:1471)
 at atomicsms.ContentConverter.prova1(ContentConverter.java:72)
 at atomicsms.ContentConverter.main(ContentConverter.java:94)
Exception in thread "main"

Bastava cambiare il FALSE in TRUE :-PP
J
"jj" <j...@thecloud.or> ha scritto nel messaggio
news:bepa9.377$yQ2....@news.it.colt.net...
