3D技術研究所Wiki > TGAReader > TGA画像をSwingアプリケーションで利用する

TGA画像をSwingアプリケーションで利用する方法についてまとめています。

目次


TGA画像をSwingアプリケーションで利用する

TGA画像をSwingアプリケーションに組み込むサンプルです。
まず、TGAReaderを利用してTGA画像からBufferedImageを作成します。
次に生成したBufferedImageでImageIconを作成し、
最後に生成したImageIconでJLabelを作成します。
詳細はソースコードを参照して下さい。

TGASwingBufferedImage.png

TGA画像をSwingアプリケーションで利用するソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.IOException;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class TGASwingBufferedImage {
    
    private static final String [] TGA_PATHS = {
        "images/rgb_LL.tga",
        "images/grayscale_LL.tga",
        "images/indexed_LL.tga",
        "images/rgb_a_rle_LL.tga",
        "images/grayscale_a_rle_LL.tga",
        "images/indexed_a_rle_LL.tga",
    };
    
    public static void main(String [] args) {
        try {
            JPanel panel = new JPanel();
            panel.setBackground(Color.ORANGE);
            for(int i=0; i<TGA_PATHS.length; i++) {
                panel.add(createTGALabel(TGA_PATHS[i]));
            }
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setTitle("TGA Swing BufferedImage");
            frame.setSize(420, 310);
            frame.setVisible(true);
            frame.getContentPane().add(panel);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }
    
    private static JLabel createTGALabel(String path) throws IOException {

        // TGA画像をバッファに読み込みます
        FileInputStream fis = new FileInputStream(path);
        byte [] buffer = new byte[fis.available()];
        fis.read(buffer);
        fis.close();

        // TGAReaderでBufferedImageを作成します
        int [] pixels = TGAReader.read(buffer, TGAReader.ARGB);
        int width = TGAReader.getWidth(buffer);
        int height = TGAReader.getHeight(buffer);
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
        image.setRGB(0, 0, width, height, pixels, 0, width);

        // JLabelにImageIconを追加します
        ImageIcon icon = new ImageIcon(image.getScaledInstance(128, 128, BufferedImage.SCALE_SMOOTH));
        return new JLabel(icon);
    }

}


関連ページ


スポンサードリンク


添付ファイル: fileTGASwingBufferedImage.png 259件 [詳細] fileTGA画像をSwingで利用する.png 152件 [詳細]
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS