前言

有时候我们需要读取的图片是网络上的图片,应该怎么操作呢?

这里也是介绍两个常用库的做法,即 opencv 和 PIL 。

这里要读取的网络图片,来自上一篇文章:每日一学:如何用matplotlib展示图片:

链接为:https://mmbiz.qpic.cn/mmbiz_png/COhkzD7Mia5mH0pmJ9hdpSBT7x40CVuaPhcWqyiczL37icQs4JTm5px5dbBTwjof5k9ZcGgrtDwzFuiaW4iaQicGmbIA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

PIL 读取网络图片

代码如下所示:

# 基于 PIL import requestsfrom PIL import Imagefrom io import BytesIO%matplotlib inlineimport matplotlib.pyplot as pltimg_url = 'https://mmbiz.qpic.cn/mmbiz_png/COhkzD7Mia5mH0pmJ9hdpSBT7x40CVuaPhcWqyiczL37icQs4JTm5px5dbBTwjof5k9ZcGgrtDwzFuiaW4iaQicGmbIA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1'try:    encoded_img = requests.get(img_url).content    ori_img = Image.open(BytesIO(encoded_img))    plt.imshow(ori_img)except Exception as e:    print(f'download image {img_url} error: {e}')

结果如下所示:

Opencv 读取网络图片

代码如下所示:

# opencvimport numpy as npimport cv2import requests%matplotlib inlineimport matplotlib.pyplot as plttry:    img_url = 'https://mmbiz.qpic.cn/mmbiz_png/COhkzD7Mia5mH0pmJ9hdpSBT7x40CVuaPhcWqyiczL37icQs4JTm5px5dbBTwjof5k9ZcGgrtDwzFuiaW4iaQicGmbIA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1'    img_data = requests.get(img_url).content    img = np.asarray(bytearray(img_data), dtype="uint8")    img = cv2.imdecode(img, -1)    plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))except Exception as e:    print(f'download image {img_url} error: {e}')

结果如下所示:

java 读取网络图片_每日一学:如何读取网络图片相关推荐

  1. 学java还是安卓_零基础学安卓好还是学java好

    零基础学安卓好还是学java好 关于Java的学习很多同学都有这样或者那样的疑问,比如我是自学Java好呢还是参加Java培训好呢?Java好学吗?安卓和java哪个难学等等.今天我们就先简单的来看两 ...

  2. 易语言mysql 读取数据类型_易语言教程-数据库-读取相关数据

    本课用的命令 读() 取记录号 () 取记录数() 到首记录 () 到尾记录 () 打开() 关闭() 跳过() 跳到() 本课实现功能 读,上一条,下一条,读首记录,读尾记录,读所有记录 教程源码: ...

  3. 读取 配置文件_自动化测试中,如何读取配置文件内容?

    构建测试知识体系,欢迎关注 " 自动化中的配置信息,比如域名.数据库信息.kafka信息等,通常是放到配置文件中的.那么如何读取配置文件中的信息呢?" 自动化测试代码中,像请求域名 ...

  4. java开发是否用数字表示是_每日一学之Java开发技巧(一)

    BigDecimal运算 浮点数运算的典型实例是货币运算,在商品金额的计算中,经常会设计小数运算由于计算机中所有数字都是使用二进制进行存储,而二进制无法精确的表示所有的小数,因此常使用BigDecim ...

  5. java 过滤脚本_【快学SpringBoot】过滤XSS脚本攻击(包括json格式)

    XSS攻击是什么 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安 ...

  6. JAVA复合判断_一起来学Java8(四)——复合Lambda

    在一起来学Java8(二)--Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda. Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用La ...

  7. java学习出师_零基础学java来这里 出师如此简单

    当今时代是互联网的时代,互联网时代的到来,使得我们的生活更加便利,同时互联网时代的到来也大大增加了市场对于技术人才的需求,在此时,Java编程语言的许多特性势使得它迅速成长,学习的人也越来越多 jav ...

  8. java acr122 读取数据_使用ACR122U 从NTAG203Chip 读取数据

    1.使用NFC Pro(Android APK)读取的TAG信息: 2.连接ACR 122U之后,从设备管理处可以看出ACR122U采用标准的微软CCID和PC/SC驱动(USB CCID): 3.P ...

  9. java编程赋值运算符_跟我学java编程—简单赋值运算符“=”

    赋值运算符是双目运算符,用在赋值表达式中.赋值运算符将值存储在运算符左边操作数指定的变量中.有两种赋值操作,简单赋值和复合赋值,简单赋值把运算符右边的操作数的值存储在运算符左边操作数指定的变量中:复合 ...

最新文章

  1. iOS多线程中performSelector: 和dispatch_time的不同
  2. 使用ONVIF协议控制海康威视球机
  3. 在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图
  4. Java内存模型解析
  5. 我的MarkDown入门
  6. JavaScript学习(四十四)—in关键字的使用和for in循环遍历对象的属性
  7. C++对象模型:单继承,多继承,虚继承
  8. 快速西门子PLC入门(零基础心得版)
  9. 计算机网络设计校园网实验报告,计算机网络综合设计性实验报告-校园网网络构建方案设计和实现..doc...
  10. 联想Y450电源管理无法调节屏幕亮度的解决办法
  11. python创建字符串数组_用zeep创建一个字符串数组参数?
  12. 位置不可用无法访问介质受写入保护怎么修复?
  13. 华为手机解析出现问题
  14. 手机幻灯片html代码,html5手机幻灯片制作手指滑动触屏手机幻灯片代码
  15. 微信开发遇到的那些坑
  16. Flash制作大雪纷飞效果动画
  17. RibbitMQ入门实战详解
  18. python绘制笛卡尔心形线方程_canvas绘制爱心的几种方法
  19. 计算机原理学习(2)-- 存储器和I/O设备和总线
  20. 2019全国计算机模拟题,2019年全国计算机二级Java考试模拟习题3

热门文章

  1. android 状态栏 背景色_技术一面:说说Android动态换肤实现原理
  2. jsp里面的input的值吗_一个jsp页面中的input框向另一个jsp页面的input框传值
  3. Python3-join()和split()的用法
  4. python单例模式的五种实现方式
  5. python 获取本机IP的三种方式
  6. 对python乱序字符串检查算法研究
  7. python之简单的get和post请求
  8. php流量中转,中转Webshell绕过流量检测防护
  9. linux怎么下载yum包,Linux下yum下载依赖包
  10. centos7重启桌面服务_CENTOS7安装桌面系统