Служить динамически сгенерированное изображение с Django
Как я могу выполнить динамически генерируемое изображение в Django?
У меня есть html-тег
<html>
...
<img src="images/dynamic_chart.png" />
...
</html>
связанный с этим обработчиком запросов, который создает изображение в памяти
def chart(request):
img = Image.new("RGB", (300,300), "#FFFFFF")
data = [(i,randint(100,200)) for i in range(0,300,10)]
draw = ImageDraw.Draw(img)
draw.polygon(data, fill="#000000")
# now what?
return HttpResponse(output)
Я также планирую изменить запросы на AJAX и добавить какой-то механизм кэширования, но я понимаю, что это не повлияет на эту часть решения.
Ответы
Ответ 1
Я предполагаю, что вы используете PIL (Python Imaging Library). Вам нужно заменить свою последнюю строку (например, если вы хотите использовать изображение PNG):
response = HttpResponse(mimetype="image/png")
img.save(response, "PNG")
return response
Подробнее см. здесь.
Ответ 2
Я относительно новичок в Django. Я не смог найти что-либо в самом Django, но я наткнулся на проект Google Code, который может вам помочь:
django-dynamic-media-serve