从Django视图返回PNG图像已损坏

时间:2018-09-10 13:36:26

标签: python django django-views

我正在处理一个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的图像,但该图像已损坏,无法打开。

这有什么问题吗?

谢谢!

1 个答案:

答案 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