为了账号安全,请及时绑定邮箱和手机立即绑定

如何将生成的 PIL 映像从 Django REST 框架后端获取到前端?

如何将生成的 PIL 映像从 Django REST 框架后端获取到前端?

肥皂起泡泡 2022-08-02 18:20:29
我计划制作一个Web应用程序,我可以在其中发出POST请求,以在后端使用PIL生成图像,并通过GET通过REST框架将其链接到前端,我可以在其中下载它。我不想将生成的图像保存在数据库中。只想生成一次仅用于下载。关于我如何实现它的任何想法?
查看完整描述

2 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

我找到了一种方法来生成图像,而无需将其保存在文件夹中。您基本上将图像保存为字节并转换为base64。


views.py


import io

import base64

from PIL import Image

from django.shortcuts import render

from django.utils.safestring import mark_safe


def home(request):

  im_io = io.BytesIO()

  im = Image.new('RGBA', (300,300), (255, 214, 107))

  im_bg.text((10,0), test, fill='black')

  im.save(im_io, 'png', quality=70)

  im_io.seek(0)

  im_io_png = base64.b64encode(im_io.getvalue())

  context = im_io_png.decode('UTF-8')

  img_tag = mark_safe(f"<img src='data:image/png;base64, {context}'/>")

  return render(request, 'home.html', {'img_tag': img_tag })

家.html


<body>

  <h1>The Poster Generator </h1>

  <div>{{img_tag}}</div> <!-- Image will display here -->

</body>


查看完整回答
反对 回复 2022-08-02
?
月关宝盒

TA贡献1772条经验 获得超5个赞

您可能希望使用StreamingHttpResponse,它允许您发送FileField(或ImageField,就此而言)作为http响应。


查看完整回答
反对 回复 2022-08-02
  • 2 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信