⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changeimage.java

📁 本实例主要包括图像的模糊化
💻 JAVA
字号:
package changeimage;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class ChangeImage
    extends JFrame {
  JPanel contentPane;
  BorderLayout borderLayout1 = new BorderLayout();
  JPanel jPanel1 = new JPanel();
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  Choice choice1 = new Choice();
  Panel1 imagePanel = new Panel1();

  //Construct the frame
  public ChangeImage() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  //Component initialization
  private void jbInit() throws Exception {
    contentPane = (JPanel)this.getContentPane();
    contentPane.setLayout(borderLayout1);
    this.setSize(new Dimension(345, 277));
    this.setTitle("图像综合处理");
    jButton1.setText("打开图像文件");
    jButton1.addActionListener(new ChangeImage_jButton1_actionAdapter(this));
    jButton2.setText("还原图像");
    jButton2.addActionListener(new ChangeImage_jButton2_actionAdapter(this));
    choice1.addItemListener(new ChangeImage_choice1_itemAdapter(this));
    contentPane.add(jPanel1, BorderLayout.NORTH);
    jPanel1.add(jButton1, null);
    jPanel1.add(choice1, null);
    jPanel1.add(jButton2, null);
    choice1.addItem("图像处理");
    choice1.addItem("灰度化");
    choice1.addItem("锐化");
    choice1.addItem("模糊化");
    choice1.addItem("边缘处理");
    contentPane.add(imagePanel, BorderLayout.CENTER); //将显示图像的面板居中

  }

  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }

  void choice1_itemStateChanged(ItemEvent e) {
    switch (choice1.getSelectedIndex()) {
      case 0:
        break;
      case 1: {
        imagePanel.imageToGray();
      } //图像灰度化
      break;
      case 2: {
        imagePanel.sharpImage();
      } //图像锐化
      break;
      case 3: {
        imagePanel.blurImage(); //图像模糊化
        break;
      }
      case 4: {
        imagePanel.edgeImage();
      } //图像边缘变换
    }
  }

  void jButton1_actionPerformed(ActionEvent e) {
    JFileChooser fileChooser1 = new JFileChooser(); //定义一个JFileChooser对象
    fileChooser1.setCurrentDirectory(new File("."));
//设置可显示的图像文件的后缀名
    fileChooser1.setFileFilter(new javax.swing.filechooser.FileFilter() {
      public boolean accept(File f) {
        String name = f.getName().toLowerCase();
        return name.endsWith(".gif") || name.endsWith(".jpg")
            || name.endsWith(".jpeg") || f.isDirectory();
      }

      public String getDescription() {
        return "Image files";
      }
    });
    int t = fileChooser1.showOpenDialog(this);
    if (t == JFileChooser.APPROVE_OPTION) {
      //得到文件后缀名
      String name = fileChooser1.getSelectedFile().getAbsolutePath();
      imagePanel.showImage(name); //打开图像文件并显示
    }

  }

  void jButton2_actionPerformed(ActionEvent e) {
    imagePanel.reset();
  }

}

class ChangeImage_choice1_itemAdapter
    implements java.awt.event.ItemListener {
  ChangeImage adaptee;

  ChangeImage_choice1_itemAdapter(ChangeImage adaptee) {
    this.adaptee = adaptee;
  }

  public void itemStateChanged(ItemEvent e) {
    adaptee.choice1_itemStateChanged(e);
  }
}

class ChangeImage_jButton1_actionAdapter
    implements java.awt.event.ActionListener {
  ChangeImage adaptee;

  ChangeImage_jButton1_actionAdapter(ChangeImage adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
  }
}

class ChangeImage_jButton2_actionAdapter
    implements java.awt.event.ActionListener {
  ChangeImage adaptee;

  ChangeImage_jButton2_actionAdapter(ChangeImage adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jButton2_actionPerformed(e);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -