将图像写入Django HttpResponse()的最佳方式 [英] Best way to write an image to a Django HttpResponse()
本文介绍了将图像写入Django HttpResponse()的最佳方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要安全地向验证的用户提供图像(即它们不能作为静态文件)。我目前在我的Django项目中有以下Python视图,但似乎效率低下。任何想法更好的方法?
def secureImage(request,imagePath):
pre>
response = HttpResponse(mimetype =图像/ png)
img = Image.open(imagePath)
img.save(response,'png')
返回响应
(图片是从PIL导入的)
解决方案需要重新编码(即在图像上应用水印同时保持原稿不变),但是对于您可以使用的最简单的情况:
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $
$除了IOError:
red = Image.new('RGBA',(1,1),(255,0,0,0))
response = HttpResponse(content_type =image / jpeg)
red.save(response,JPEG)
return response
I need to serve images securely to validated users only (i.e. they can't be served as static files). I currently have the following Python view in my Django project, but it seems inefficient. Any ideas for a better way?
def secureImage(request,imagePath): response = HttpResponse(mimetype="image/png") img = Image.open(imagePath) img.save(response,'png') return response
(Image is imported from PIL.)
解决方案Well, re-encoding is needed sometimes (i.e. applying an watermark over an image while keeping the original untouched), but for the most simple of cases you can use:
try: with open(valid_image, "rb") as f: return HttpResponse(f.read(), content_type="image/jpeg") except IOError: red = Image.new('RGBA', (1, 1), (255,0,0,0)) response = HttpResponse(content_type="image/jpeg") red.save(response, "JPEG") return response
这篇关于将图像写入Django HttpResponse()的最佳方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文