| 情報学部 | 菅沼ホーム | Java 目次 | 基礎技術目次 | 索引 |

01 import java.awt.*;
02 import java.awt.event.*;
03 import java.awt.image.*;
04 import javax.swing.*;
05
06 public class Test {
07 public static void main (String[] args)
08 {
09 Win win = new Win("ビットマップ");
10 }
11 }
12
13 class Win extends JFrame
14 {
15 /******************/
16 /* コンストラクタ */
17 /******************/
18 Win(String name)
19 {
20 // JFrameクラスのコンストラクタ(Windowのタイトルを引き渡す)
21 super(name);
22 // Windowの大きさ
23 setSize(310, 200); // +40, +70
24 // ContentPane の取得とパネルの追加と MainPanel の追加
25 MainPanel pn = new MainPanel(); // MainPanel オブジェクトの生成
26 getContentPane().add(pn); // MainPanel オブジェクトを ContentPane に追加
27 pn.setSize(270, 130);
28 // ウィンドウを表示
29 setVisible(true);
30 // イベントアダプタ
31 addWindowListener(new WinEnd());
32 }
33
34 /******************************/
35 /* 上,左,下,右の余白の設定 */
36 /******************************/
37 public Insets getInsets()
38 {
39 return new Insets(50, 20, 20, 20);
40 }
41
42 /************/
43 /* 終了処理 */
44 /************/
45 class WinEnd extends WindowAdapter
46 {
47 public void windowClosing(WindowEvent e) {
48 System.exit(0);
49 }
50 }
51 }
52
53 class MainPanel extends JPanel
54 {
55 Image im;
56 MainPanel()
57 {
58 setBackground(new Color(238, 255, 238)); // 背景色の設定
59 int pixels[] = new int [100*100];
60 for (int i1 = 0; i1 < 100; i1++) {
61 for (int i2 = 0; i2 < 100; i2++)
62 pixels[i1*100+i2] = 0xff00ff00;
63 }
64 MemoryImageSource mis = new MemoryImageSource(100, 100, pixels, 0, 100);
65 im = createImage(mis);
66 }
67 // 描画
68 public void paintComponent(Graphics g)
69 {
70 super.paintComponent(g); // 親クラスの描画
71
72 g.setColor(Color.green);
73 g.fillRect(20, 15, 100, 100);
74
75 g.drawImage(im, 150, 15, this);
76 }
77 }

01 import java.awt.*;
02 import java.awt.event.*;
03 import javax.swing.*;
04
05 public class Test {
06 public static void main (String[] args)
07 {
08 Win win = new Win("外部画像");
09 }
10 }
11
12 class Win extends JFrame
13 {
14 /******************/
15 /* コンストラクタ */
16 /******************/
17 Win(String name)
18 {
19 // JFrameクラスのコンストラクタ(Windowのタイトルを引き渡す)
20 super(name);
21 // Windowの大きさ
22 setSize(310, 200); // +40, +70
23 // ContentPane の取得と MainPanel の追加
24 Image im = getToolkit().getImage("rect.gif"); // 画像の読み込み
25 MainPanel pn = new MainPanel(im); // MainPanel オブジェクトの生成
26 getContentPane().add(pn); // MainPanel オブジェクトを ContentPane に追加
27 pn.setSize(270, 130);
28 // ウィンドウを表示
29 setVisible(true);
30 // イベントアダプタ
31 addWindowListener(new WinEnd());
32 }
33
34 /******************************/
35 /* 上,左,下,右の余白の設定 */
36 /******************************/
37 public Insets getInsets()
38 {
39 return new Insets(50, 20, 20, 20);
40 }
41
42 /************/
43 /* 終了処理 */
44 /************/
45 class WinEnd extends WindowAdapter
46 {
47 public void windowClosing(WindowEvent e) {
48 System.exit(0);
49 }
50 }
51 }
52
53 class MainPanel extends JPanel
54 {
55 Image im;
56 MainPanel(Image im1)
57 {
58 im = im1;
59 setBackground(new Color(238, 255, 238)); // 背景色の設定
60 }
61 // 描画
62 public void paintComponent(Graphics g)
63 {
64 super.paintComponent(g); // 親クラスの描画
65
66 g.setColor(Color.green);
67 g.fillRect(20, 15, 100, 100);
68
69 g.drawImage(im, 150, 13, this);
70 }
71 }

