我无法获得ImageReaderByFormatName(“jpeg-lossless”)

时间:2011-04-14 19:15:26

标签: java image-processing jpeg dicom

我正在尝试使用JAI_ImageIO库和以下java调用解码无损jpeg:

ImageIO.getImageReadersByFormatName("jpeg-lossless").hasNext()

导致“null”。

注意:我在Jre / lib / ext目录中安装了JAI_ImageIO jar。

我不知道JPEG阅读器是否足以读取无损jpeg或者是否需要安装其他阅读器。

当我枚举FormatNames时,即:

ImageIO.getReaderFormatNames()

我得到以下格式:

[raw, jpeg, tif, WBMP, PNM, JPG, DICOM, wbmp, JPEG, PNG, jpeg 2000, 
tiff, BMP, JPEG2000, RAW, jpeg2000, GIF, TIF, TIFF, jpg, bmp, pnm, 
png, JPEG 2000, gif]

当我尝试使用JPEG2000阅读器时,我得到以下运行时异常:

java.lang.RuntimeException: File is neither valid JP2 file nor valid JPEG 2000 codestream
at com.sun.media.imageioimpl.plugins.jpeg2000.J2KReadState.initializeRead(J2KReadState.java:696)
at com.sun.media.imageioimpl.plugins.jpeg2000.J2KReadState.<init>(J2KReadState.java:209)
at com.sun.media.imageioimpl.plugins.jpeg2000.J2KImageReader.read(J2KImageReader.java:449)
at javax.imageio.ImageReader.read(ImageReader.java:940)

当我尝试

ImageIO.read(file)

直接我得到一个org.dcm4cheri.image.ConfigurationException。

2 个答案:

答案 0 :(得分:2)

好的,我找到了我的特定问题的答案,我相信它将解决至少在基于* NIX的操作系统上如何正确安装JAI_ImageIO的更普遍的问题。

阅读以下内容(Obscure place on the WWW)并尝试所有3个JAI_ImageIO的安装选项here。 (我还应该提到我在Debian 6.0 64位平台上运行。)

使用manual“安装类型”解决后,我意识到我的LD_LIBRARY_PATH变量未被拾取。所以我决定强制解决这个问题,并在我的/ usr / lib中添加一个到libclib_jiio.so的软链接。瞧,它看起来有效。

我使用提供的代码here来确定我的JAI_ImageIO是否已正确安装,如果安装正确,您应该在输出中看到“JPEG-LOSSLESS”格式/提供程序!

感谢您的建议。我将尝试扩展问题,使其更加通用于安装JAI_ImageIO pro

的问题

答案 1 :(得分:0)

我认为jpeg-lossless不是JAI的有效格式。尝试列出您的可用格式:

String[] formats =  ImageIO.getReaderFormatNames();
for ( String format : formats ) {
    System.out.println(format);
}

我认为你真正想要的是“JPEG2000”。

您是否也尝试过ImageIO.read(文件)。如果安装了JAI,那应该会成功读取DICOM文件。

相关问题