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

📄 simpleimageprocessor.java

📁 JAVA 開發的看圖軟件.可以自由開啟圖像,而家可以加入冷色,暖色,對比色等較果.
💻 JAVA
字号:
/***************************************************************
 *
 * COMPS451F Simple Image Processor
 * Written by Dr. Andrew Kwok-Fai LUI
 * On 10/11/2006
 *
 * The application demonstrates how to perform Image Processing
 * operations based on Java API.
 *
 */
import java.awt.Graphics2D;
import java.io.*;
import java.awt.image.*;
import javax.swing.*;
import javax.imageio.*;

public class SimpleImageProcessor extends javax.swing.JFrame {
  
  public SimpleImageProcessor() {
    initComponents();
  }
  
  /** This method is called from within the constructor to
   * initialize the form.
   * WARNING: Do NOT modify this code. The content of this method is
   * always regenerated by the Form Editor.
   */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
    private void initComponents() {
        imageDisplayer1 = new ImageDisplayer();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenu4 = new javax.swing.JMenu();
        jMenuItem5 = new javax.swing.JMenuItem();
        jMenuItem8 = new javax.swing.JMenuItem();
        jMenuItem7 = new javax.swing.JMenuItem();
        jMenuItem6 = new javax.swing.JMenuItem();
        jMenuItem9 = new javax.swing.JMenuItem();
        jMenu3 = new javax.swing.JMenu();
        jMenuItem4 = new javax.swing.JMenuItem();

        getContentPane().setLayout(new java.awt.GridLayout(1, 0));

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("Simple image Processor");
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
        });

        getContentPane().add(imageDisplayer1);

        jMenu1.setText("File");
        jMenuItem2.setText("Open");
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });

        jMenu1.add(jMenuItem2);

        jMenuItem1.setText("Quit");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });

        jMenu1.add(jMenuItem1);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Image");
        jMenuItem3.setText("Information");
        jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem3ActionPerformed(evt);
            }
        });

        jMenu2.add(jMenuItem3);

        jMenuBar1.add(jMenu2);

        jMenu4.setText("Processing");
        jMenuItem5.setText("Warm");
        jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem5ActionPerformed(evt);
            }
        });

        jMenu4.add(jMenuItem5);

        jMenuItem8.setText("Chill");
        jMenuItem8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem8ActionPerformed(evt);
            }
        });

        jMenu4.add(jMenuItem8);

        jMenuItem7.setText("Negation");
        jMenuItem7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem7ActionPerformed(evt);
            }
        });

        jMenu4.add(jMenuItem7);

        jMenuItem6.setText("Posterize");
        jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem6ActionPerformed(evt);
            }
        });

        jMenu4.add(jMenuItem6);

        jMenuItem9.setText("Blur");
        jMenuItem9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem9ActionPerformed(evt);
            }
        });

        jMenu4.add(jMenuItem9);

        jMenuBar1.add(jMenu4);

        jMenu3.setText("Help");
        jMenuItem4.setText("About");
        jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem4ActionPerformed(evt);
            }
        });

        jMenu3.add(jMenuItem4);

        jMenuBar1.add(jMenu3);

        setJMenuBar(jMenuBar1);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jMenuItem9ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem9ActionPerformed
BufferedImage image = imageDisplayer1.getImage();
BufferedImage oimage = ImageOperations.blurKernel(image);
imageDisplayer1.setImage(oimage);
    }//GEN-LAST:event_jMenuItem9ActionPerformed

    private void jMenuItem8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem8ActionPerformed
BufferedImage image = imageDisplayer1.getImage();
BufferedImage oimage = ImageOperations.chill(image);
imageDisplayer1.setImage(oimage);
    }//GEN-LAST:event_jMenuItem8ActionPerformed

    private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem7ActionPerformed
BufferedImage image = imageDisplayer1.getImage();
BufferedImage oimage = ImageOperations.negation(image);
imageDisplayer1.setImage(oimage);
    }//GEN-LAST:event_jMenuItem7ActionPerformed

    private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem6ActionPerformed
