Image.new を使用して、django ビューで画像オブジェクトを作成します。それを Web ページに表示したいと思います。
x = Image.new('RGB',(400,400)) return HttpResponse(x.show(), mimetype="image/png")
動作しません。
画像オブジェクトを画像生バイナリに変換するにはどうすればよいですか?
Image.new を使用して、django ビューで画像オブジェクトを作成します。それを Web ページに表示したいと思います。
x = Image.new('RGB',(400,400)) return HttpResponse(x.show(), mimetype="image/png")
動作しません。
画像オブジェクトを画像生バイナリに変換するにはどうすればよいですか?
base64 イメージを に埋め込むことができる<img src=
ので、PIL イメージを base64 に変換してみることができます。
from PIL import Image
import StringIO
x = Image.new('RGB',(400,400))
output = StringIO.StringIO()
x.save(output, "PNG")
contents = output.getvalue().encode("base64")
output.close()
return HttpResponse('<img src="data:image/png;base64,' + contents + ' />')
次の 2 つのオプションがあります。
最初のオプションが優先されます。コードは次のようになります。
x = Image.new() # The same stuff than yours
x.save(MEDIA_ROOT + "/generated_images/the_name_of_the_image.jpg", "JPEG")
return HttpResponse(
"<img src="%s/%s />" % (MEDIA_URL, "/generated_images/the_name_of_the_image.jpg")
)
必要に応じて、それを base64 で読み取ることができます (参照: base64 を使用した画像ファイルのエンコード)。それを表示します。
base64_img = get_base_64()
return HttpResponse('<img alt="Embedded Image" src="data:image/jpeg;base64," % base64_img />')