Java通过按钮监听实现多种滤镜效果:原图、马赛克、反片、脸部提亮、灰度、二值化、美白、油画、轮廓提取、撤回

今天做一个简单的美颜相机,完整代码附在文章末尾处。

- 功能:通过选择功能按钮来实现多种滤镜效果。

- 界面展示:

思路:

- UI

- initUI(),初始化界面;

- 添加监听器 创建监听器对象

- 获取Graphics(绘图类) 传入监听器中

- Listener

- 创建一个类实现监听器ActionListener接口,重写所有方法

- 在方法中可以获取按钮上的字符串,通过字符串,选择使用哪种滤镜来绘制图片

- ImageEff

- 把图片转换成一个二维整数数组;

- 用算法修改二维数组,然后再重新绘制,以实现多种不同的滤镜。

完整代码如下:

import javax.swing.*;
import java.awt.*;

public class ImageUI extends JFrame {

    //创建监听器对象
    ImageListener imageListener=new ImageListener();

    public static void main(String[] args) {
        ImageUI imageUI=new ImageUI();
        imageUI.initUI();
    }

    //界面初始化
    public void initUI(){
        setTitle("图形图像处理");
        setSize (800,800);
        setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        //居中显示
        setLocationRelativeTo (null);
        //添加布局
        FlowLayout flow=new FlowLayout();
        setLayout(flow);
        //添加按钮
        addButton();
        //加载组件之后可视化
        setVisible(true);
        //获取getGraphics对象,传给监听器中的属性变量
        imageListener.g=getGraphics();
    }

    public void addButton(){
        String[] btnstrs ={"原图","马赛克","反片","脸部提亮","灰度","二值化","美白","油画","轮廓提取","撤回"};

        for (int i = 0; i <btnstrs.length ; i++) {

             JButton btn=new JButton(btnstrs[i]);
             add(btn);
             //按钮添加监听器
             btn.addActionListener(imageListener);

        }
    }

}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

public class ImageListener implements ActionListener {

  
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值