タイトル画像
サイトタイトル画像

JavaAppletを使ってみよう

Java には様々なメソッドが用意されています。

それらを工夫すれば、難しい計算無しに画像処理を楽しむことが出来ます。

(1)「画像」を表示してみよう

import java.applet.Applet;
import java.awt.*;

public class test4 extends Applet{
    
    Image imgs;
    
    public void init(){  // 初期化
        imgs = getImage(getCodeBase(), "test.gif");
    }
    
    public void paint(Graphics g){
        g.drawImage(imgs, 10, 50, this);
    }
}

このプログラムの名前は「test4.java」とします。

abstract boolean drawImage(Image img, int x, int y, ImageObserver observer)
abstract boolean drawImage(Image img, int x, int y , Color bgcolor, ImageObserver observer)

これは良く知られていると思います。表示したい場所などを指定します。

また、バックカラーで、透明色を塗りつぶすことができます。

(2)「画像」を拡大・縮小してみよう

import java.applet.Applet;
import java.awt.*;

public class test4 extends Applet{
    
    Image imgs;
    int W, H;
    
    public void init(){  // 初期化
        imgs = getImage(getCodeBase(), "test.gif");
        W = imgs.getWidth(this);
        H = imgs.getHeight(this);
    }
    
    public void paint(Graphics g){
        g.drawImage(imgs, 10, 50, W/2, H/2, this);
    }
}

このプログラムの名前は「test4.java」とします。

abstract boolean drawImage(Image img, int x, int y, int width, int height , Color bgcolor, ImageObserver observer)
abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)

これで任意に拡大縮小ができます。(width ,height)

(3)「画像」を上下反転してみよう

画像を読み込み、その画像を上下反転するプログラムを作ってみましょう。

プログラムで記述する場合は、原点を中心にした回転で

のように表され、θを 180 度にすれば上下反転します。

上記の方法ではなく、上下反転を Java を利用して簡単に実現してみましょう。

import java.applet.Applet;
import java.awt.*;

public class test4 extends Applet{
    
    Image imgs;
    int W, H;
    
    public void init(){  // 初期化
        imgs = getImage(getCodeBase(), "test.gif");
        W = imgs.getWidth(this);
        H = imgs.getHeight(this);
    }
    
    public void paint(Graphics g){
        g.drawImage(imgs, 10, 50, W+10, H+50, W, H, 0, 0, this);
    }
}

このプログラムの名前は「test4.java」とします。

abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2 , int sx1, int sy1, int sx2, int sy2 , Color bgcolor, ImageObserver observer)
abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2 , ImageObserver observer)

これで、1部分を特定の場所に描く事ができます。

d.drawImage(imgs, 100, 100, 50, 50, 30, 40, 32, 32, this);

とすると、(100, 100)-(50, 50)の位置にイメージの(30, 40)-(32, 32)を描きます。
つまり切り取って張り付ける事ができます。

これを応用して、

d.drawImage(imgs, 100, 100, W + 100, H + 100, 0, 0, W, H, this);

とすると、(100, 100)からイメージを描写するのは分かると思います。これを、

d.drawImage(imgs, 100, 100, W + 100, H + 100, W, H, 0, 0, this);

と書くと180度回転します。

d.drawImage(imgs, 100, 100, W + 100, H + 100, W, 0, 0, H, this);

と書くと左右反転します。

d.drawImage(imgs, 100, 100, W + 100, H + 100, 0, H, W, 0, this);

と書くと180度 + 左右反転します。

スポンサードリンク

オススメ書籍

HTML5、CSS3、JavaScript等の学習に役立つ書籍を紹介します。

人気コンテンツ

    Copyright ©2024 .(since )