?? imagepixel.java.bak
字號(hào):
//ImagePixel.java
/*
程序說明:獲取圖像Miss.jpg的象素,保存在一個(gè)數(shù)組中!
同時(shí)可以獲得圖像的RGB值和Alpha值。
作者:haibin
最后修改時(shí)間:2003-12
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
public class ImagePixel extends Frame {
Image im;
int i,iw,ih;
int[] pixels;
boolean loadFlag=false;
public ImagePixel(){
super("提取圖像的象素");
setLocation(100,100);
Panel pdown;
Button load,run,quit;
//添加窗口監(jiān)聽事件
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
pdown = new Panel();
pdown.setBackground(Color.lightGray);
load=new Button("裝載圖像");
run = new Button("提取象素");
quit=new Button("退出");
this.add(pdown,BorderLayout.SOUTH);
pdown.add(load);
pdown.add(run);
pdown.add(quit);
load.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jLoad_ActionPerformed(e);
}
});
run.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jRun_ActionPerformed(e);
}
});
quit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jQuit_ActionPerformed(e);
}
});
}
public void jLoad_ActionPerformed(ActionEvent e){
//利用MediaTracker跟蹤圖像的加載
MediaTracker tracker = new MediaTracker(this);
im=Toolkit.getDefaultToolkit().getImage("Miss.jpg");
tracker.addImage(im,0);
//等待圖像的完全加載
try{
tracker.waitForID(0);
}catch(InterruptedException ee){ ee.printStackTrace();}
loadFlag=true;
repaint();
}
public void jRun_ActionPerformed(ActionEvent e){
if(loadFlag){
//獲取圖像的寬度iw和高度ih
iw=im.getWidth(this);
ih=im.getHeight(this);
//提取圖像的象素pixels
pixels=new int[iw*ih];
try{
PixelGrabber pg=new PixelGrabber(im,0,0,iw,ih,pixels,0,iw);
pg.grabPixels();
}catch (InterruptedException eee) {
eee.printStackTrace();
}
//調(diào)用PixelsShow.java進(jìn)行顯示
PixelsShow ps=new PixelsShow(iw,ih);
ps.setData(pixels);
ps.showTable();
ps.show();
repaint();
}else{
JOptionPane.showMessageDialog(null,"請(qǐng)先打開一幅圖片!",
"Alert",JOptionPane.WARNING_MESSAGE);
}
}
public void jQuit_ActionPerformed(ActionEvent e)
{
//System.exit(0);
JOptionPane op =new JOptionPane();
int exit=op.showConfirmDialog(this,"你要退出嗎? ? ?","退出",JOptionPane.YES_NO_OPTION);
if(exit==JOptionPane.YES_OPTION)
{
System.exit(0);
}else{ }
}
//調(diào)用paint()方法,顯示圖像信息。
public void paint(Graphics g){
if(loadFlag)
{
g.drawImage(im,10,10,this);
}
}
//定義main方法,設(shè)置窗口的大小,顯示窗口
public static void main(String[] args) {
ImagePixel ip = new ImagePixel();
ip.setSize(500,400);
ip.show();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -