【发布时间】:2014-05-21 23:29:08
【问题描述】:
我正在寻找一个库来获取 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 的,但提供实际代码会更好。
【问题讨论】:
-
HTML 渲染极其复杂。您不太可能找到简单、快速的解决方案。
-
您不会(至少不太可能)直接使用 phantomjs 实现 10 毫秒。而
phantom-node会更慢,因为它使用 child_process 和网络 voodoo 来运行 phantomjs。
标签: node.js png rendering phantomjs graphicsmagick