在java中读取jpeg2000文件

时间:2010-04-18 16:13:38

标签: java jpeg2000

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

4 个答案:

答案 0 :(得分:4)

你会这样做

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

JLabel label = new JLabel(imgIcon);

JPG2000 解码器未提供标准SDK,您应该使用here(Java Advanced Imaging)并使用正确的解码器来实现该格式..

答案 1 :(得分:3)

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

通过卸载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

答案 2 :(得分:2)

我所知道的唯一选项都是基于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

答案 3 :(得分:0)

使用Java库imageio-openjpeg(Apache 2许可),您可以将Jpeg2000文件(* .jp2)与Java的imageio API一起使用。它基于OpenJPEG(BSD许可证)。从2015年开始,OpenJPEG就成为Jpeg2000标准的参考软件。

如果要使用它,则需要imageio-openjpeg和OpenJPEG作为平台。

相关问题