一、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的实现真的是太简洁明了了

从url下载图片--java与python实现方式比较的更多相关文章

  1. JAVA 通过url下载图片保存到本地

    //java 通过url下载图片保存到本地 public static void download(String urlString, int i) throws Exception { // 构造U ...

  2. C++根据图片url下载图片

    需要使用到URLDownloadToFile()函数,该函数在头文件<urlmon.h>中声明. URLDownloadToFile()函数的定义如下: HRESULT URLDownlo ...

  3. python实现通过URL下载图片到本地服务器

    import os import urllib.request image_url = 'http://img.jingtuitui.com/759fa20190115144450401.jpg' f ...

  4. QT通过url下载图片到本地

    /* strUrl:下载图片时需要的url strFilePath:下载图片的位置(/home/XXX/YYY.png) */ void ThorPromote::downloadFileFromUr ...

  5. 根据URL地址获取对应的HTML,根据对应的URL下载图片

    核心代码(获取HTML): #region 根据URL地址获取信息GET public static String GetResult(string url) { return GetResult(u ...

  6. js 根据url 下载图片

    downloadIamge(imgsrc, name) {//下载图片地址和图片名 let image = new Image(); // 解决跨域 Canvas 污染问题 image.setAttr ...

  7. js 根据url 下载图片 前端js 实现文件下载

    1.H5 download属性 function downFile(content, filename) { // 创建隐藏的可下载链接 var eleLink = document.createEl ...

  8. 根据URL下载图片到本地

    /// <summary> /// 下载图片 /// </summary> /// <param name="picUrl">图片Http地址& ...

  9. Java依据Url下载图片

    package com.ronniewang.downloadpicture; import java.io.DataInputStream; import java.io.File; import ...

随机推荐

  1. Video Cards

    Video Cards time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...

  2. OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章)

    OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章) 4.5精度和精度修饰符 4.5.1范围和精度 用于存储和展示浮点数.整数变量的范围和精度依赖于数值的源(varying,unifo ...

  3. @property(nonatomic) UIViewAutoresizing autoresizingMask;

    在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高. 1 2 3 4 5 6 7 8 9 enum  ...

  4. 【转】ThinkPHP 页面跳转

    ThinkPHP 提供了success 与error 方法用于带提示信息的页面跳转,如添加数据后显示提示信息并跳转等.success 方法用于操作成功后的提示,error 用于操作失败后的提示,二者使 ...

  5. HDU-1548--A strange lift--(BFS,剪枝)

    A strange lift   Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...

  6. Hbase shell 中能否通过filter实现的高级查询

    import org.apache.hadoop.hbase.filter.CompareFilter import org.apache.hadoop.hbase.filter.SingleColu ...

  7. 转:通过ant来批量执行jmeter脚本,并生成报告(附: 生成报告时报“Content is not allowed in prolog”这个错误的解决方案)

    最近在使用jmeter写脚本来进行测试,最终写了很多份脚本,然后,就在想,这么多脚本,我不可能一个一个的手动去点啊,有没有什么办法来批量运行Jmeter脚本呢? 这个时候,自然而然地想到了万能的ant ...

  8. Image File Execution Options(转)

    今天公司的一台计算机无法正常工作送来维修,经简单判断是感染了很多病毒,即使在安全模式下也无法清除:于是将硬盘摘下挂到另外一台机器上,用卡巴斯基对病毒进行了查杀,再次启动计算机后发现很多系统维护程序以及 ...

  9. Android Audio Focus的应用(requestAudioFocus)

    网址:http://blog.csdn.net/dadoneo/article/details/8252933 FROM: http://www.linuxidc.com/Linux/2012-04/ ...

  10. FAT32系统中长文件名的存储(转)

    FAT32的一个重要的特点是完全支持长文件名.长文件名依然是记录在目录项中的. 为了低版本的OS或程序能正确读取长文件名文件,系统自动为所有长文件名文件创建了一个对应的短文件名,使对应数据既可以用长文 ...