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

📄 hisgram.java

📁 java版的位图处理
💻 JAVA
字号:
import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import bmpinfo.Bmp_Information;import java.awt.*;import java.io.*;public class hisgram extends  JDialog {    Bmp_Information pro;	int[] draw=new int[256];	static Color color=null;	static int max=1;    public hisgram(java.awt.Frame parent, boolean modal,String file) {        super(parent, modal);		pro=new Bmp_Information(file);		initComponents();    }    private void initComponents() {        jPanel2 = new  JPanel();        jPanel3=new JPanel();        jLabel1=new JLabel("灰度值:");        jLabel2=new JLabel("数     量:");        jTextField1=new JTextField();        jTextField1.setEditable(false);        jTextField2=new JTextField();        jTextField2.setEditable(false);          lightradio = new  JRadioButton();        redradio = new  JRadioButton();        greenradio = new  JRadioButton();        blueradio = new  JRadioButton();        getContentPane().setLayout(null);        setTitle("\u76f4\u65b9\u56fe");		setResizable(false);        setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE);        jPanel2.setBorder(new TitledBorder("\u901a\u9053\u9009\u62e9"));        lightradio.setText("混合亮度");        jPanel2.add(lightradio);        redradio.setText("\u7ea2\u8272\u901a\u9053");        jPanel2.add(redradio);        greenradio.setText("\u7eff\u8272\u901a\u9053");        jPanel2.add(greenradio);        blueradio.setText("\u84dd\u8272\u901a\u9053");        blueradio.addActionListener(new  ActionListener() {            public void actionPerformed( ActionEvent evt) {                blueradioActionPerformed(evt);            }        });        redradio.addActionListener(new  ActionListener() {            public void actionPerformed( ActionEvent evt) {                redradioActionPerformed(evt);            }        });        greenradio.addActionListener(new  ActionListener() {            public void actionPerformed( ActionEvent evt) {                greenradioActionPerformed(evt);            }        });        lightradio.addActionListener(new  ActionListener() {            public void actionPerformed( ActionEvent evt) {                lightradioActionPerformed(evt);            }        });        canvas = new  Canva()		{			public void paint(Graphics g)			{				super.paint(g);				g.setColor(color);				max=1;				for(int i=0;i<256;i++)				{					if(draw[i]>max) max=draw[i];				}				for(int i=0;i<draw.length;i++)				{					g.drawLine(i,210,i,(int)(210-210*(float)draw[i]/max));				}			}		};		canvas.addMouseListener(new MouseAdapter()		{			public void mouseEntered(MouseEvent e)			{				setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));			}			public void mouseExited(MouseEvent e)			{				setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));			}		});		canvas.addMouseMotionListener(new MouseMotionAdapter()		{			public void mouseMoved(MouseEvent e)			{				if(e.getX()<=255){					jTextField1.setText(Integer.toString(e.getX()));					jTextField2.setText(Integer.toString(draw[e.getX()]));				}				else					jTextField1.setText("255");			}		});        getContentPane().add(canvas);        jPanel2.add(blueradio);        getContentPane().add(jPanel2);        jPanel2.setBounds(285, 5, 120, 148);        jPanel3.setBorder(new TitledBorder("当前灰度"));        jPanel3.setLayout(null);        jPanel3.add(jLabel1);        jLabel1.setBounds(5,22,45,16);        jPanel3.add(jTextField1);        jTextField1.setBounds(50,20,60,20);        jPanel3.add(jLabel2);        jLabel2.setBounds(5,41,45,16);        jPanel3.add(jTextField2);        jTextField2.setBounds(50,40,60,20);        getContentPane().add(jPanel3);        jPanel3.setBounds(285, 150, 120, 70);                java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();        setBounds((screenSize.width-418)/2, (screenSize.height-261)/2, 418, 265);    }	private void blueradioActionPerformed( ActionEvent evt) {		greenradio.setSelected(false);		redradio.setSelected(false);		lightradio.setSelected(false);		if(blueradio.isSelected()==true)		{			draw=pro.getBluelevel();			color=Color.blue;			canvas.repaint();		}    }    private void redradioActionPerformed( ActionEvent evt) {		greenradio.setSelected(false);		blueradio.setSelected(false);		lightradio.setSelected(false);		if(redradio.isSelected()==true)		{			draw=pro.getRedlevel();			color=Color.red;			canvas.repaint();		}    }    private void greenradioActionPerformed( ActionEvent evt) {		blueradio.setSelected(false);		redradio.setSelected(false);		lightradio.setSelected(false);		if(greenradio.isSelected()==true)		{			draw=pro.getGreenlevel();			color=Color.green;			canvas.repaint();		}    }    private void lightradioActionPerformed( ActionEvent evt) {		greenradio.setSelected(false);		redradio.setSelected(false);		blueradio.setSelected(false);		if(lightradio.isSelected()==true)		{			draw=pro.getGraylevel();			color=Color.darkGray;			canvas.repaint();		}    }    private  JRadioButton blueradio;    private  Canva canvas;    private  JRadioButton greenradio;    private  JPanel jPanel2;    private  JRadioButton lightradio;    private  JRadioButton redradio;    private  JPanel jPanel3;    private  JLabel jLabel1;    private  JTextField jTextField1;    private  JLabel jLabel2;    private  JTextField jTextField2;        }class Canva extends JPanel {		Canva(){			setBackground(SystemColor.controlLtHighlight);			setBorder(new MatteBorder(new Insets(2, 2, 2, 2), new Color(51, 51, 255)));			setBounds(10, 10, 270, 210);		}		public void paint(Graphics g)		{			super.paint(g);			int h=54,v=42;			g.setColor(Color.lightGray);			for(int i=0;i<42;i++)			{				g.drawLine(0,i*5,270,i*5);			}			for(int i=0;i<54;i++)			{				g.drawLine(i*5,0,i*5,210);			}			g.setColor(Color.magenta);			g.drawLine(255,200,255,20);			g.setColor(Color.black);			g.drawString("255",245,210);		}};

⌨️ 快捷键说明

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