BufferedImage image = imageDisplayer1.getImage();
BufferedImage oimage = ImageOperations.posterize(image, 7);
imageDisplayer1.setImage(oimage);
    }//GEN-LAST:event_jMenuItem6ActionPerformed

  private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem5ActionPerformed
BufferedImage image = imageDisplayer1.getImage();
BufferedImage oimage = ImageOperations.warm(image);
imageDisplayer1.setImage(oimage);
  }//GEN-LAST:event_jMenuItem5ActionPerformed
  
  private void toClose() {
    int result = JOptionPane.showConfirmDialog(this, "Are you sure to quit?", "Confirm", JOptionPane.OK_CANCEL_OPTION);
    if (result == JOptionPane.CANCEL_OPTION)
      return; /* The Cancel button is pressed */
    System.exit(0);
  }
  
  private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
    toClose();
  }//GEN-LAST:event_formWindowClosing
  
    private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem4ActionPerformed
      StringBuffer sb = new StringBuffer();
      sb.append("<html>");
      sb.append("Authored by Lam Kwok Yeung");
      sb.append("</html>");
      JOptionPane.showMessageDialog(this, sb.toString());
    }//GEN-LAST:event_jMenuItem4ActionPerformed
    
    private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
      BufferedImage image = imageDisplayer1.getImage();
      if (image == null) {
        JOptionPane.showMessageDialog(null, "No image loaded");
        return;
      }
      StringBuffer sb = new StringBuffer();
      sb.append("<html>");
      sb.append("Image Size = " + image.getWidth() + " x " + image.getHeight() + "<br>");
      
      ColorModel cmodel = image.getColorModel();
      sb.append("Colour space = " + cmodel.getColorSpace() + "<br>");
      sb.append("Color components = " + cmodel.getNumColorComponents() + "<br>");
      sb.append("Number of bits per pixel = " + cmodel.getPixelSize() + "<br>");
      JOptionPane.showMessageDialog(this, sb.toString());
    }//GEN-LAST:event_jMenuItem3ActionPerformed
    
    private JFileChooser fileChooser = null;
    private File chosenImageFile = null;
    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
      if (fileChooser == null) {
        fileChooser = new JFileChooser();
        fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
        if (chosenImageFile != null)
          fileChooser.setCurrentDirectory(chosenImageFile.getParentFile());
        else
          fileChooser.setCurrentDirectory(new File(System.getProperty("user.dir")));
        fileChooser.setDialogTitle("Select an Image File");
      }
      int result = fileChooser.showOpenDialog(null);
      if (result == JFileChooser.CANCEL_OPTION)
        return;
      chosenImageFile = fileChooser.getSelectedFile();
      try {
        BufferedImage image = ImageIO.read(chosenImageFile);
        BufferedImage source = new BufferedImage(image.getWidth(), image.getHeight(),
                  BufferedImage.TYPE_INT_RGB);
        Graphics2D g2d = source.createGraphics();
        g2d.drawImage(image, 0, 0, null);
        imageDisplayer1.setImage(source);
      } catch (IOException ex) {
        JOptionPane.showMessageDialog(this, ex, "Image Read Error", JOptionPane.ERROR_MESSAGE);
      }
    }//GEN-LAST:event_jMenuItem2ActionPerformed
    
    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
      toClose();
    }//GEN-LAST:event_jMenuItem1ActionPerformed
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
      java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
          new SimpleImageProcessor().setVisible(true);
        }
      });
    }
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private ImageDisplayer imageDisplayer1;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenu jMenu4;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JMenuItem jMenuItem6;
    private javax.swing.JMenuItem jMenuItem7;
    private javax.swing.JMenuItem jMenuItem8;
    private javax.swing.JMenuItem jMenuItem9;
    // End of variables declaration//GEN-END:variables
  
}

⌨️ 快捷键说明

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