package Test;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Image;
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 java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class SharpenImageFrame extends JFrame {
private BufferedImage image;
private SharpenImagePanel sharpenImagePane=null;
public static void main(String args[]){
SharpenImageFrame frame=new SharpenImageFrame();
frame.setVisible(true);
}
public SharpenImageFrame(){
setBounds(100,100,400,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("图片锐化");
JPanel panel=new JPanel();
getContentPane().add(panel,BorderLayout.SOUTH);
sharpenImagePane=new SharpenImagePanel();
this.add(sharpenImagePane);
JButton button_sharpen=new JButton();
button_sharpen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
float[] elements = {0.0f,-1.0f,0.0f,-1.0f,5.0f,-1.0f,0.0f,-1.0f,0.0f};
convolve(elements);
}
});
button_sharpen.setText("锐 化");
panel.add(button_sharpen);
JButton button_exit=new JButton();
button_exit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
button_exit.setText("退 出");
panel.add(button_exit);
}
private void convolve(float[] elements){
Kernel kernel=new Kernel(3,3,elements);
ConvolveOp op=new ConvolveOp(kernel);
if(image ==null){
return;
}
image=op.filter(image, null);
repaint();
}
class SharpenImagePanel extends JPanel{
public SharpenImagePanel(){
Image img=null;
try {
img=ImageIO.read(new File("src/image/imag.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
image=new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_INT_RGB);
image.getGraphics().drawImage(img, 0, 0, null);
}
public void paint(Graphics g){
if(image!=null){
g.drawImage(image, 0, 0, null);
}
}
}
}