2

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

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

查看十六进制,它实际上在文件流的末尾有一个 0xff 0xd9 块。根据维基百科

EOI 0xFF, 0xD9 无 图像结束

但是我知道我可以在任何图像编辑器中打开这个文件。如果我在 paint.net 编辑器中以 95% 的压缩率重新保存,该块就会消失(我假设因为这个块在标题中,并且在保存时 paint.net 会重写标题)

我知道我可以通过一个简单的字节检查来检测它https://stackoverflow.com/a/10069478/51841

有没有

  • 一种在 java 中打开和重新保存图像的方法,这样它就不会成为 JAI 的其余部分的问题(这样我最后会得到一个 RenderedOp)
  • 一种让 JAI 读取图像的方法,尽管有此标题(大多数图像阅读器似乎都这样做)
  • 修改该二进制块的安全方法(即,用另一个块替换)

或者有没有人对我错过的这个问题有更多的了解?

4

0 回答 0