2 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
我找到了一種方法來(lái)生成圖像,而無(wú)需將其保存在文件夾中。您基本上將圖像保存為字節(jié)并轉(zhuǎn)換為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>

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可能希望使用StreamingHttpResponse,它允許您發(fā)送FileField(或ImageField,就此而言)作為http響應(yīng)。
添加回答
舉報(bào)