/** * TGASwingBufferedImage.java * * Copyright (c) 2014 Kenji Sasaki * Released under the MIT license. * https://github.com/npedotnet/TGAReader/blob/master/LICENSE * * English document * https://github.com/npedotnet/TGAReader/blob/master/README.md * * Japanese document * http://3dtech.jp/wiki/index.php?TGAReader * */ 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 { FileInputStream fis = new FileInputStream(path); byte [] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); 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); ImageIcon icon = new ImageIcon(image.getScaledInstance(128, 128, BufferedImage.SCALE_SMOOTH)); return new JLabel(icon); } }