python - 使用 WSGI 创建动态图像,不涉及文件

标签 python image-processing wsgi

我想向我的用户发送动态创建的图像,例如图表、图形等。这些图像是“一次性”图像,它们只会发送给一个用户然后销毁,因此“不涉及任何文件” ".

我想直接将图像发送给用户,而不是先将其保存在文件系统中。使用 PHP,这可以通过将 HTML 文件中的图像链接到 PHP 脚本来实现,例如:

编辑:所以吞下了我的图像标签:

<img src="someScript.php?param1=xyz">

脚本然后将正确的 header (filetype=>jpeg 等)发送到浏览器并直接将图像写回客户端,而不是暂时将其保存到文件系统。

我怎么能用 WSGI 应用程序做这样的事情。目前我正在使用 Python 的内部 SimpleWSGI 服务器。我知道这个服务器主要用于演示目的而不是实际使用,因为它缺乏多线程功能,所以请不要向我指出这一点,我知道这一点,现在它满足我的要求: )

是否真的像将 URL 放入图像标签并使用 WSGI 处理请求一样简单,还是有更好的做法?

有没有人有这方面的经验,可以给我一些建议(请不要是 32 位的)

谢谢,

汤姆

最佳答案

它与 WSGI 或 php 或任何其他特定的网络技术无关。考虑

<img src="someScript.php?param1=xyz">

一般来说,对于 url someScript.php?param1=xyz 服务器应该返回图像类型的数据并且它会工作

考虑这个例子:

from wsgiref.simple_server import make_server

def serveImage(environ, start_response):
    status = '200 OK'
    headers = [('Content-type', 'image/png')]
    start_response(status, headers)

    return open("about.png", "rb").read()

httpd = make_server('', 8000, serveImage)
httpd.serve_forever()

这里任何指向 serveImage 的 url 都会返回一个有效的图像,您可以在任何 img 标签或任何其他可以使用图像的标签位置使用它,例如css 或背景图片

可以使用许多第三方库即时生成图像数据,例如太平船务等 例如,查看使用 python 图像库动态生成图像的示例 http://lost-theory.org/python/dynamicimg.html

关于python - 使用 WSGI 创建动态图像,不涉及文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1001068/

相关文章:

C 中的卷积边缘检测

python - 在pytest中使用键盘中断钩子(Hook)

python - Django:使用sqlite3作为数据库在Heroku上部署应用程序

java - 在给定的图片中找到板矩形

python - 霍夫变换未检测到正确的圆

python - 不同 Flask 实例中的 url_for

python - Mongoengine 聚合不像 mongo 那样工作

Python:如何从 CSV 中获取工作日?

python - 有没有办法在测试时设置 wsgi.input 的值?

Flask 中间件类似于 Express-js