Я вытаскиваю изображение из базы данных для использования в качестве фона и помещаю загруженное пользователем изображение поверх фона, используя PIL. Я хотел бы отобразить это изображение на странице html после завершения преобразования без сохранения в файловой системе. Я посмотрел на много похожих вопросов, но здесь я делаю что-то другое. Я пытался создать некоторый код, основанный на других ответах, но не могу отобразить изображение на экране после того, как пользователь отправит свою фотографию. Как я могу заставить это работать? Вот мой код:
from django.core.files.storage import FileSystemStorage
from PIL import Image
from io import BytesIO
import base64
import io
from .models import Samplecards
def imageUpload(request):
if request.method == 'POST':
selection = request.POST['selection']
sample = getImage()
theImage = io.BytesIO(sample.image)
print("DONE")
uploaded_image = request.FILES['img']
foreground = Image.open(uploaded_image).convert("RGBA")
background = Image.open(theImage).convert("RGBA")
background.paste(foreground, (440, 190), foreground)
buffered = BytesIO()
background.save(buffered, format="png")
b64_img = base64.b64encode(buffered.getvalue())
return render(request, 'uploadpage.html', {"image": b64_img})
def getImage():
img = Samplecards.objects.get(image_id=1)
return img
В моем файле html я пытаюсь отобразить изображение так:
<img src="data:image/png;base64,{{image}}">