问题
I have a code using a byte[] that contains a image jpeg2000 bytes. I want show this in jLabel component howto do this? Anyone have idea or code to do?
回答1:
You would do it in this way
Image img = ImageIO.read(new ByteArrayInputStream(imageBytes));
ImageIcon imgIcon = new ImageIcon(img);
JLabel label = new JLabel(imgIcon);
but the JPG2000 decoder isn't supplied with standard SDK, you should head here (Java Advanced Imaging) and use the right decoder for that format..
回答2:
Apparently the support of jpeg2000 / ( .jp2 ) files has been removed from Java Advanced Imaging (JAI).
By un-installing JAI 1.1.3 and installing the older version 1.1, I'm now about to read .jp2 files and no longer see the null pointer.
Version 1.1 is available here. http://download.java.net/media/jai-imageio/builds/release/1.1/
Version 1.1 lists codec's for - g3fax g4fac jiio jp2k jpeg and png
回答3:
The only options I know are all based on jj2000.
jai-imageio-core provides support through an additional third-party module:
https://github.com/stain/jai-imageio-core
https://github.com/jai-imageio/jai-imageio-jpeg2000
It'll register itself with ImageIO and you'll then be able to read jpeg2000 files as you would any png, bmp or jpeg.
Although jj2000 is in itself an option, the api is not designed for day-to-day use.
Other options include JMRTD, which provides its own wrapping for jj2000, or a commercial offering, JDeli.
来源:https://stackoverflow.com/questions/2662916/read-jpeg2000-files-in-java