繁体   English   中英

使用 Python 3 从 URL 中提取图像

[英]Extract Image from a URL using Python 3

我正在使用 Flask 处理 REST API,其中我必须从用户在 Url 参数中提供的 URL 中检索图像。

这是我尝试过的:

import urllib
from io import BytesIO
from PIL import Image
from flask import Flask

app = Flask(__name__)


@app.route('/<path:image_url>')
def build_mask_rmv_bg(image_url):
    f = urllib.request.urlopen(image_url)
    jpeg_str = f.read()
    original_im = Image.open(BytesIO(jpeg_str))
    return original_im


if __name__ == '__main__':
    app.run()

而且,这是我的要求:

http://127.0.0.1:5000/http://raw.githubusercontent.com/tensorflow/models/master/research/deeplab/g3doc/img/image2.jpg

我在 URL Parameter.But 中尝试了 HTTP 和 HTTTPS 路径,但返回以下错误:

urllib.error.URLError: <urlopen error [SSL:CERTIFICATE_VERIFY_FAILED] certificate
verify failed (_ssl.c:749)>
127.0.0.1 - - [01/Sep/2018 09:37:51] "GET /http://raw.githubusercontent.com/tensorflow/models/master/research/deeplab/g3doc/img/image2.jpg HTTP/1.1" 500 -

更新:

我已经使用wget更新了它,现在它没有返回任何错误,但文件仍然没有下载图像。

这是更新后的代码:

from flask import Flask
import wget
app = Flask(__name__)


@app.route('/<path:image_url>')
def build_mask_rmv_bg(image_url):
    url = str(image_url)
    # download the file contents in binary format
    print(url)
    wget.download(url, "img/image1.jpg")
    return 'something happened'


if __name__ == '__main__':
    app.run()

这里有什么问题?

请帮帮我!

提前致谢!

您可以使用 Python 请求模块从 URL 获取数据,然后像这样以二进制格式保存在文件中

f = open(filename, "wb")
r = requests.get(url)
f.write(r.content)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM