Как отобразить загруженное изображение, обработанное с помощью PIL, без сохранения в файл Django - PullRequest
0 голосов
/ 02 апреля 2020

Я вытаскиваю изображение из базы данных для использования в качестве фона и помещаю загруженное пользователем изображение поверх фона, используя 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}}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...