在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 。