吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1565|回复: 11
收起左侧

[求助] python,PIL Image读取网络图片的问题

[复制链接]
cqwcns 发表于 2022-8-2 17:00
如题,我读取一个本地图片没有问题,但希望读取一个网络上的图片,这样写是不行的。
百度搜了一转,既然也没有找到什么方法。
请各位大佬指教,谢谢。

[Python] 纯文本查看 复制代码
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('完成')

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wty3025 发表于 2022-8-2 17:13
[Python] 纯文本查看 复制代码
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('完成')


你把网络上的图片保存到本地再打开就行了,

免费评分

参与人数 1热心值 +1 收起 理由
cqwcns + 1 谢谢@Thanks!

查看全部评分

平淡最真 发表于 2022-8-2 17:14
import requests
from PIL import Image
from io import BytesIO
yzmdata = requests.get(图片url)
tempIm = BytesIO(yzmdata.content)
im = Image.open(tempIm)

免费评分

参与人数 1热心值 +1 收起 理由
cqwcns + 1 谢谢@Thanks!

查看全部评分

平淡最真 发表于 2022-8-2 17:15
11plz 发表于 2022-8-2 17:19
楼主试试这个代码  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()
nanhai31 发表于 2022-8-2 17:20
直接下载下来读取呗
[Python] 纯文本查看 复制代码
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('完成')
iawyxkdn8 发表于 2022-8-2 17:34
啥你百度搜不到
https://www.baidu.com/s?wd=PIL+I ... %89%87&ie=UTF-8
我随便一搜就有
grekevin 发表于 2022-8-2 17:38
[Python] 纯文本查看 复制代码
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") 这样写没错

# [img]https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png[/img] 这只是个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')
外酥内嫩 发表于 2022-8-2 18:41
当然不能这么写,你得先获取网络图片的二进制数据再将其保存到本地
namedlxd 发表于 2022-8-2 18:59
from PIL import Image
import requests
from io import BytesIO

response = requests.get(url)
img = Image.open(BytesIO(response.content))


python3
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 09:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表