本站消息

站长简介/公众号


站长简介:高级软件工程师,曾在阿里云,每日优鲜从事全栈开发工作,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-12(21)

2021-01(51)

python 使用flask开发API ,接收/返回 图片数据,简单案例

发布于2019-08-07 14:27     阅读(2425)     评论(0)     点赞(0)     收藏(3)



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/t8116189520/article/details/90904452

环境:python3

库:flask

 

其实从本质上来说,无论是图片还是文字或者字符,都是数据,即最原始的一串0和1组成的二进制数据,API接收或者返回图片,本质上也就是接收或返回一段数据流。

向服务器发送图片,大致步骤就是先将以二进制的方式打开,再post到服务器。

从服务器接收图片,我这边的做法是服务器端将图片转化成base64字节流形式返回,客户端收到这串字节数据,然后通过base64将字节转化为图片。

服务器端代码:

import base64
from flask import request
from flask import Flask
import os

app=Flask(__name__)

# 定义路由
@app.route("/photo", methods=['POST'])
def get_frame():
    # 接收图片
    upload_file = request.files['file']
    # 获取图片名
    file_name = upload_file.filename
    # 文件保存目录(桌面)
    file_path=r'C:/Users/Administrator/Desktop/'
    if upload_file:
        # 地址拼接
        file_paths = os.path.join(file_path, file_name)
        # 保存接收的图片到桌面
        upload_file.save(file_paths)
        # 随便打开一张其他图片作为结果返回,
        with open(r'C:/Users/Administrator/Desktop/1001.jpg', 'rb') as f:
            res = base64.b64encode(f.read())
            return res



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

 

 

客户端代码:

import requests
import base64

# API地址
url = "http://127.0.0.1:5000/photo"
# 图片地址
file_path='C:/Users/Administrator/Desktop/111.jpg'
# 图片名
file_name=file_path.split('/')[-1]
# 二进制打开图片
file=open(file_path,'rb')
# 拼接参数
files = {'file':(file_name,file,'image/jpg')}
# 发送post请求到服务器端
r = requests.post(url,files = files)
# 获取服务器返回的图片,字节流返回
result = r.content
# 字节转换成图片
img = base64.b64decode(result)
file = open('test.jpg','wb')
file.write(img)
file.close()

 







所属网站分类: 技术文章 > 博客

作者:343489399

链接:https://www.pythonheidong.com/blog/article/11333/da3f9b0c1462d03e9960/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)