我正在处理一个Django(2)项目,当我以zip存档的形式返回该图像时,我需要以HttpResponse的形式返回一个PNG图像,它可以正确返回该图像,但是当我返回PNG图像时,直接损坏了图像。
这是我的代码:
图像的书写方式:
img_resized = cv2.resize(seg_image, dsize)
cv2.imwrite(os.path.join(settings.BASE_DIR, 'img/MaskedImage.png'), img_resized)
它如何返回图像:
response = HttpResponse(os.path.join(settings.BASE_DIR, 'img/MaskedImage.png'), content_type='image/png')
response['Content-Disposition'] = 'attachment; filename=MaskedImage.png'
return response
它返回名称为MaskedImage.pn
的图像,但该图像已损坏,无法打开。
这有什么问题吗?
谢谢!
答案 0 :(得分:2)
您将需要读取图像数据。您目前正在返回仅包含图像路径的响应。
with open(os.path.join(settings.BASE_DIR, 'img/MaskedImage.png'), 'rb') as fp:
response = HttpResponse(fp.read(), content_type='image/png')
response['Content-Disposition'] = 'attachment; filename=MaskedImage.png'
return response