在java中读取jpeg2000文件

我有一个使用byte []的代码,其中包含一个图像jpeg2000字节。 我想在jLabel组件中显示如何做到这一点? 有人有想法或代码吗?

你会这样做的

Image img = ImageIO.read(new ByteArrayInputStream(imageBytes)); ImageIcon imgIcon = new ImageIcon(img); JLabel label = new JLabel(imgIcon); 

JPG2000解码器没有提供标准SDK,您应该到这里 (Java Advanced Imaging)并使用正确的解码器来实现该格式。

显然,jpeg2000 /(。jp2)文件的支持已从Java Advanced Imaging(JAI)中删除。

通过卸载JAI 1.1.3并安装旧版本1.1,我现在要读取.jp2文件,不再看到空指针。

版本1.1可在此处获得。 http://download.java.net/media/jai-imageio/builds/release/1.1/

版本1.1列出了编解码器 – g3fax g4fac jiio jp2k jpeg和png

我所知道的唯一选项都是基于jj2000。

jai-imageio-core通过额外的第三方模块提供支持:

https://github.com/stain/jai-imageio-core

https://github.com/jai-imageio/jai-imageio-jpeg2000

它将自动注册到ImageIO,然后您就可以像读取任何png,bmp或jpeg一样读取jpeg2000文件。

虽然jj2000本身就是一个选项,但api不是为日常使用而设计的。

其他选项包括JMRTD ,它为jj2000提供自己的包装,或商业产品JDeli 。