一、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. linux常用命令-3文件与目录相关命令

    cd .. #返回上一级目录 cd ../.. #返回上两级目录 cd - #返回上次所在目录 cp file1 file2 #将file1复制为file2 cp -a dir1 dir2 #复制一个 ...

  2. 基于 CI 1.7.x 的 项目使用新版本CI的文件缓存类库

    维护的项目使用的是 codeigniter 1.7.x版本,但是我想使用文件缓存,但是旧版本是没有缓存类库的,并且autoload.php没有drivers这个配置项. 我复制的是 Codeignit ...

  3. 26.String类(1)

    1. 下面是一个使用equals的例子: 我查看了一下源代码,string类中equals方法的源代码如下: public boolean equals(Object anObject) { if ( ...

  4. 判断有向无环图(DAG)

    1.拓扑排序 bfs 所有入度为0的先入选. 2.tarjan 1个点1个集合 3.暴力 一个点不能重新到达自己

  5. Go Mixed 变量声明

    Go Mixed 变量声明 package main import "fmt" func main() { var a, b, c = 3, 4, "foo" ...

  6. thinkphp自动创建目录

    自动创建目录 在第一次访问应用入口文件的时候,会显示如图所示的默认的欢迎页面,并自动生成了一个默认的应用模块Home. 接下来再看原来空的Application目录下面,已经自动生成了公共模块Comm ...

  7. ES6 箭头函数this指向

    箭头函数有几个使用注意点. (1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象. (2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误. (3)不可以使 ...

  8. iOS之NSArray数组排序

    一.数组遍历 除了常用的for和for-in遍历外,系统还提供了三种枚举遍历,对于大量的数据遍历可以使用下列三个方法. - (void)enumerateObjectsUsingBlock:(void ...

  9. 导出lab动态命名文件夹文件名

    set tmp=%date:~0,10%echo %tmp:/=-%mkdir %tmp:/=-%cd %tmp:/=-%exp meet/meet@orcl_11 file=%tmp:/=-%.dm ...

  10. Day 9 :初识函数

    Python函数:1.函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 2.函数能提高应用的模块性,和代码的重复利用率. Python提供了许多内建函数,比如print().但你也可 ...