python,PIL Image读取网络图片的问题
如题,我读取一个本地图片没有问题,但希望读取一个网络上的图片,这样写是不行的。百度搜了一转,既然也没有找到什么方法。
请各位大佬指教,谢谢。
from PIL import Image
print('开始')
# img = Image.open("D:\\Files\\python\\img_to_str\\test2.jpg")
img = Image.open('https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png')
# 剪裁出右下角
region = img.crop((585, 700, 800, 800))
print('完成') from PIL import Image
import requests
print('开始')
# img = Image.open("D:\\Files\\python\\img_to_str\\test2.jpg")
response = requests.get('https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png')
with open('a.png', 'wb') as f:
f.write(response.content)
f.close()
img = Image.open('a.png')
# 剪裁出右下角
region = img.crop((585, 700, 800, 800))
print('完成')
你把网络上的图片保存到本地再打开就行了, import requests
from PIL import Image
from io import BytesIO
yzmdata = requests.get(图片url)
tempIm = BytesIO(yzmdata.content)
im = Image.open(tempIm)
为啥你百度搜不到
https://www.baidu.com/s?wd=PIL+Image%E8%AF%BB%E5%8F%96%E7%BD%91%E7%BB%9C%E5%9B%BE%E7%89%87&ie=UTF-8
我随便一搜就有{:301_971:} 楼主试试这个代码image的open功能貌似不能直接打开网页
import requests
from PIL import Image
from io import BytesIO
response = requests.get('https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png')
response = response.content
BytesIOObj = BytesIO()
BytesIOObj.write(response)
img = Image.open(BytesIOObj)
img.show() 直接下载下来读取呗from PIL import Image
import requests
response = requests.get('https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png').content
with open('tupian.png','wb',encoding='utf-8') as f:
f.write(response)
print('开始')
img = Image.open('tupian.png')
# 剪裁出右下角
region = img.crop((585, 700, 800, 800))
print('完成') 啥你百度搜不到
https://www.baidu.com/s?wd=PIL+I ... %89%87&ie=UTF-8
我随便一搜就有 import requests
from io import BytesIO
from PIL import Image
# Image.open的第一个参数必须是一个图片文件
# D:\\Files\\python\\img_to_str\\test2.jpg 表示的是一个本地图片文件
# img = Image.open("D:\\Files\\python\\img_to_str\\test2.jpg") 这样写没错
# https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png 这只是个URL,表示的是你请求的图片的URL地址,不代表这张图片,而是表示怎么找到这个图片
# 意思就是就像你身份证上的地址,可以通过地址找到你这个人;但是这个身份地址可不代表你这个客观存在的实体
# 必须通过这个url拿到到这个图片文件才行
#可以这样写
img = Image.open(BytesIO(requests.get("https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png").content))
# 剪裁出右下角
region = img.crop((585, 700, 800, 800))
# 保存裁剪出的内容
region.save('croped_image.png') 当然不能这么写,你得先获取网络图片的二进制数据再将其保存到本地 from PIL import Image
import requests
from io import BytesIO
response = requests.get(url)
img = Image.open(BytesIO(response.content))
python3
页:
[1]
2