首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mapnik到水瓶

Mapnik到水瓶
EN

Stack Overflow用户
提问于 2019-04-15 22:26:28
回答 1查看 114关注 0票数 0

我试图动态生成Mapnik渲染在一个酒瓶应用程序,并返回图像。我让它像这样工作:

代码语言:javascript
复制
from io import BytesIO
from flask import Flask, send_file
import mapnik

app = Flask(__name__)

@app.route("/")
def serve_image():
    image = mapnik.Image(600, 300)
    mp = mapnik.Map(600, 300)
    mp.background = mapnik.Color('steelblue')
    mapnik.render(mp, image)
    # I would like to avoid the next two lines
    image.save('test.png', 'png')
    with open('test.png') as new_image:
        ret = BytesIO(new_image.read())
    return send_file(ret, mimetype='image/png')

注意:我将文件保存到磁盘(在Mapnik的内部C++工作中完成)和(Python)从磁盘读取文件。我不知道如何以更直接的方式将Mapnik图像放入Python文件缓冲区。

提示:我主要尝试使用Mapnik.Image.tostring方法,但没有成功。我使用较早的Python2.7绑定,因为在Python 3中安装它们很痛苦。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-17 20:29:49

我找到了这个解决方案

代码语言:javascript
复制
from flask import Flask, Response
import mapnik

app = Flask(__name__)

@app.route("/")
def serve_image():
    image = mapnik.Image(600, 300)
    mp = mapnik.Map(600, 300)
    mp.background = mapnik.Color('steelblue')
    mapnik.render(mp, image)
    return Response(image.tostring('png'), mimetype='img/png')

但是,在我的应用程序中,它似乎要慢一些。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55698033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档