Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

Gray-Ice

个人博客兼个人网站

没啥好说的,直接看代码吧。这次我写了详细的注释。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from flask import Flask, make_response
from PIL import ImageGrab
import io

app = Flask(__name__)


@app.route("/")
def response():
# 截图
im = ImageGrab.grab()
# 创建BytesIO对象
bio = io.BytesIO()
# 把截的图存储进内存
im.save(bio, format="png")
# 构建响应体
res = make_response(bio.getvalue())
# 设置响应头, content-type声明了数据的类型,以便浏览器识别
res.headers["content-type"] = "image/png"
return res


if __name__ == '__main__':
app.run("localhost", 7788)

不过关于res.headers[“content-type”] = “image/png”这段代码我要说一下,如果不加上这个键值对的话,浏览器说不定会把发送过来的二进制内容当作文本处理,从而让你的图片以文本的形式呈现出来(会显示出一堆乱码)。为什么我会知道这个知识点呢?这是一个因为没有深入了解浏览器工作机制而导致的悲伤的故事。
本篇完。

评论



愿火焰指引你