JpegCanvas.java



/**
 * JPEGファイルを Canvasに表示する
 */
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;

/** JPEG画像を表示するキャンバス */
public class JpegCanvas extends Canvas {

  /** BufferedImage のオブジェクト */
    public BufferedImage image;

  /** コンストラクタ */
    public JpegCanvas( BufferedImage image ) {
        this.image = image;
        setSize( image.getWidth(), image.getHeight() );
    }

  /** コンストラクタ */
    public JpegCanvas( String name ) {
        image = loadJpegFile( name );
        setSize( image.getWidth(), image.getHeight() );
    }

  /** 描画メソッド */
    public void paint( Graphics g ) {
        ((Graphics2D)g).drawImage( image, null, 0, 0 );
    }

  /** JPEG画像をロードするメソッド */
    public BufferedImage loadJpegFile( String name ) {
        BufferedImage image=null;
        try {
            FileInputStream input
                = new FileInputStream( name );
            JPEGImageDecoder decoder
                = JPEGCodec.createJPEGDecoder( input );
            image = decoder.decodeAsBufferedImage();
        }
        catch( Exception e ){
            System.err.println( e.getMessage() );
            System.exit(-1);
        }
        return image;
    }

  /** 最初に呼び出されるメソッド(テスト用) */
    public static void main( String[] argv ) {
        JpegCanvas canvas = new JpegCanvas( argv[0] );
        Frame frame = new Frame( argv[0] ); 
        frame.add( canvas, "Center" );
        frame.pack();
        frame.show();
    }
}