首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上传PNG和GIF文件时出现JAI错误

上传PNG和GIF文件时出现JAI错误
EN

Stack Overflow用户
提问于 2013-05-27 11:37:26
回答 1查看 1.3K关注 0票数 1

我刚开始使用JAI,我写了这个简单的代码来上传图片。此代码适用于jpeg%s,但会导致png%s和gif%s出现错误。

代码如下:

代码语言:javascript
复制
ByteArraySeekableStream byteArraySeekableStream = new ByteArraySeekableStream(content.getData());
ParameterBlock pb = new ParameterBlock();
pb.add(byteArraySeekableStream);
BufferedImage originalImage = JAI.create("jpeg", pb).getAsBufferedImage();

这是错误:

代码语言:javascript
复制
    Error: Cannot decode the image for the type :
Occurs in: com.sun.media.jai.opimage.CodecRIFUtil
java.io.IOException
        at com.sun.media.jai.codecimpl.CodecUtils.toIOException(CodecUtils.java:76)
        at com.sun.media.jai.codecimpl.JPEGImageDecoder.decodeAsRenderedImage(JPEGImageDecoder.java:48)
        at com.sun.media.jai.opimage.CodecRIFUtil.create(CodecRIFUtil.java:88)
        at com.sun.media.jai.opimage.JPEGRIF.create(JPEGRIF.java:43)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at javax.media.jai.FactoryCache.invoke(FactoryCache.java:122)
        at javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1674)
        at javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(ThreadSafeOperationRegistry.java:473)
        at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:332)
        at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:819)
        at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:867)
        at javax.media.jai.RenderedOp.getColorModel(RenderedOp.java:2242)
        at javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2498)
        at javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2546)

有人能给点建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-27 12:25:40

将正确的文件类型传递给BufferedImage,它就会正常工作。

PNG

BufferedImage originalImage = JAI.create("png", pb).getAsBufferedImage();

GIF

BufferedImage originalImage = JAI.create("gif", pb).getAsBufferedImage();

并查看以获取文件扩展名。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16765974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档