Jlistに追加してフレームに表示するために.TIF形式の画像をロードしようとしています。 ここに私のコードは私が試したものです、ここに画像がロードされても私のフレームはまだ空に見え、何も表示されません。 私のコードを修正してください。私は自分の.TIFイメージを表示させるための変更点を教えてください。TIF画像をJlistまたはJavaのフレームに追加
import javax.media.jai.PlanarImage;
import com.sun.media.jai.codec.ByteArraySeekableStream;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageDecoder;
import com.sun.media.jai.codec.SeekableStream;
import java.io.FileInputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.awt.Image;
import java.awt.image.RenderedImage;
import javax.swing.DefaultListModel;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JList;
public class ImageViewer {
static Image load(byte[] data) throws Exception {
Image image = null;
SeekableStream stream = new ByteArraySeekableStream(data);
String[] names = ImageCodec.getDecoderNames(stream);
ImageDecoder dec =
ImageCodec.createImageDecoder(names[0], stream, null);
RenderedImage im = dec.decodeAsRenderedImage();
image = PlanarImage.wrapRenderedImage(im).getAsBufferedImage();
return image;
}
public static void main(String[] args) throws Exception {
String path;
DefaultListModel listModel = new DefaultListModel();
JFrame frame = new JFrame("Split Pain");
frame.setSize(700, 500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
path ="C:/Documents and Settings/Administrator/My Documents/My Pictures/tiff Images/CCITT_1.TIF";
FileInputStream in = new FileInputStream(path);
FileChannel channel = in.getChannel();
ByteBuffer buffer = ByteBuffer.allocate((int) channel.size());
channel.read(buffer);
Image image = load(buffer.array());
Image imageScaled =image.getScaledInstance(500, -1, Image.SCALE_SMOOTH);
listModel.addElement(new ImageIcon(imageScaled));
final JList list = new JList(listModel);
frame.add(list);
}
}
@Jakubは、すでに述べたように、TIFF画像形式としてサポートされない可能性があります - – kleopatra
@GagandeepBali確かに確認するために、プレーンラベルにアイコンとして表示してみてください。しかし、正しくインストールされていますが、もっと重要なことは、JAIがサポートしているTIFFのフレーバーのTIFFですか?ほとんどのメディアフォーマットは、さまざまな圧縮技術(CODEC)を使用してエンコードされる「コンテナフォーマット」です。 J2SEがサポートしていない有効なGIF、JPEG、PNGのインスタンスがあります。 BTW - あなたのコメントがkleopatraに通知されたのかどうかは疑問です。ソフトウェアがあなたを止めさせない限り、「@名前」(空白なし)を追加するのがベストです。 –
@kleopatra:このパッケージは現時点で持っているどのくらいのサポート、それが適切かどうかがインストールされ事実について知らない:彼が使用するJAIパッケージは –