byte[]
画像 jpeg2000 バイトを含むを使用したコードがあります。jLabel
これをコンポーネントで表示したいのですが、これを行うにはどうすればよいですか? アイデアやコードを持っている人はいますか?
4 に答える
あなたはこの方法でそれを行うでしょう
Image img = ImageIO.read(new ByteArrayInputStream(imageBytes));
ImageIcon imgIcon = new ImageIcon(img);
JLabel label = new JLabel(imgIcon);
ただし、JPG2000デコーダーには標準の SDK が付属していません。ここ(Java Advanced Imaging) に進み、その形式に適したデコーダーを使用する必要があります。
どうやらjpeg2000/(.jp2)ファイルのサポートはJava Advanced Imaging(JAI)から削除されました。
JAI 1.1.3をアンインストールし、古いバージョン1.1をインストールすることで、.jp2ファイルを読み取ろうとして、nullポインタが表示されなくなりました。
バージョン1.1はこちらから入手できます。 http://download.java.net/media/jai-imageio/builds/release/1.1/
バージョン1.1には、-g3fax g4fac jiiojp2kjpegおよびpngのコーデックがリストされています。
私が知っている唯一のオプションはすべて jj2000 に基づいています。
jai-imageio-coreは、追加のサードパーティ モジュールを通じてサポートを提供します。
https://github.com/stain/jai-imageio-core
https://github.com/jai-imageio/jai-imageio-jpeg2000
それ自体が ImageIO に登録され、png、bmp、または jpeg と同じように jpeg2000 ファイルを読み取ることができるようになります。
jj2000 自体はオプションですが、API は日常的に使用するようには設計されていません。