3

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

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

结果为“空”。

注意:我已将 JAI_ImageIO jar 安装到我的 jre/lib/ext 目录中。

我不知道 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。

4

2 回答 2

2

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

阅读以下内容(WWW 上的晦涩之处)并尝试此处描述的 JAI_ImageIO 的所有 3 种安装替代方案后。(我还应该提到我在 Debian 6.0 64 位平台上运行。)

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

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

感谢您的建议。我将尝试扩展问题以使其更普遍地解决安装 JAI_ImageIO pro 的问题

于 2011-04-16T20:26:51.837 回答
0

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

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

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

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

于 2011-04-14T19:41:47.863 回答