java开发实战1200例(II)----------058模糊

本文介绍了一个使用Java实现的图片模糊效果处理程序。通过定义一个3x3的卷积核,程序能够对导入的图片进行模糊处理。用户界面包括模糊按钮和退出按钮,点击模糊按钮可以实时预览模糊效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 BlurImageFrame extends JFrame {
    private BufferedImage image;
    private BlurImagePanel blurImagePane=null;
    public static void main(String args[]){
        BlurImageFrame frame=new BlurImageFrame();
        frame.setVisible(true);
    }
    public BlurImageFrame(){
        super();
        this.setBounds(100,100,500,400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("图片模糊");
        final JPanel panel=new JPanel();
        blurImagePane=new BlurImagePanel();
        this.add(blurImagePane);
        getContentPane().add(panel,BorderLayout.SOUTH);
        final JButton button_blur=new JButton();
        button_blur.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                float[] elements=new float[9];
                for(int i=0;i<9;i++){
                    elements[i]=0.11f;
                }
                convolve(elements);
            }
        });
        button_blur.setText("模    糊");
        panel.add(button_blur);
        
        final 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 BlurImagePanel extends JPanel{
        public BlurImagePanel(){
        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){
            g.drawImage(image, 0, 0,null);
        }
    }

}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值