一、python代码

这里有个坑,之前没有将bytes图片数据转成base64就返回到前端了,但在前端处理的时候,怎么都显示不出图片来,虽然数据拿到了,但bytes被传到前后变str了,所以怎么搞都没搞出来,后来发现转成base64后,前端能很方便的就将图片显示出来了,都不需要转换类型

from io import BytesIO
import base64
from PIL import Image, ImageFont, ImageDraw
from flask import request def PhotoAddNumber():
if not request.json:
return
number = request.json.get("number")
if not number:
print("数据不能为空!") img_file = Image.open(r"图片地址")
font_1 = ImageFont.truetype(r"字体地址", 36)#36为字体大小
#获取图片对象
add_number = ImageDraw.Draw(img_file)
# 添加数字,text里的参数是图片的x,y轴,fill是字体颜色
add_number.text((355, 20), number, font=font_1, fill="#262728") #将图片保存到内存中
f = BytesIO()
img_file.save(f, 'jpeg')
#从内存中取出bytes类型的图片
data = f.getvalue()
#将bytes转成base64
data = base64.b64encode(data).decode()
return data

二、前端代码

# this.edit携带的数据
this.$http.post('请求后端的地址', this.edit
).then(res => {
#创建一个a标签,并将图片的base64直接赋给a标签的href
var a = document.createElement("a")
#base64图片显示的固定格式,这里我是直接下载的,没有在html中显示
a.href = "data:image/jpg;base64," + res.data
let name = prompt("输入图片名")
a.download = name + ".jpeg"
a.click();
}
).catch(e => {
alert("提交失败,数据有误!")
console.log(e)
})

python使用PIL处理图片后返回给前端的坑的更多相关文章

  1. python 序列排序 排序后返回相应的索引

    https://blog.csdn.net/longwei92/article/details/83098289 https://blog.csdn.net/u013731339/article/de ...

  2. django学习-16.返回给前端页面数据为json数据类型的3种方案

    目录结构 1.前言 2.JsonResponse类的源码简单分析 2.1.JsonResponse类的源码如下所示 2.2.JsonResponse类的构造函数里的每个入参的大概含义和作用 3.[方案 ...

  3. Python:PIL(三)——Image

    学习自:PIL官方文档--Image (2条消息) Python图像处理PIL各模块详细介绍_章子雎的博客-CSDN博客 一.Image模块 1.open 用法 open(fp,mode='r',fo ...

  4. 关于python中PIL的安装

    python 的PIL安装是一件很蛋痛的事, 如果你要在python 中使用图型程序那怕只是将个图片从二进制流中存盘(例如使用Scrapy 爬网存图),那么都会使用到 PIL 这库,而这个库是出名的难 ...

  5. js递归遍历多维数组并在修改数组的key后返回新的多维数组

    我司最近正在用VUE做一个基于用户权限显示不同左侧菜单的后台管理系统,接口会根据用户的权限不同返回不同的菜单名称.URL等,前端要将这些菜单名称及URL动态添加到系统的左侧,这里就用到了vue-rou ...

  6. Flask--第三个例子,写一个接口,该接口返回html前端页面,模板的使用

     将接口数据返回至html前端页面有两种方法 方法一: 1 @app.route('/index',methods=['get']) 2 def open_index(): 3 page=open(' ...

  7. IE9中ajax请求成功后返回值却是undefined

    ie9中ajax请求一般处理程序成功后返回值始终是undefined,在网上找过很多资料,大致意思都是说前后端编码不一致造成的,但是按照资料上的方案去修改却发现根本不能解决我的问题,试过好多种方案都不 ...

  8. python中os.system()的返回值

    [python中os.system()的返回值] 如果第三方程序返回的是布尔型返回值,os.system会将true转为1,false转为0进行返回. 问题: /bin/xxx.py是一个返回码为1的 ...

  9. python笔记22-literal_eval函数处理返回json中的单双引号

    前言 在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 有时候开发返回的数据比较坑,不按常 ...

随机推荐

  1. 新学MyBatis

    今天学习了Mybatis入门,将知识归纳一下: 创建一个java项目之后,想使用myBatis需要完成一下几个步骤: 1.先导jar包 2.写model文件 () 3.写全局配置文件 SqlMapCo ...

  2. tomcat多实例及负载均衡

    [root@localhost ~]# tar fx apache-tomcat-8.5.40.tar.gz [root@localhost ~]# tar fx jdk-8u191-linux-x6 ...

  3. margin与padding

    1.不加内边距的div: <div style="width:150px; height:150px; ">    <div style="width: ...

  4. vue之事件处理

    一.事件处理方法 1.格式 完整格式:v-on:事件名="函数名" 或 v-on:事件名="函数名(参数……)"  缩写格式:@事件名="函数名&qu ...

  5. 30 System类

    System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包.由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变量 ...

  6. NX二次开发-UFUN获取当前导出CGM选项设置UF_CGM_ask_session_export_options

    文章转载自唐康林NX二次开发论坛,原文出处: http://www.nxopen.cn/thread-126-1-1.html 刚才有同学问到这个问题,如果是用NXOpen来做,直接录制一下就可以了: ...

  7. flutter 按钮单选封装

    数字是自己先写死的 List list =[ { "title": "影视特效", , }, { "title": "室内设计&q ...

  8. Spring-Security (补充)

    一.配置静态资源过滤 直接在xml中配置即可 <!-- 配置静态资源过滤 --> <security:http security="none" pattern=& ...

  9. centos7.4安装高可用(haproxy+keepalived实现)kubernetes1.6.0集群(开启TLS认证)

    目录 目录 前言 集群详情 环境说明 安装前准备 提醒 一.创建TLS证书和秘钥 安装CFSSL 创建 CA (Certificate Authority) 创建 CA 配置文件 创建 CA 证书签名 ...

  10. 基于Netty的RPC架构学习笔记(四):netty线程模型源码分析(一)

    文章目录 如何提高NIO的工作效率 举个