从url下载图片--java与python实现方式比较
一、java的实现方式
- 首先读取图片
- //方式一:直接根据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如何实现
- 一行代码搞定图片读取和保存
- 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的实现真的是太简洁明了了
从url下载图片--java与python实现方式比较的更多相关文章
- JAVA 通过url下载图片保存到本地
//java 通过url下载图片保存到本地 public static void download(String urlString, int i) throws Exception { // 构造U ...
- C++根据图片url下载图片
需要使用到URLDownloadToFile()函数,该函数在头文件<urlmon.h>中声明. URLDownloadToFile()函数的定义如下: HRESULT URLDownlo ...
- python实现通过URL下载图片到本地服务器
import os import urllib.request image_url = 'http://img.jingtuitui.com/759fa20190115144450401.jpg' f ...
- QT通过url下载图片到本地
/* strUrl:下载图片时需要的url strFilePath:下载图片的位置(/home/XXX/YYY.png) */ void ThorPromote::downloadFileFromUr ...
- 根据URL地址获取对应的HTML,根据对应的URL下载图片
核心代码(获取HTML): #region 根据URL地址获取信息GET public static String GetResult(string url) { return GetResult(u ...
- js 根据url 下载图片
downloadIamge(imgsrc, name) {//下载图片地址和图片名 let image = new Image(); // 解决跨域 Canvas 污染问题 image.setAttr ...
- js 根据url 下载图片 前端js 实现文件下载
1.H5 download属性 function downFile(content, filename) { // 创建隐藏的可下载链接 var eleLink = document.createEl ...
- 根据URL下载图片到本地
/// <summary> /// 下载图片 /// </summary> /// <param name="picUrl">图片Http地址& ...
- Java依据Url下载图片
package com.ronniewang.downloadpicture; import java.io.DataInputStream; import java.io.File; import ...
随机推荐
- Video Cards
Video Cards time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...
- OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章)
OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章) 4.5精度和精度修饰符 4.5.1范围和精度 用于存储和展示浮点数.整数变量的范围和精度依赖于数值的源(varying,unifo ...
- @property(nonatomic) UIViewAutoresizing autoresizingMask;
在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高. 1 2 3 4 5 6 7 8 9 enum ...
- 【转】ThinkPHP 页面跳转
ThinkPHP 提供了success 与error 方法用于带提示信息的页面跳转,如添加数据后显示提示信息并跳转等.success 方法用于操作成功后的提示,error 用于操作失败后的提示,二者使 ...
- HDU-1548--A strange lift--(BFS,剪枝)
A strange lift Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- Hbase shell 中能否通过filter实现的高级查询
import org.apache.hadoop.hbase.filter.CompareFilter import org.apache.hadoop.hbase.filter.SingleColu ...
- 转:通过ant来批量执行jmeter脚本,并生成报告(附: 生成报告时报“Content is not allowed in prolog”这个错误的解决方案)
最近在使用jmeter写脚本来进行测试,最终写了很多份脚本,然后,就在想,这么多脚本,我不可能一个一个的手动去点啊,有没有什么办法来批量运行Jmeter脚本呢? 这个时候,自然而然地想到了万能的ant ...
- Image File Execution Options(转)
今天公司的一台计算机无法正常工作送来维修,经简单判断是感染了很多病毒,即使在安全模式下也无法清除:于是将硬盘摘下挂到另外一台机器上,用卡巴斯基对病毒进行了查杀,再次启动计算机后发现很多系统维护程序以及 ...
- Android Audio Focus的应用(requestAudioFocus)
网址:http://blog.csdn.net/dadoneo/article/details/8252933 FROM: http://www.linuxidc.com/Linux/2012-04/ ...
- FAT32系统中长文件名的存储(转)
FAT32的一个重要的特点是完全支持长文件名.长文件名依然是记录在目录项中的. 为了低版本的OS或程序能正确读取长文件名文件,系统自动为所有长文件名文件创建了一个对应的短文件名,使对应数据既可以用长文 ...