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 ...
最新文章
- GridView中实现CheckBox的全选
- python进程间通信的秘密
- 系统升级页面html,页面访问界面升级
- ASP.NET MVC3中的ViewBag动态性
- 动态绑定 datagridview
- mysql 手动配置服务器_Win7系统下手动配置Apache+PHP+MySQL环境WEB服务器 -电脑资料...
- 1.视频压缩编码综述
- linux 蓝牙攻击,研究人员担心BleedingTooth蓝牙漏洞给Linux系统带来风险
- iis php日志查看工具,教你如何查看IIS日志
- html文本框%3cdiv%3e,index.html
- mysql not regexp_mysql 正则表达式 regexp rlike not rlike
- (转载)Tuxedo中间件简介
- 固态硬盘安装window系统的一些注意事项
- Arcgis api for JavaScript 4.12解读-----symbol
- MAC 网桥-交换机
- springboot 自定义拦截器 防止恶意请求
- 使用Python爬取网页图片
- 时间管理 |《小强升职记》学习笔记 | Part1
- 转Draren总结的ollydbg v1.09d 中文版使用说明
- 二层交换基础、stp、acl、nat、wan
热门文章
- kettle工具坐mysql数据迁移_Kettle数据迁移的安装及使用
- 转子豪兄 树莓派上安装OpenCV
- java技术及ssh框架和jsp技术的介绍 外文文献及翻译_java技术及ssh框架和jsp技术的介绍 外文文献及翻译.doc...
- 五子棋java百度文库_JAVA课程设计 五子棋(内附完整代码).doc
- 一个与众不同的苹果--苹果产品制胜之道
- python实现mongodb数据导入到mysql
- 计算机专业优秀毕业生,计算机专业优秀毕业生求职信
- [分享] 揭开美国顶尖生物医学实验室成功的法宝--转
- 开源DirectShow分析器和解码器: LAV Filter
- hdu2075 A|B?(C语言)