从url下载图片--java与python实现方式比较

时间:2022-10-06 07:05:29

一、java的实现方式

  1. 首先读取图片
  1. //方式一:直接根据url读取图片
  2. private static BufferedImage read(String imageUrl) throws IOException {
  3. URL url = new URL(imageUrl);
  4. BufferedImage image = ImageIO.read(url);
  5. return image;
  6. }
  1. //如果需要设置connection里的一些属性,譬如RequestProperty,则采用方式二:
  2. private static BufferedImage read(String imageUrl) throws IOException {
  3. URL url = new URL(imageUrl);
  4. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  5. //conn.setRequestProperty("Referer", referer);
  6. conn.setRequestMethod("GET");
  7. BufferedImage image = ImageIO.read(conn.getInputStream());
  8. return image;
  9. }

2. 然后保存图片

  1. private static void save(BufferedImage image, String destImageUrl)
  2. throws IOException {
  3. File imageFile = new File(destImageUrl);
  4. FileOutputStream outStream = new FileOutputStream(imageFile);
  5. ImageIO.write(image, "jpg", outStream);
  6. ImageIO.write(image, "gif", outStream);
  7. ImageIO.write(image, "png", outStream);
  8. ImageIO.write(image, "jpeg", outStream);
  9. }

3. 如何获取图片的类型(jpg、Jpeg、gif、png等)

  1. public static String get(byte[] imageBT) throws IOException {
  2. String type = "";
  3. MemoryCacheImageInputStream mcis = null;
  4. try {
  5. mcis = new MemoryCacheImageInputStream(new ByteArrayInputStream(
  6. imageBT));
  7. Iterator<ImageReader> it = ImageIO.getImageReaders(mcis);
  8. while (it.hasNext()) {
  9. ImageReader reader = (ImageReader) it.next();
  10. return reader.getFormatName();
  11. }
  12. } finally {
  13. if (mcis != null) {
  14. try {
  15. mcis.close();
  16. } catch (IOException ioe) {
  17. }
  18. }
  19. }
  20. return type;
  21. }

二、python如何实现

  1. 一行代码搞定图片读取和保存
  1. from urllib import urlretrieve
  2. urlretrieve(‘http://img.chetx.com/chetxbbs/2005_04/09/1113039370066.gif’, ‘e://mypicture.gif’)

2. 一行代码搞定图片类型获取

  1. import imghdr
  2. imghdr.what(‘mypicture.gif')

三、总结

相比于Java,python的实现真的是太简洁明了了