不是JPEG文件J'AI,End Of Image,输入文件的过早结束

时间:2012-12-17 20:15:26

标签: java jai

使用JAI加载Jpeg图像时遇到异常:

  

引起:com.sun.media.jai.codecimpl.util.ImagingException:无法处理图像流,格式不正确。       ......还有43个   引起:com.sun.image.codec.jpeg.ImageFormatException:不是JPEG文件:以0xff 0xd9开头       at sun.awt.image.codec.JPEGImageDecoderImpl.readJPEGStream(Native Method)

看看它确实在文件流中有一个0xff 0xd9块远远高于结尾。根据{{​​3}}:

  

EOI 0xFF,0xD9无图像结束

但我知道我可以在任何图像编辑器中打开此文件。如果我在paint.net编辑器中重新保存95%comprepssion,则该块会消失(我假设因为此块位于标题中,而paint.net在保存时会重写标题)

我知道我可以通过简单的字节检查wikipedia

来检测它

有吗

  • 一种在java中打开并重新保存图像的方法,这样就不会对其余的JAI造成问题(这样我最后会得到一个RenderedOp)
  • 使JAI尽管读取此标题的方法(正如大多数图像阅读器所做的那样)
  • 修改二进制块的安全方法(即替换为另一个块)

或者是否有人对我遗漏的这个问题有更深入的了解?

0 个答案:

没有答案