Я пытаюсь создать API-интерфейс django, который принимает изображение из метода post. После этого я изменил его на оттенки серого, а затем попытался отправить это изображение в виде HttprResponse после того, как закодировал его в base64. (На самом деле, я не знаю, как отправить строку в кодировке base64 в качестве ответа. Я новичок в python). Вот мой код:
# import the necessary packages
from django.views.decorators.csrf import csrf_exempt
from django.http import JsonResponse, HttpResponse
import numpy as np
import urllib.request
import json
import cv2
import os
import base64
@csrf_exempt
def combine(request):
# check to see if this is a post request
if request.method == "POST":
# check to see if an image was uploaded
if request.FILES.get("image1", None) is not None:
# grab the uploaded image
image1 = _grab_image1(stream=request.FILES["image1"])
# image2 = _grab_image2(stream=request.FILES["image2"])
gray = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)
final = base64.b64encode(gray)
# return a response
return HttpResponse(final)
def _grab_image1(stream=None):
if stream is not None:
data = stream.read()
image1 = np.asarray(bytearray(data), dtype="uint8")
image1 = cv2.imdecode(image1, cv2.IMREAD_COLOR)
# return the image1
return image1
Я использую почтальон для проверки.

И от HttpResponse я получаю много строк, как вы можете видеть на изображении выше. Я скопировал эти строки и попытался декодировать их онлайн, чтобы получить окончательное изображение. На что я не получаю изображения:

Итак, как получить изображение (закодированное в base64) в ответ django api.