python的flask前端显示图片_flask请求响应内容是一张图片时如何展示?

用 tornado 写过一个

流程大概就是取参数去读本地图片, 再缩放尺寸吐出去import os

import magic

import StringIO

from PIL import Image

from PIL.ExifTags import TAGS

import tornado.web

class img(tornado.web.RequestHandler, tornado.web.StaticFileHandler):

def get_mime(self, path):

mime = magic.Magic(mime=True)

return mime.from_file(path)

def send_img(self, ret, mime_type):

self.set_header("Content-Type", mime_type)

self.set_header('Content-Length', len(ret))

self.finish(ret)

def resize(self, path, size):

mime_type = self.get_mime(path)

if not mime_type or not os.path.exists(path) or not os.path.isfile(path):

raise tornado.web.HTTPError(404)

img = Image.open(path)

_size = tuple([int(s) for s in size.split('x')])

img.thumbnail(_size, Image.ANTIALIAS)

buffer = StringIO.StringIO()

img.save(buffer, mime_type[6:])

ret = buffer.getvalue()

self.send_img(ret, mime_type)

def get(self, path, includ_body=True):

path = self.parse_url_path(path)

abspath = os.path.abspath(os.path.join(self.root, path))

size = self.get_argument('s', None)

if size:

self.resize(abspath, size)

else:

tornado.web.StaticFileHandler.get(self, path, includ_body)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值