我使用Image.new在django視圖中創建圖像對象, 我想在網頁中顯示它。如何使用PIL在Django網頁輸出圖像
X = Image.new( 'RGB',(400400)) 返回的HttpResponse(x.show(),MIME類型= 「圖像/ PNG」)
不起作用。
如何將圖像對象轉換爲圖像原始二進制文件?
我使用Image.new在django視圖中創建圖像對象, 我想在網頁中顯示它。如何使用PIL在Django網頁輸出圖像
X = Image.new( 'RGB',(400400)) 返回的HttpResponse(x.show(),MIME類型= 「圖像/ PNG」)
不起作用。
如何將圖像對象轉換爲圖像原始二進制文件?
你有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(參見:Encoding an image file with base64) 並顯示:
base64_img = get_base_64()
return HttpResponse('<img alt="Embedded Image" src="data:image/jpeg;base64," % base64_img />')
您可以嵌入的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 + ' />')