我正在尝试使用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。
答案 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文件。