flask后端接受图片文件数据
1 代码
@app.route('/predict', methods=['POST'])
def predict():# 获取传送过来的完整原始图像file = request.form.get('file')print('file type', type(file))data_url = str.split(file, ',')[1]print('data_url type:', type(data_url))print('data_url:', data_url)img_data = base64.urlsafe_b64decode(data_url + '=' * (4 - len(data_url) % 4))print('type data 1:', type(img_data))img_data = np.frombuffer(img_data, np.uint8)print('type data 2:', type(img_data))img_arr = cv2.imdecode(img_data, cv2.IMREAD_COLOR)print('type data 3:', type(img_data))cv2.imwrite("./uploadImages/" + str(time()) + "_img.png", img_arr)
2 代码说明
接受文件数据最重要的是对各种文件数据类型的处理,先贴一下上述代码的运行结果:
处理过程:
1)从结果可以看出,flask后端接受的’file’为字符串形式,即对应的是base64编码的图片文件地址url;
2)需要注意的是使用base64编码的图片URL地址,其内容不是单纯的图片数据,还包括一个代表base64编码信息的文件头,如下图中的红色方框中圈出来的部分所示。所以需要从这个URL中提取图片数据的部分,而丢弃这部分没用的文件头,具体做法就是通过定位“,”来将这个URL划分为文件头和文件数据两部分,这里只需要后面一部分就可以了
3)在得到图片纯数据URL之后,我们需要对其进行base64的解码,解码的结果是bytes类型
4)使用np.frombuffer(data, 数据类型)这种方式将bytes类的数据按照给定的数据类型进行解析,这样得到的数据类型是numpy数组类型,这里的numpy数组的shape是一维的!!!;
5)cv2.imdecode的用法是从指定的内存缓存中读取数据,并将数据转化为图片格式,通常用于从网络数据中恢复图像。
备注:个人觉得这里的(5)不一定需要,但是一时也找不到当时参考的那篇博文了。
flask后端接受图片文件数据相关推荐
- python后端将svc文件数据读入数据库具体实现
如何用python将svc文件的数据读入到MySQL数据库里,在此直接上代码了,感兴趣的朋友可以贴代码测试: import pandas as pd import os from sqlalchemy ...
- 后端——获取提交的数据(GET、 POST)、获取上传的文件、常见的网络请求
目录 一.获取提交的数据 1.接收GET请求的数据: 1.ajax-get 2.axios-get 3.浏览器的地址栏-get 4.a标签的href属性-get 5.img-src-get 6.lin ...
- vue xlsx 导入导出_只需三步vue实现excel文件数据提取并存为json数据
前言: 以前将excel数据导入到数据库是通过前端,将excel文件上传到后端,通过后端语言进行相应的加工将excel文件中的数据取出并存入数据库:从而实现数据库的存入流程.但是这也带来了一些问题,首 ...
- ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践
本文转自一位高人的博客:情郎 Blog 写在前面 :从提出需求到完美的解决问题,实现过程是曲折的. 需求:在前(web client)后(Restful Service)端完全解耦的模式框架下,web ...
- 【Android 应用开发】Paint 滤镜原理 之 图像结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 )
文章目录 图形文件准备 ( PNG 文件 ) PNG 文件信息分类 数据块结构 IHDR 数据块 简介 IHDR 数据块 结构 图形文件准备 ( PNG 文件 ) 分析的文件准备 : 1.创建文件 : ...
- vue删除图片同时删除本地文件_删除图片数据时同时删除图片文件夹里面的相应图片文件的方法...
作者:Mr.XQIJIANG 本文版权归[Mr.XQIJIANG]所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. /// /// 删除图 ...
- 前端传来的图片并保存_前端处理后端接口传递过来的图片文件
背景 在之前,从来都是后端返一个图片地址,然后前端直接使用. 那如果后端返了一个图片文件过来,那要怎么做? 参考: vue axios请求图片流文件前端页面显示处理方法 background url ...
- mysql接受表单数据类型_PHP如何接收表单数据数组并插入MySQL数据库?其中表单数据类型包括图片文件类型,要实现图片..._慕课问答...
//下面是我的代码,已经困扰我两个星期了,希望大神帮忙解决. //前端的表单为一个table表格,点击"添加"按钮会自动增加新的一行,然后是把所有行的数据写入到数据库,每行都有一个 ...
- python 如何使用 pandas 在 flask web 网页中分页显示 csv 文件数据
目录 一.实战场景 二.知识点 python 基础语法 python 文件读写 python 分页 pandas 数据处理 flask web 框架 jinja 模版 三.菜鸟实战 初始化 Flask ...
最新文章
- 强势推荐8个功能强大,鲜为人知的实用软件
- iOS开篇——UI之UIStepper (计步器)
- flex----导航
- 通过计算机二级考试的计划,如何轻松通过国家计算机二级考试
- Boost:reference wrapper参考包装的测试程序
- OpenDNS,独特的免费DNS
- 404 错误页面_如何设计404错误页面,以使用户留在您的网站上
- Golang程序性能分析(一)pprof和go-torch
- 前端开发中的调试技巧
- 对付镜像网站非常有效的办法
- Web Components 系列(八)—— 自定义组件的样式设置
- Access数据库引擎
- CANape a2l文件的编辑教程
- Win10重装系统后的lockdir解密失败
- 苹果手机屏幕镜像_苹果手机还能一键投屏?点一下小屏变大屏幕,看剧是真畅快...
- 清华大学最新科研进展汇总(2020-2021年)
- 10.23 每日打卡
- pythonif嵌套语句题目_python中if嵌套的练习题有哪些?
- 新加坡企业是怎么做实名认证的?
- 苏轼不知月亮上是何年何月 | Python计算出来了