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等の学習に役立つ書籍を紹介します。