9.11总结

package baidu.com;



import okhttp3.*;

import org.json.JSONObject;



import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.IOException;

import java.net.URLEncoder;

import java.nio.file.Files;

import java.nio.file.Paths;

import java.util.Base64;



public class MainGUI extends JFrame {

private JButton button;

private JTextArea textArea;

private JLabel imageLabel;



public MainGUI() {

setTitle("图片处理GUI");

setSize(600, 400);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



// 创建按钮和文本区域

button = new JButton("处理图片");

textArea = new JTextArea();

textArea.setEditable(false);



// 创建图片标签

imageLabel = new JLabel();

imageLabel.setPreferredSize(new Dimension(300, 300));



// 添加组件到窗口布局中

Container container = getContentPane();

container.setLayout(new BorderLayout());

container.add(button, BorderLayout.NORTH);

container.add(textArea, BorderLayout.CENTER);

container.add(imageLabel, BorderLayout.WEST);



// 添加按钮点击事件处理程序

button.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

try {

// 调用Sample类方法获取图片Base64编码

String base64Image = Sample.getFileContentAsBase64("D:\\3.jpg", true);

textArea.setText("Base64编码:" + base64Image);



// 处理图片并显示

processAndDisplayImage(base64Image);

} catch (IOException ex) {

ex.printStackTrace();

}

}

});

}



private void processAndDisplayImage(String base64Image) throws IOException {

// 请求处理图片

MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");

RequestBody body = RequestBody.create(mediaType, "type=anime&mask_id=1&image=" + base64Image);

Request request = new Request.Builder()

.url("https://aip.baidubce.com/rest/2.0/image-process/v1/image_definition_enhance?access_token=" + getAccessToken())

.method("POST", body)

.addHeader("Content-Type", "application/x-www-form-urlencoded")

.addHeader("Accept", "application/json")

.build();

Response response = Sample.HTTP_CLIENT.newCall(request).execute();



// 获取处理后的图片Base64编码

String processedImageBase64 = new JSONObject(response.body().string()).getString("image");



// 显示处理后的图片

showImage(processedImageBase64);

}



private void showImage(String base64Image) {

// 解码Base64编码为字节数组

byte[] imageBytes = Base64.getDecoder().decode(base64Image);



// 创建图像对象

ImageIcon imageIcon = new ImageIcon(imageBytes);

Image image = imageIcon.getImage().getScaledInstance(300, 300, Image.SCALE_DEFAULT);

imageIcon = new ImageIcon(image);



// 更新图片标签的显示

imageLabel.setIcon(imageIcon);

}



private String getAccessToken() throws IOException {

MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");

RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + Sample.API_KEY

+ "&client_secret=" + Sample.SECRET_KEY);

Request request = new Request.Builder()

.url("https://aip.baidubce.com/oauth/2.0/token")

.method("POST", body)

.addHeader("Content-Type", "application/x-www-form-urlencoded")

.build();

Response response = Sample.HTTP_CLIENT.newCall(request).execute();

return new JSONObject(response.body().string()).getString("access_token");

}



public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

MainGUI mainGUI = new MainGUI();

mainGUI.setVisible(true);

}

});

}

}
posted @   奉禾  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示
主题色彩