資源簡介
java 顯示一個圖像的輪廓
java 顯示一個圖像的輪廓
java 顯示一個圖像的輪廓

代碼片段和文件信息
import?java.awt.BorderLayout;
import?java.awt.Color;
import?java.awt.Dimension;
import?java.awt.Font;
import?java.awt.Graphics;
import?java.awt.Graphics2D;
import?java.awt.GridLayout;
import?java.awt.Image;
import?java.awt.MediaTracker;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.image.BufferedImage;
import?java.awt.image.ConvolveOp;
import?java.awt.image.Kernel;
import?javax.swing.JButton;
import?javax.swing.Jframe;
import?javax.swing.JPanel;
public?class?ImageProfile?extends?Jframe?{
private?JPanel?contentPane;
private?BorderLayout?borderLayout1?=?new?BorderLayout();
//?添加的組件
private?JPanel?jpanel?=?new?JPanel();
private?JButton?jb1?=?new?JButton();
private?JButton?jb2?=?new?JButton();
private?GridLayout?gridLayout?=?new?GridLayout();
PanelDemo_1?pd?=?new?PanelDemo_1();
public?void?initial()?{
//?設置各組件的屬性
contentPane?=?(JPanel)?this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new?Dimension(350?560));
this.settitle(“圖像的銳化與模糊處理演示“);
jb1.setFont(new?Font(“Dialog“?Font.BOLD?13));
jb1.setText(“Image?Edge“);
jb1.addActionListener(new?ActionListener()?{//?添加事件監聽器
public?void?actionPerformed(ActionEvent?e)?{
jb1_actionPerformed(e);
}
});
jb2.setFont(new?Font(“Dialog“?Font.BOLD?13));
jb2.setText(“Reset“);
jb2.addActionListener(new?ActionListener()?{//?添加事件監聽器
public?void?actionPerformed(ActionEvent?e)?{
jb2_actionPerformed(e);
}
});
jpanel.setLayout(gridLayout);
jpanel.add(jb1?null);
jpanel.add(jb2?null);
contentPane.add(jpanel?BorderLayout.SOUTH);
//?在窗口中部添加PanelDemo_1面板
contentPane.add(pd?BorderLayout.CENTER);
this.setVisible(true);
}
public?void?jb1_actionPerformed(ActionEvent?e)?{
pd.detectImageEgde();//?顯示圖像輪廓
pd.repaint();//?繪制顯示圖像輪廓后的圖像
}
public?void?jb2_actionPerformed(ActionEvent?e)?{
pd.reset();//?緩沖區圖像設為源圖像
pd.repaint();//?繪制源圖像
}
public?static?void?main(String[]?args)?{
new?ImageProfile().initial();
}
}
class?PanelDemo_1?extends?JPanel?{
private?BorderLayout?borderLayout?=?new?BorderLayout();
//?定義新屬性
Image?image;//?源圖像
BufferedImage?bi1;//?緩沖區圖像
BufferedImage?bi2;//?緩沖區圖像
BufferedImage?bi3;//?緩沖區圖像
Graphics2D?g2d;//?圖像上下文
public?PanelDemo_1()?{
this.setLayout(borderLayout);
loadImage();//?加載圖片
createBufferedImage();//?創建緩沖區圖像
bi1?=?bi2;
this
.setSize(new?Dimension(image.getWidth(this)?image
.getHeight(this)));//?設置面板大小
}
public?void?loadImage()?{
//?加載圖片
image?=?this.getToolkit().getImage(
//這里讀者如果不填寫一個存在的圖片名,程序會拋出空指針異常
ClassLoader.getSystemResource(“chaojikatong.jpg“));//?創建Image對象
MediaTracker?mt?=?new?MediaTracker(this);
mt.addImage(image?0);
try?{
mt.waitForAll();
}?catch?(Exception?e)?{
e.printStackTrace();//?表示加載失敗
}
if?(image.getWidth(this)?==?-1)?{
System.out.println(“不能創建圖象“);//?如果不存在退出程序
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4599??2010-01-06?19:21??ImageProfile.java
?????文件???????79204??2010-06-18?09:14??Java.jpg
評論
共有 條評論