首页 > 其他 > 详细

flask中传递和接收图像两种方法

时间:2020-09-08 15:48:47      阅读:293      评论:0      收藏:0      [点我收藏+]

1. 将图像以二进制的形式打开,进行base64编码,服务器端接收后将数据保存在缓存区并利用PIL打开存在缓存区的数据得到所需图像,具体如下:

 1 在客户端:
 2 with open(1.jpg,rb) as f:
 3     base_s=base64.b64encode(f.read()).decode() # 将图片以二进制的形式读入,并编码成base64,最后转换为str
 4     data={image:base_s}
 5     response=requests.post(url,data=data)
 6 
 7 在服务器端的方法方法中:
 8 from  io import BytesIO
 9 from PIL import Image
10 from flask import Flask,request
11 from flask_restful import Api, Resource, reqparse
12 app=Flask(__name__)
13 
14 @app.route(/,methods=[GET,POST])
15 def func():
16     img= request.form.get(image)   #方法一 从客户端获取数据
17 
18     parser = reqparse.RequestParser()  #方法二  从客户端获取数据
19     parser.add_argument(image, type=str, required=True,help=imgString must be Base64 string)
20     args = parser.parse_args()
21     img = args[image]
22 
23     base_s1=base64.b64decode(img.encode())  #将str转换为bytes,并进行base64解码,得到bytes类型
24     buf=BytesIO()   #内存中创建一个buf,用于存储图像文件内容
25     buf.write(base_s1)  #将图像文件内容写入到该buf中,该buf相当于一个临时文件
26     buf.seek(0)  #将文件指针放在文件开头
27     data=Image.open(buf).convert(RGB)   #将buf作为文件名,读取该文件,并转换成RGB
28     print(data)    #Image格式的文件数据
29     data=np.array(data)   #将图像数据转换成array
30     print(data)
31     return ok

 

flask中传递和接收图像两种方法

原文:https://www.cnblogs.com/havelucky/p/13632388.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!