How do I return an image in fastAPI?

前端 未结 6 1921
灰色年华
灰色年华 2020-12-14 17:51

Using the python module fastAPI, I can\'t figure out how to return an image. In flask I would do something like this:

@app.route(\"/vector_image\", methods=[         


        
6条回答
  •  忘掉有多难
    2020-12-14 18:35

    Thanks to @biophetik's answer, with an important reminder that caused me confusion: If you're using BytesIO especially with PIL/skimage, make sure to also do img.seek(0) before returning!

    @app.get("/generate")
    def generate(data: str):
      img = generate_image(data)
      print('img=%s' % (img.shape,))
      buf = BytesIO()
      imsave(buf, img, format='JPEG', quality=100)
      buf.seek(0) # important here!
      return StreamingResponse(buf, media_type="image/jpeg",
        headers={'Content-Disposition': 'inline; filename="%s.jpg"' %(data,)})
    

提交回复
热议问题