百度图像增强与特效SDK实验——GUI界面

发布时间 2023-12-08 01:06:52作者: 辞楠

GUI界面的效果图为

GUI代码

package tupian;

import java.awt.FlowLayout;
import java.awt.Image;
import java.io.File;

import javax.swing.JLabel ;
import javax.swing.JPanel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileNameExtensionFilter;

public class Text3 extends JFrame  {
    public String url=null;//上传的图片的路径
    public String newImage=null;//添加特效或者增强后的图片
    JPanel root =new JPanel();
    //定义一个button点击之后
    JLabel textlabel=new JLabel("     ");//使页面好看加的空格没什么用
    JButton button1 =new JButton("上传图片");
    JButton button2 =new JButton("确   定");
    JLabel label =new JLabel();
    JLabel label2 =new JLabel();
    JComboBox<String> box=new JComboBox<String>();//下拉框
    private int width = 250, height = 250;
     
    public Text3() {
        
        this.setContentPane(root);
        //流式布局页面
        root.setLayout(new FlowLayout(FlowLayout.LEADING,50,20));

        //下拉框添加属性
        box.addItem("人物动漫化");
        box.addItem("图像清晰度增强");
        
        //组件添加到界面
        root.add(textlabel);
        root.add(button1);
        root.add(box);
        //添加上传图片的点击事件
        button1.addActionListener((e)->{
            addpicture1();
        });
        
        //确定图片特效的点击事件
        root.add(button2);
        button2.addActionListener((e)->{
            addpicture2();
        });
        root.add(label);
        root.add(label2);
        
        
    }
    
    
    //文件选择器
    public void addpicture1()
    {
        JFileChooser chose=new JFileChooser();
        
        //文件过滤器 只能选择图片文件
        FileNameExtensionFilter filter =new FileNameExtensionFilter("图片文件", "jpg");
        chose.setFileFilter(filter);
        
        //显示文件选择器
        int ret =chose.showOpenDialog(this);
        
        //获取用户的选择结果
        if(ret == chose.APPROVE_OPTION)
        {
            //结果为已经存在的一个文件
            File file=chose.getSelectedFile();
            //获取选择的图片的路径
            url=file.getAbsolutePath();
            //上传图片,将图片展示在窗体上
            ImageIcon image = new ImageIcon(url);
            
            Image img = image.getImage();
            img = img.getScaledInstance(width, height, Image.SCALE_DEFAULT);
            image.setImage(img);
            //设置图片的长宽
            label.setIcon(image);
            label.setSize(width,height);           
        }
    }
    //选择特效或增强的点击事件
    public void addpicture2()
    {
        
        int flag=0;
        if(box.getSelectedIndex()==0)
        {
            //人物动漫化
            newImage=Text1.selfie_anime(url);
        }else if(box.getSelectedIndex()==1)
        {
            //图像清晰度增强
            newImage=Text2.image_definition_enhance(url);
        }
        try {
            //上传图片
            ImageIcon   image = new ImageIcon(newImage);
            
            Image img = image.getImage();
            img = img.getScaledInstance(width, height, Image.SCALE_DEFAULT);
            image.setImage(img);
            //设置图片的长宽
            label2.setIcon(image);
            label2.setSize(width,height);
        } catch (Exception e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    }
    public static void main(String[] args) {
        
        //jfram指的是一个窗口
       // myframe frame=new myframe();
        //子类继承父类所以可以直接声明
        JFrame test=new Text3();
        
        //当关闭窗口时候退出整个程序
        test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        
       
        //设置窗口大小宽高
        test.setSize(680,450);
        //显示窗口
        test.setVisible(true);
       
        
       }
    
}

这里借鉴了一下别人的代码https://www.cnblogs.com/222wan/p/17874153.html