資源簡介
本程序是參考網上相關程序后,制作的一個彩色圖轉灰度圖的灰度轉換工具。
代碼片段和文件信息
import?java.awt.BorderLayout;
import?java.awt.Image;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.image.BufferedImage;
import?java.awt.image.ColorModel;
import?java.awt.image.MemoryImageSource;
import?java.awt.image.PixelGrabber;
import?java.io.File;
import?java.io.IOException;
import?java.util.linkedList;
import?javax.imageio.ImageIO;
import?javax.swing.ImageIcon;
import?javax.swing.JFileChooser;
import?javax.swing.Jframe;
import?javax.swing.JLabel;
import?javax.swing.JMenu;
import?javax.swing.JMenuBar;
import?javax.swing.JMenuItem;
import?javax.swing.JOptionPane;
import?javax.swing.JScrollPane;
public?class?PicHandle?extends?Jframe?{
//保存當前操作的像素矩陣
private?int?currentPixArray[]=null;
//圖像的路徑
private?String?fileString=null;
//用于顯示圖像的標簽
private?JLabel?imageLabel=null;
//加載的圖像
private?BufferedImage?newImage;
//圖像的高和寬
private?int?hw;
//保存歷史操作圖像矩陣
private?linkedList?imageStack=new?linkedList();
private?linkedList?tempImageStack=new?linkedList();
public?PicHandle(String?title){
????super(“灰度圖像轉換“);
????this.setSize(800600);
????this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
??
????//創建菜單
????JMenuBar?jb=new?JMenuBar();
????JMenu?fileMenu=new?JMenu(“文件“);
????jb.add(fileMenu);
??
????JMenuItem?openImageMenuItem=new?JMenuItem(“打開圖像“);
????fileMenu.add(openImageMenuItem);
????openImageMenuItem.addActionListener(new?OpenListener());
??
????JMenuItem?exitMenu=new?JMenuItem(“退出“);
????fileMenu.add(exitMenu);
????exitMenu.addActionListener(new?ActionListener(){
?????public?void?actionPerformed(ActionEvent?e){
??????System.exit(0);
?????}
????});
??
????JMenu?operateMenu=new?JMenu(“圖像處理“);
????jb.add(operateMenu);
??
????JMenuItem?RGBtoGrayMenuItem_1=new?JMenuItem(“加權法“);
????operateMenu.add(RGBtoGrayMenuItem_1);
????RGBtoGrayMenuItem_1.addActionListener(new?RGBtoGrayActionListener_1());
????
????JMenuItem?RGBtoGrayMenuItem_2=new?JMenuItem(“最大值法“);
????operateMenu.add(RGBtoGrayMenuItem_2);
????RGBtoGrayMenuItem_2.addActionListener(new?RGBtoGrayActionListener_2());
????
????JMenuItem?RGBtoGrayMenuItem_3=new?JMenuItem(“平均值法“);
????operateMenu.add(RGBtoGrayMenuItem_3);
????RGBtoGrayMenuItem_3.addActionListener(new?RGBtoGrayActionListener_3());
??
????
????JMenu?frontAndBackMenu=new?JMenu(“歷史操作“);
????jb.add(frontAndBackMenu);
??
????JMenuItem?backMenuItem=new?JMenuItem(“后退“);
????frontAndBackMenu.add(backMenuItem);
????backMenuItem.addActionListener(new?BackActionListener());
??
????JMenuItem?frontMenuItem=new?JMenuItem(“前進“);
????frontAndBackMenu.add(frontMenuItem);
????frontMenuItem.addActionListener(new?FrontActionListener());
??
????this.setJMenuBar(jb);
??
????imageLabel=new?JLabel(““);
????JScrollPane?pane?=?new????JScrollPane(imageLabel);
????this.add(paneBorderLayout.CENTER);
??
????this.setVisible(true);
??
}
private?class?OpenListener?implements?ActionList
- 上一篇:android圖庫 gallery apk
- 下一篇:會員管理系統代碼java編寫
評論
共有 條評論