`
海浪儿
  • 浏览: 274125 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

阅读更多

一、java的实现方式

  1. 首先读取图片
//方式一:直接根据url读取图片
private static BufferedImage read(String imageUrl) throws IOException {
		URL url = new URL(imageUrl);
		BufferedImage image = ImageIO.read(url);
		return image;
	}
//如果需要设置connection里的一些属性,譬如RequestProperty,则采用方式二:
private static BufferedImage read(String imageUrl) throws IOException {
		URL url = new URL(imageUrl);

		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
		//conn.setRequestProperty("Referer", referer);
		conn.setRequestMethod("GET");
		BufferedImage image = ImageIO.read(conn.getInputStream());
		return image;

}

 

   2. 然后保存图片

private static void save(BufferedImage image, String destImageUrl)
			throws IOException {
		File imageFile = new File(destImageUrl);
		FileOutputStream outStream = new FileOutputStream(imageFile);

		ImageIO.write(image, "jpg", outStream);
ImageIO.write(image, "gif", outStream);
ImageIO.write(image, "png", outStream);
ImageIO.write(image, "jpeg", outStream);
}

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

public static String get(byte[] imageBT) throws IOException {
		String type = "";
		MemoryCacheImageInputStream mcis = null;
		try {
			mcis = new MemoryCacheImageInputStream(new ByteArrayInputStream(
					imageBT));
			Iterator<ImageReader> it = ImageIO.getImageReaders(mcis);
			while (it.hasNext()) {
				ImageReader reader = (ImageReader) it.next();
				return reader.getFormatName();
			}
		} finally {
			if (mcis != null) {
				try {
					mcis.close();
				} catch (IOException ioe) {
				}
			}
		}
		return type;
	}

 

 

二、python如何实现

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

 

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

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

 

三、总结

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

分享到:
评论

相关推荐

    Java通过python命令执行DataX任务

    在这个场景中,我们讨论的是如何通过Java程序调用Python命令来执行DataX任务,实现从MySQL到ODPS的数据同步。 首先,我们需要理解Java与Python交互的基本原理。Java可以通过`Runtime.exec()`或`ProcessBuilder`类来...

    jython-standalone-2.7.1 burpsuite的python环境配置

    标题"jython-standalone-2.7.1 burpsuite的python环境配置"指的是使用Jython(一个Python的Java实现)的独立版本2.7.1来配置Burp Suite(一个流行的网络安全测试工具)的Python环境。Burp Suite允许用户通过编写...

    资源专区-小白必看-JAVA+PYTHON学习资料大全

    "JAVA+PYTHON学习资料大全.url",虽然只给出一个文件名,但".url"扩展名通常表示这是一个网页链接的快捷方式。可以推测这个URL可能指向一个包含更详细学习资源的在线平台或者一个综合性的学习指南,可能包含各种JAVA...

    taobao-sdk-java-auto_1479188381469-20191021.jar

    钉钉 Java SDK 钉钉官方提供了统一的SDK,使用SDK可以便捷的调用服务端API。注意:此SDK包含原有TOP接口,原有TOP接口可以继续正常调用,没有影响。下面是使用SDK调用API的请求示例: JAVA: DingTalkClient client...

    根据url下载图片

    `img.jar`可能包含了下载图片的Java代码,可能使用了`java.net.URL`类和`java.nio.file`包来读取URL并写入文件系统。 `data`可能是一个文件夹,用来存储下载的图片,而`properties`文件可能是配置文件,包含了如...

    java连接gbase驱动安装包

    1. **下载驱动**:你需要从官方渠道或可靠的资源获取`gbase-connector-java-9.5.0.1-build1-bin.jar`文件,这是驱动程序的二进制包。 2. **添加到项目**:将这个JAR文件添加到你的Java项目的类路径中。如果是Maven...

    爬虫入门-自学笔记,java和python示例

    Java也是实现爬虫功能的一种常用语言。尽管其语法相对繁琐,但Java拥有强大的标准库和框架支持,适合开发大型项目。 #### 五、Java爬虫示例 下面是一个简单的Java爬虫示例,用于抓取页面内容: ```java import ...

    使用wx-java-miniapp-spring-boot-starter开发的微信小程序演示demo.zip

    如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要...

    Python链接oceanbase各个版本oceanbase-client驱动jar包

    Python本身并不直接支持Java的jar包,但是可以通过以下两种方式实现交互: - **Jython**:Jython是一个Python的实现,它运行在Java平台上,可以直接调用Java类和库。使用Jython,你可以直接在Python脚本中导入Java...

    mysql-connector-j-8.0.31.jar

    MySQL Connector/J 8.0.31 是 MySQL 数据库与 Java 应用程序之间的桥梁,它是一个实现了 Java Database Connectivity (JDBC) API 的驱动程序,允许 Java 开发者通过 Java 代码连接并操作 MySQL 数据库。这篇详述将...

    python-3.6.2-docs-pdf-a4

    - **Jython**:基于Java平台的Python实现,能调用Java库。 - **PyPy**:一个快速的Python替代品,使用Just-In-Time编译技术提高执行效率。 9. **Python开发工具**: - **集成开发环境(IDE)**:如PyCharm、...

    Python爬虫实现百度图片自动下载-BaiduImageDownload.zip

    本项目“Python爬虫实现百度图片自动下载”旨在介绍如何利用Python编写爬虫程序,从百度图片搜索引擎中批量下载指定关键词的图片。 首先,我们需要了解Python爬虫的基础知识。Python作为一种简洁易读的编程语言,...

    DINP demo:使用Flask的Python项目-dinp-demo-python-flask.zip

    【描述】"DINP demo:使用Flask的Python项目-dinp-demo-python-flask" 提供的信息有限,但可以推测这是一个完整的Flask应用实例,包括了项目的源代码和可能的配置文件。"dinp-demo-python-flask-master"是这个项目在...

    java实现python session功能代码实例

    1. Java 实现 Python Session 功能代码实例的原理和实现方式 2. OkHttp 库的使用和原理 3. CookieJarManager 类的实现和作用 4. Session 功能的实现和应用 5. Cookies 的管理和有效期 6. Java 中的身份验证和授权...

    python spider python 图片 爬虫-pythonspider2018.zip

    - **urllib**: Python内置的URL操作库,也可以用于下载图片,但功能相对简单。 - **AIOHTTP**: 支持异步的HTTP客户端库,适合并发下载图片。 3. **图片处理库**: - **Pillow**: Python的图像处理库,提供了丰富...

    大学期间做的各样项目:Java-Python-JavaScript-Vert.X-SpringBoot.zip

    大学期间做的各样项目:Java-Python-JavaScript-Vert.X-SpringBoot.zip amazing-e-commerce 这是一个基于 Spring MVC + Vue 的simple前后端分离web项目,电子商务,做到实现商品的展示、购买等功能。 后期会继续更新...

    JAVA实现Python requests模块(JAVA实现Http请求)-附件资源

    JAVA实现Python requests模块(JAVA实现Http请求)-附件资源

    Python实现读取Properties配置文件的方法

    在Python中处理`.properties`文件的这种方法简单而实用,尤其适用于需要跨平台迁移或与Java项目交互的场景。当然,如果你的项目依赖较多的配置文件操作,可能需要考虑使用更高级的库,如`configparser`(Python 3)...

    aspose-barcode-5.8.0-java

    Aspose是一家知名的软件开发公司,专注于提供文件处理工具和API,其产品覆盖多种编程语言,包括Java、.NET、Python等,适用于各种应用场景,如文档转换、邮件处理、表格操作等。 压缩包内的文件名列表揭示了可能...

    Python web接口开发与测试.pdf

    ### Python Web接口开发与测试知识点概述 #### 一、Python Web接口开发与测试概览 - **主题**:本文档主要介绍了使用Python进行Web接口开发和测试的相关知识。 - **目标**:帮助读者掌握Python Web接口开发的基本...

Global site tag (gtag.js) - Google Analytics