百度图像增强与特效SDK实验——GUI界面
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构