从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 ...
随机推荐
- 关于spring的注解方式注入默认值(转) -- 首字母小写
1.是首字母小写 比如 UserAction对应的id是userAction 可以通过ApplicationContext 对象的act.getBean("userAction") ...
- How to Iterate Over a Map in Java?(如何遍历Map)
1.Iterate through the "entrySet" like so: public static void printMap(Map mp) { Iterator i ...
- pkgmgmt: Comparison between different Linux Systems..
found this page.. already done by precedents.. installation: aptitude install apt-get install yum in ...
- 444A/CF
题目链接[http://codeforces.com/problemset/problem/444/A] 题意:给出一个无向图,找出一个联通子图,定义密度#=v(顶点值的和)/e(边值的和). 条件: ...
- select初始化默认选项
在写select时由于 在数据库中的得到的值都是字典型的值0,1,2所以在初始化的时候要
- Java-枚举介绍
需求:今天遇到一个问题,就是返回某些固定的int值,要用到枚举. 下面开始介绍: 无参构造方法的枚举 enum Color{ YELLOW,BLUE,RED } 解析:首先Color本身是一个枚举,里 ...
- ajax请求dotnet webservice格式
$.ajax({ type: "post", url: "your_webservice.asmx/you_method", contentType: &quo ...
- GB2312、Unicode编码等
抛出问题: 我在CPP文件中,打算输出一行阿拉伯字符:
- jq中的ajax
jq对ajax进行了封装,在jq中$.ajax()方法是最底层的方法,第二层是load() , get() , post()方法,第三层是$.getScript()和$.getJSON().基本第二种 ...
- FileReader和BufferedReader的区别
1.FileReader不能一行行读 FileReader fr = null; try { fr = new FileReader(new File(path)); StringBuffer str ...