• 大小: 8KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-08
  • 语言: Java
  • 标签: java  

资源简介

本程序是参考网上相关程序后,制作的一个彩色图转灰度图的灰度转换工具。

资源截图

代码片段和文件信息

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

评论

共有 条评论