【问题标题】:How can I create API that returns canvas .png without browser?如何创建在没有浏览器的情况下返回 canvas .p​​ng 的 API?
【发布时间】:2016-06-03 07:37:22
【问题描述】:

我需要创建 API,它将输入带有特征的 json 文件,输出将是 png 图像(或 base64),它将代表 OpenLayers 3 地图的画布(canvas.toDataUrl())。我不需要在浏览器中显示地图,甚至不需要打开浏览器。只是作为一些 url /api/getMapImage 的 API,它将返回输入 json 的图像。我想使用 NodeJS。我已经有 javascript 可以执行所有必需的操作(例如定义地图、将画布作为图像)。

这可能吗?

【问题讨论】:

标签: json node.js api canvas openlayers-3


【解决方案1】:

目前还不清楚您到底想做什么以及如何做,没有代码示例和您迄今为止尝试过的信息,所以我只能为您指出正确的方向:

有一个node-canvas 模块可以让您执行this example 之类的操作:

var Canvas = require('canvas')
  , Image = Canvas.Image
  , canvas = new Canvas(200, 200)
  , ctx = canvas.getContext('2d');

ctx.font = '30px Impact';
ctx.rotate(.1);
ctx.fillText("Awesome!", 50, 100);

var te = ctx.measureText('Awesome!');
ctx.strokeStyle = 'rgba(0,0,0,0.5)';
ctx.beginPath();
ctx.lineTo(50, 102);
ctx.lineTo(50 + te.width, 102);
ctx.stroke();

console.log('<img src="' + canvas.toDataURL() + '" />');

您还可以查看 my recent answer 关于 Node.js 中的网络抓取模块的信息。他们可以访问其中包含 JS 的网页,但无需打开浏览器窗口 - 如果您需要运行其他一些特定于浏览器的 JS,这可能是一种更适合您的方式。

另外,openlayers npm 模块对您很有用。

这样含糊不清的问题很难说得更具体,但希望你能有所收获。

【讨论】:

    猜你喜欢
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 2016-01-22
    • 2013-05-02
    • 1970-01-01
    相关资源
    最近更新 更多