01 import java.awt.*;
02 import java.awt.event.*;
03 import java.awt.image.*;
04 import javax.swing.*;
05 import javax.imageio.*;
06
07 public class Test {
08 public static void main (String[] args)
09 {
10 Win win = new Win("フィルタ(ぼかし)");
11 }
12 }
13
14 class Win extends JFrame
15 {
16 /******************/
17 /* コンストラクタ */
18 /******************/
19 Win(String name)
20 {
21 // JFrameクラスのコンストラクタ(Windowのタイトルを引き渡す)
22 super(name);
23 // Windowの大きさ
24 setSize(310, 200); // +40, +70
25 // ContentPane の取得と MainPanel の追加
26 MainPanel pn = new MainPanel(); // MainPanel オブジェクトの生成
27 getContentPane().add(pn); // MainPanel オブジェクトを ContentPane に追加
28 pn.setSize(270, 130);
29 // ウィンドウを表示
30 setVisible(true);
31 // イベントアダプタ
32 addWindowListener(new WinEnd());
33 }
34
35 /******************************/
36 /* 上,左,下,右の余白の設定 */
37 /******************************/
38 public Insets getInsets()
39 {
40 return new Insets(50, 20, 20, 20);
41 }
42
43 /************/
44 /* 終了処理 */
45 /************/
46 class WinEnd extends WindowAdapter
47 {
48 public void windowClosing(WindowEvent e) {
49 System.exit(0);
50 }
51 }
52 }
53
54 class MainPanel extends JPanel
55 {
56 BufferedImage im2;
57 MainPanel()
58 {
59 setBackground(new Color(238, 255, 238)); // 背景色の設定
60 // BufferedImageの生成
61 int w = 100;
62 int h = 100;
63 BufferedImage im0 = new BufferedImage(110, 110, BufferedImage.TYPE_INT_RGB);
64 Graphics g = im0.getGraphics();
65 g.setColor(new Color(238, 255, 238));
66 g.fillRect(0, 0, 110, 110);
67 g.setColor(Color.blue);
68 g.fillRect(5, 5, 100, 100);
69 g.dispose(); // グラフィックスコンテキストを破棄
70 // フィルタ(ぼかし)
71 ConvolveOp c = new ConvolveOp(new Kernel(7, 7,
72 new float[] {
73 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f,
74 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f,
75 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f,
76 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f,
77 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f,
78 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f,
79 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f
80 }), ConvolveOp.EDGE_NO_OP, null);
81 im2 = c.filter(im0, im2);
82 }
83 // 描画
84 public void paintComponent(Graphics g)
85 {
86 super.paintComponent(g); // 親クラスの描画
87
88 g.setColor(Color.blue);
89 g.fillRect(20, 15, 100, 100);
90
91 g.drawImage((Image)im2, 150, 10, this);
92 }
93 }
/* ぼかし */ Kernel K1 = new Kernel(3, 3, new float[]{ 1/9f, 1/9f, 1/9f, 1/9f, 1/9f, 1/9f, 1/9f, 1/9f, 1/9f, }); /* シャープ */ Kernel K2 = new Kernel(3, 3, new float[]{ -1, -1, -1, -1, 9, -1, -1, -1, -1, }); /* エンボス(立体視) */ Kernel K3 = new Kernel(3, 3, new float[]{ 7, 0, 0, 0, -3, 0, 0, 0, -3, }); /* エッジ */ Kernel K4 = new Kernel(3, 3, new float[]{ -1, 0, 1, -2, 0, 2, -1, 0, 1, });

01 import java.awt.*;
02 import java.awt.event.*;
03 import java.awt.image.*;
04 import javax.swing.*;
05 import javax.imageio.*;
06
07 public class Test {
08 public static void main (String[] args)
09 {
10 Win win = new Win("フィルタ(ぼかし,外部画像)");
11 }
12 }
13
14 class Win extends JFrame
15 {
16 /******************/
17 /* コンストラクタ */
18 /******************/
19 Win(String name)
20 {
21 // JFrameクラスのコンストラクタ(Windowのタイトルを引き渡す)
22 super(name);
23 // Windowの大きさ
24 setSize(590, 370); // +40, +70
25 // 画像が完全に読み込まれるまで待つ
26 Image im = getToolkit().getImage("hana.gif");
27 MediaTracker trk = new MediaTracker(this);
28 trk.addImage(im, 0);
29 try {
30 trk.waitForID(0);
31 }
32 catch (InterruptedException e) {}
33 // ContentPane の取得と MainPanel の追加
34 MainPanel pn = new MainPanel(im); // MainPanel オブジェクトの生成
35 getContentPane().add(pn); // MainPanel オブジェクトを ContentPane に追加
36 pn.setSize(550, 300);
37 // ウィンドウを表示
38 setVisible(true);
39 // イベントアダプタ
40 addWindowListener(new WinEnd());
41 }
42
43 /******************************/
44 /* 上,左,下,右の余白の設定 */
45 /******************************/
46 public Insets getInsets()
47 {
48 return new Insets(50, 20, 20, 20);
49 }
50
51 /************/
52 /* 終了処理 */
53 /************/
54 class WinEnd extends WindowAdapter
55 {
56 public void windowClosing(WindowEvent e) {
57 System.exit(0);
58 }
59 }
60 }
61
62 class MainPanel extends JPanel
63 {
64 Image im1;
65 BufferedImage im2;
66 MainPanel(Image im)
67 {
68 im1 = im;
69 setBackground(Color.white); // 背景色の設定
70 // BufferedImageに変換
71 int w = im1.getWidth(null);
72 int h = im1.getHeight(null);
73 BufferedImage im0 = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
74 Graphics g = im0.getGraphics();
75 g.drawImage(im1, 0, 0, null);
76 g.dispose();
77 // フィルタ(ぼかし)
78 ConvolveOp c = new ConvolveOp(new Kernel(7, 7,
79 new float[] {
80 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f,
81 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f,
82 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f,
83 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f,
84 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f,
85 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f,
86 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f, 1/49f
87 }), ConvolveOp.EDGE_NO_OP, null);
88 im2 = c.filter(im0, im2);
89 }
90 // 描画
91 public void paintComponent(Graphics g)
92 {
93 super.paintComponent(g); // 親クラスの描画
94
95 g.drawImage(im1, 50, 50, this);
96
97 g.drawImage((Image)im2, 300, 50, this);
98 }
99 }
| 情報学部 | 菅沼ホーム | Java 目次 | 基礎技術目次 | 索引 |