我有一个使用Bottle框架用Python编写的简单服务器应用程序。在一条路线上,我创建了一个图像并将其写入流中,我希望将其作为响应返回。我知道如何使用static_file函数返回一个图像文件,但这对我来说代价很高,因为我需要先将图像写入文件。我想直接使用流对象提供图像。我怎么能这样做?
我当前的代码是这样的(文件版本):
@route('/image')
def video_image():
pi_camera.capture("image.jpg", format='jpeg')
return static_file("image.jpg",
root=".",
mimetype='image/jpg')
而不是这个,我想做这样的事情:
@route('/image')
def video_image():
image_buffer = BytesIO()
pi_camera.capture(image_buffer, format='jpeg') # This works without a problem
# What to write here?
答案 0 :(得分:6)
只返回字节。 (您还应该设置Content-Type标头。)
@route('/image')
def video_image():
image_buffer = BytesIO()
pi_camera.capture(image_buffer, format='jpeg') # This works without a problem
image_buffer.seek(0) # this may not be needed
bytes = image_buffer.read()
response.set_header('Content-type', 'image/jpeg')
return bytes