Có và không.
Có, bạn có thể đặt hình ảnh làm dữ liệu Base64 thô. Dưới đây là một tập lệnh nhỏ mà bạn có thể sử dụng để kiểm tra điều này:
import Image
import base64
import StringIO
output = StringIO.StringIO()
im = Image.open("test.png") # Your image here!
im.save(output, format='PNG')
output.seek(0)
output_s = output.read()
b64 = base64.b64encode(output_s)
open("test.html","w+").write('<img src="data:image/png;base64,{0}"/>'.format(b64))
Tuy nhiên, đây thực sự là một ý tưởng tồi. Với nhiều hình thu nhỏ, trang HTML đơn của bạn có thể là 10MB +.
Điều bạn thực sự cần làm là sử dụng chế độ xem Django riêng biệt để trả lại hình ảnh từ đối tượng PIL dưới dạng tệp PNG và sau đó tham chiếu chế độ xem đó trong thuộc tính img
href
trên trang của bạn.
Nguồn
2013-01-15 23:11:39
Bạn có chắc chắn muốn phục vụ hình ảnh trực tiếp từ quá trình Django của mình không?Không chỉ nó sẽ tiêu thụ bộ nhớ quý giá, nó cũng sẽ buộc một sợi hoặc quá trình –
(Không có bất kỳ bằng chứng cứng) Tôi nghĩ rằng bạn tốt hơn nhiều để tiết kiệm hình ảnh và để cho máy chủ web front-end làm các byte-shuffling cho bạn. Hãy xem X-Sendfile (Apache) hoặc X-Accel-Redirect (Nginx). –