Câu hỏi này đã được hỏi theo cách tương tự here nhưng câu trả lời là cách trên đầu của tôi (tôi siêu mới với python và phát triển web) vì vậy tôi hy vọng có một cách đơn giản hơn hoặc có thể giải thích khác đi.Tự động phục vụ một hình ảnh matplotlib lên web bằng cách sử dụng python
Tôi đang cố gắng tạo một hình ảnh bằng cách sử dụng matplotlib và phân phối nó mà không cần phải ghi tệp vào máy chủ trước. Mã của tôi có lẽ là loại ngớ ngẩn, nhưng nó đi như thế này:
import cgi
import matplotlib.pyplot as pyplot
import cStringIO #I think I will need this but not sure how to use
...a bunch of matplotlib stuff happens....
pyplot.savefig('test.png')
print "Content-type: text/html\n"
print """<html><body>
...a bunch of text and html here...
<img src="test.png"></img>
...more text and html...
</body></html>
"""
Tôi nghĩ rằng thay vì làm pyplot.savefig ('test.png'), nên anh phải để tạo ra một đối tượng cstringIO và sau đó làm điều gì đó như thế này:
mybuffer=cStringIO.StringIO()
pyplot.savefig(mybuffer, format="png")
Nhưng tôi khá lạc mất từ đó. Tất cả các ví dụ tôi đã thấy (ví dụ: http://lost-theory.org/python/dynamicimg.html) liên quan đến việc thực hiện một cái gì đó như
print "Content-type: image/png\n"
và tôi không hiểu cách tích hợp với HTML mà tôi đã xuất.
Khi bạn xuất blob từ 'imageout.py', sau đó trong HTML bạn có thể đặt nguồn hình ảnh thành tập lệnh py không? Trong php bạn sẽ làm điều gì đó dọc theo những dòng đó. – ninMonkey
Kiểm tra http://stackoverflow.com/questions/1207190/embedding-base64-images –