HTML到PNG服务器端在Node.js



我正在寻找一个库采取PNG,将其放置在一些HTML旁边,然后重新渲染为PNG。

示例代码:

var renderingTool = require('renderingTool');
var newPng = renderingTool.pngoutBuffer('' +
    '<div style="border-left: 12px solid red">' +
    '<img src="src="data:image/png;base64,iVBORw0KGgoAAA..." />' +
    '</div>'
);

这将采用PNG图像,在左侧添加红色边框,并将其重新渲染为PNG。

我知道Phantom.js和gm(使用GraphicsMagick)。我不知道如何在Phantom和GM中做到这一点,即使对于16px x 16px的图像(每张图像250毫秒),它也非常慢。我希望能缩短到10毫秒。

编辑:

注意:我编辑了上面的代码,以显示原始图像已经在内存中作为缓冲区(在上面我将其转换为base64)。

另外,可以幻影被给予HTML代码而不是URL?我所看到的所有示例都带有URL,但给出实际代码会更好。

我很确定,从广义上讲,phantomJS是最好的可用方法。

我希望能缩短到10ms。

我认为这是无法实现的,因为phantomJS甚至下载远程图像的延迟将超过10ms至少1个数量级(对于一个相当快和附近的服务器来说~250ms),对于一个慢/远的服务器来说多达3个数量级。请记住,由于光速,网络请求的延迟是最小的。

如果你只是想添加边框或做更简单的操作,如裁剪,旋转,添加文本等,那么gm就是你所需要的,它将比phantomJS快得多,但你的瓶颈仍然可能是实际从网络上下载远程图像。如果您已经在本地服务器的文件系统上有了映像文件,那么只需做一个gm修改,您可能就有机会达到期望的延迟时间。

最新更新