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

OK、私は特定の問題に対する答えを見つけました。少なくとも *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 に答える