人工知能に関する断創録

人工知能、認知科学、心理学、ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。最近は、機械学習、Deep Learning、Kerasに関する記事が多いです。



イメージを表示する

イメージを表示してみます。ゲーム作成ではイメージを頻繁に使うためとっても重要です。

draw_image.jar

イメージの表示

JavaがサポートしているのはGIF、JPG、PNGです。BMPも表示できるにはできますが実装は少し面倒です。ここではGIFを使いますが、JPG、PNGの場合でもまったく同じ方法で表示できます。イメージをファイルから読み込んでいる部分は

    // イメージを読み込む
    image = Toolkit.getDefaultToolkit().getImage(
                getClass().getResource("image.gif"));

です。どこかで見た覚えないですか?そう、効果音ファイルを読み込んだときにも似たようなのが出てきました。

    // サウンドをロード
    ping = Applet.newAudioClip(getClass().getResource("ping.wav"));

比べてみましょう。イメージの場合は、Toolkit.getDefaultToolkit().getImage()を使います。サウンドの場合は、Applet.newAudioClip()を使います。ファイルの指定方法はどちらも同じくgetClass().getResource()を使っています。これはこういうもんだと覚えておくと便利です。

    // MediaTrackerに登録
    MediaTracker tracker = new MediaTracker(this);
    tracker.addImage(image, 0);

    // イメージ読み込み完了まで待機
    try {
        tracker.waitForID(0);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

イメージを読み込むときはMediaTrackerを使うべきです。MediaTrackerを使うと画像がロードされたかを調べ、ロードが完了するまでプログラムの実行を待機させることができます。画像のロードはちょっとした時間がかかるため読み込みが完了するまでプログラムを待機させておいた方が安全です。MediaTrackerを使わないと画像がロードされていないのに表示しようとするなどエラーの元になります。

ちなみに使ったイメージは家の犬です。可愛いでしょ?

f:id:aidiary:20090828205335j:plain