如何在没有浏览器的情况下创建返回画布.png的 API



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

这可能做到吗?

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

有一个节点画布模块,可以让你做类似这个例子的事情:

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() + '" />');

您还可以查看我最近关于 Node 中网页抓取模块的回答。他们可以访问带有JS的网页,但无需打开浏览器窗口 - 如果您需要其他一些特定于浏览器的JS来运行,也许这是一种在您的情况下效果更好的方式。

此外,还有对你有用的openlayers npm模块。

有这样一个模糊的问题很难更具体,但希望你能有所收获。

最新更新