2009-07-02 14 views
25

Djangoで動的に生成されたイメージをどのように提供しますか?Djangoで動的に生成されたイメージを提供する

私はまた、AJAXに要求を変更する予定、といくつかの追加の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) 

を作成し、この要求ハンドラにリンクアップ

<html> 
... 
    <img src="images/dynamic_chart.png" /> 
... 
</html> 

を持っていますキャッシュメカニズムのようなものですが、私の理解は、この部分のソリューションには影響しません。

答えて

27

私はあなたがPIL(Pythonのを使用していると仮定しますイメージングライブラリ)。

response = HttpResponse(mimetype="image/png") 
img.save(response, "PNG") 
return response 

詳細についてはhereを参照してください:あなたは(あなたがPNGの画像を提供したい場合など)を使用して、最後の行を交換する必要があります。

+1

私はこの例ではPILを使用していますが、おそらくmatplotlibのような他のライブラリを使うつもりです。しかし、あまりにも動作する必要があります。 – pufferfish

+1

Django 1.10 +を使用している場合は、MIMEタイプの代わりにcontent_typeを使用してください。 – codingrhythm

3

私はDjango自身に比較的新しいです。私はジャンゴ自体に何かを見つけることができませんでしたが、私はあなたにいくつかの助けになるかもしれGoogle Codeの上のプロジェクトにつまずいています

django-dynamic-media-serve

+0

良いリンクは、私がキャッシングステージに入ったときに役立つかもしれません – pufferfish

関連する問題