Node.js中的HTML到PNG服务器端

我正在寻找一个图书馆采取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)。 我无法弄清楚如何用幻影和GM做到这一点,即使是16像素×16像素的图像(每幅图像250ms),速度也很慢。 我希望能够做到这一点~10毫秒。

编辑:

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

另外,幽灵可以给HTML代码,而不是一个URL? 我看到的所有例子都是用URL,但是给出实际的代码会好很多。

  • 如何检测Node.js中损坏的图像文件?
  • 使用Node.js(和NPM包'psd')parsingAdobe PSD文件,以编程方式replace图像层,然后保存/呈现为PNG
  • OpenCV声明失败types不匹配
  • 将base64图像string转换为可使用node.js提供给浏览器的图像文件
  • GraphicsMagick用于Node.js(GM模块)的性能
  • 将SVG代码转换为node.js中的PNG数据URI
  • 如何使用node.js将二进制数据写入文件?
  • 合并2个图像与node.js和gm
  • 我非常确定,对于这个广泛来说,phantomJS是最好的方法。

    我希望能够做到这一点~10毫秒。

    我相信这是不可能实现的,因为phantomJS甚至下载远程图像的延迟将超过10ms至less1个数量级(对于相当快的和附近的服务器〜250ms),并且对于慢速/远离服务器。 请记住,由于光的速度,networking请求的延迟时间最短。

    如果你只是想添加一个边框或者做一些简单的操作,例如裁剪,旋转,添加文本等等,那么gm就是你所需要的,而且会比phantomJS快得多,但是你的瓶颈仍然可能实际上是下载远程图像来自networking。 如果你已经在服务器的文件系统上有本地映像文件,那么只要做一个gm修改,你可能会有一个进入你的延迟期望的镜头。