情報学部 | 菅沼ホーム | 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 目次 | 基礎技術目次 | 索引 |