我正在寻找一个库来获取一个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)。我不知道如何做到这一点与幻影和通用汽车是非常缓慢的,即使16px x 16px的图像(每幅图像250毫秒)。我希望能降到~10毫秒。
编辑:
注意:我编辑了上面的代码,以显示原始图像已经作为缓冲区存在于内存中(在上面我将其转换为base64)。
另外,是否可以给phantom提供html代码而不是url?我看到的所有例子都有一个url,但是给出实际的代码会更好。
最佳答案
我很确定幻影是最好的方法。
我希望能降到~10毫秒。
我相信这是不可能实现的,因为phantomjs下载远程图像的延迟将超过10ms,至少超过1个数量级(对于一个非常快和附近的服务器大约为250毫秒),对于一个慢速/远程的服务器则超过3个数量级。请记住,由于光速的原因,网络请求的延迟是最小的。
如果你只想添加一个边框或者做一些简单的操作,比如裁剪、旋转、添加文本等等,那么gm就是你所需要的,而且这将比phantomjs快得多,但是你的瓶颈仍然可能是从web上下载远程图像。如果您已经在服务器文件系统的本地有了映像文件,那么只需做一个gm修改,您可能就有机会实现您的延迟希望。
关于node.js - HTML到Node.js中的PNG服务器端,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23795507/