2014-12-27 206 views
0

我想在java中将jp2图像读入BufferedImage中。我安装了Java Advanced Imaging JAI。这是我的代码:如何在Java中将jp2图像读入BufferedImage中

RenderedOp img = JAI.create("FileLoad", "/home/dhoha/Downloads/BreastCancer.jp2"); 
    BufferedImage image = img.getAsBufferedImage(); 

不过,我得到以下错误:

Exception in thread "main" java.lang.RuntimeException: - Unable to render RenderedOp for this operation. 
    at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:827) 
    at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:867) 
    at javax.media.jai.RenderedOp.getColorModel(RenderedOp.java:2242) 
    at javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2498) 
    at javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2546) 
    at testJai.test.main(test.java:19) 

我不明白为什么JAI库是无法读取的JP2图像尽管这个操作与BMP可行图片..

任何提示请???

+0

你有哪些JAI的版本?阅读本文http://stackoverflow.com/a/13167748/1737819 – Willmore 2015-01-06 10:37:36

+0

是的,我已经安装了旧版本的JAI 1.1,因为JAI 1.3不支持jpeg 2000图像......而目前我正面临着这个问题。任何提示? – didowa 2015-01-06 10:44:20

+0

请输入javax.imageio.ImageIO; import java.util.Arrays; 公共类的ImageWriter { \t公共静态无效的主要(字串[] args) \t { \t \t的System.out.println(Arrays.deepToString(ImageIO.getReaderFormatNames())); \t \t System.out.println(Arrays.deepToString(ImageIO.getReaderFileSuffixes())); \t \t System.out.println(Arrays.deepToString(ImageIO.getReaderMIMETypes())); \t} }是否列出jp2作为文件类型? – Willmore 2015-01-06 11:53:05

回答

0

使用以下:

import javax.imageio.ImageIO; 
import java.awt.image.BufferedImage; 


InputStream ism=new FileInputStream("/home/dhoha/Downloads/BreastCancer.jp2"); 
BufferedImage buffImg = ImageIO.read(ism);