下载bing每日美图
下载界面:程序代码:
package main; import java.awt.Image; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.filechooser.FileNameExtensionFilter; import java.awt.image.BufferedImage; import import import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JButton; import javax.swing.JFileChooser; import java.awt.event.ActionEvent; public class Main extends JFrame { /** * */ private static final long serialVersionUID = 1L; private JPanel contentPane; private Download d = null; /** * Launch the application. */ public static void main(String[] args) { new Main().setVisible(true); } /** * Create the frame. */ public Main() { this.d = new Download(); setResizable(false); setTitle("\u6BCF\u65E5\u7F8E\u56FE"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 570, 425); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JLabel imageLabel = new JLabel(""); imageLabel.setBounds(10, 10, 546, 245); BufferedImage bi = null; try { bi = ImageIO.read(d.getUrl()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(bi!=null) { Image image = bi.getScaledInstance((int)(bi.getWidth()*0.5), (int)(bi.getHeight()*0.5), Image.SCALE_DEFAULT); imageLabel.setIcon(new ImageIcon(image)); } contentPane.add(imageLabel); JButton btnNewButton = new JButton("\u4E0B\u8F7D"); btnNewButton.addActionListener((ActionEvent ae)->{ FileNameExtensionFilter filter = new FileNameExtensionFilter("*.jpg", "jpg"); var choose = new JFileChooser(); choose.setFileFilter(filter); choose.showSaveDialog(this); File file = choose.getSelectedFile(); if(!file.getName().endsWith(".jpg")) { file = new File(file.getPath()+".jpg"); } d.downloadImage(file); JOptionPane.showMessageDialog(this, "下载完成"); }); btnNewButton.setBounds(10, 265, 546, 122); contentPane.add(btnNewButton); } }
下载类
程序代码:
package main; import java.awt.image.BufferedImage; import import import import import import import javax.imageio.ImageIO; import com.alibaba.fastjson.JSONObject; public class Download { private String host = "https://cn. private URL url = null; public Download() { try { url = new URL("https://cn.); URLConnection uc = url.openConnection(); uc.setRequestProperty("user-agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0"); uc.setRequestProperty("accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); uc.setRequestProperty("connection","keep-alive"); uc.setRequestProperty("charset", "utf-8"); uc.connect(); BufferedReader br = new BufferedReader(new InputStreamReader(uc.getInputStream(),"utf-8")); String line = ""; StringBuilder result = new StringBuilder(); while((line=br.readLine())!=null) { result.append(line); } JSONObject json = JSONObject.parseObject(result.toString()); url = new URL(host+json.getJSONArray("images").getJSONObject(0).getString("url")); }catch(Exception e) { e.printStackTrace(); } } public URL getUrl() { return url; } public void downloadImage(File path) { BufferedImage image = null; try { image = ImageIO.read(url); } catch (Exception e) { e.printStackTrace(); } try { ImageIO.write(image, "JPEG", path); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }