Articles of node canvas

Paper.js服务器端无法使用接收的图层

为了减less客户端的负载,我们正在尝试在Node Express服务器上展开Paper.js层。 我们有很多图层来平整大量的图像数据。 而不是重写我们的数据结构,我们希望最终得到包含栅格化(展平)图层的新对象。 所以我们有一个Express路线,看起来像这样: app.post('/flatten', function (request, response) { var pdfs = JSON.parse(request.body.pdfs); // Attempt to set up canvas on the server side to work with var canvas = new paper.Canvas(1000, 1000); paper.setup(canvas); paper.view.draw(); for (var i = 0; i < pdfs.length; i++) { var pdf = pdfs[i]; if (pdf !== null) { for […]

PHP – 有什么办法来控制stream程执行?

我有php和nodejs安装在我的服务器。 我打电话通过php使用node canvas的nodejs代码 喜欢: <?php exec(node path/to/the/js/file); ?> 问题: 由于node canvas ,执行的每个进程消耗大约250 Mb的内存。 所以,如果我的服务器有大约8Gb的内存,那么只有32个用户可以在任何时间点使用这个服务,而且如果用户数超过,就有可能导致服务器崩溃。 有什么可扩展的解决scheme来解决这个问题吗? 更新我必须使用Canvas服务器端,因为我的业务需求,所以我使用node canvas ,但它是沉重的消耗内存,这是一个巨大的问题。

节点Canvas / Resemble.js错误:给定的图像尚未完成加载

我正在尝试在节点中使用Resemble.js 。 我在安装canvas / cairo(与OS X Mavericks / XQuarts和Homebrew混合使用)方面遇到了一些麻烦,但最终还是到了那里。 有很远,但我已经打了一堵墙。 function ImageSimilarityChecker(){ var resemble = require("resemble").resemble; var fs = require("fs"); var util = require("util"); this.admitImage = function(imagePath) { fs.readFile(imagePath, function (err, fileData) { if (err) throw err; else { var api = resemble(fileData).onComplete(function(data){ console.log(imagePath); console.log(util.inspect(data)); }); } }); } } new ImageSimilarityChecker().admitImage("./public/images/test.jpg"); 结果在这个错误: /Users/pcoghill/Projects/imgManip/auth/Servers/Farm/node_modules/resemble/lib/server.js:38 context.drawImage(hiddenImage, […]

如何将图像渲染为pdf(canvas和pdfkit)

我有一个nodejs的function,从许多图像生成一个图像,然后从中生成一个PDF文件。 我试图只有一个图像,但我需要添加更多,但这似乎并没有工作 function HelperHandler() { this.pdf = function(req, res, next) { var doc = new PDFDocument; mergeImages(function(err, image) { if (err) return res.json(err); doc.image(image, 100, 100); doc.output(function(string) { res.contentType = "application/pdf"; res.send(string); }); }) } } var mergeImages = function(callback) { var Canvas = require("canvas") , fs = require("fs"); fs.readFile(global.root_path + "/images/bg.jpg", function(err, data) { […]

将图像作为框架添加到gif

所以我想创build一个gif并添加一个图像作为一个框架。 我正在使用gifencoder。 我见过的例子,它很容易添加颜色,TXT等,但我无法弄清楚如何做一个图像相同。 我需要像png文件stream吗? 例如:从网站的彩色框架 let canvas = new Canvas(width, height); var ctx = canvas.getContext('2d'); red rectangle ctx.fillStyle = '#ff0000'; ctx.fillRect(0, 0, 320, 240); encoder.addFrame(ctx); 编辑: 我试图做下面的事情,而框架出现在我的日志,因为想要的帧不添加,没有错误。 在有人build议将base64转换成png / gif之前,这个模块不能添加这样的帧,这就是说,如果你有另外一个想法,请继续说下去。 fs.createReadStream('test.gif') .pipe(new GIFDecoder) //gif-stream .pipe(concat(function(frames) { //concat-frames console.log(frames); for (var i=0; i<frames.length; i++) { encoder.addFrame(frames[i]); } })); 无论我什么尝试充其量我只得到一个黑色的GIF,没有更多。 编辑2: 好吧,所以我试图从gif框架中添加的原因,是因为它看起来更简单。 下面是我尝试获取图像的过程,将其转换为RGBA(我注意到模块接受rgba格式,而不是rgb,也许这就是为什么它总是黑色),然后添加框架。 如果我有数据,添加框架是非常容易的,因为我只是简单地调用一个方法并将数据推入,所以我将会离开它。 var request = […]

表情符号到PNG或JPG在Node.js – 如何?

对于我正在进行的项目,我需要从表情符号(最好是苹果表情符号)生成一个图像文件。 我认为这应该是一个相当简单的事情,但是我使用的每一个工具,我最终碰壁。 我也考虑过使用表情符号集,就像我可以在需要时查询的那样。 不幸的是,我已经链接到的没有Unicode 9.0表情符号,如鳄梨(🥑)虾(🦐)或harambe(🦍)。 你知道这样一个最新的设置? 代码方面,我试过opentype.js,但它不支持.ttc字体,这是我的mac(Apple Color Emoji.ttc)上的emoji字体的扩展名。 我已经将字体转换为.ttf但是也没有工作: var opentype = require('opentype.js'); opentype.load('./build_scripts/apple_color_emoji.ttf', function (err, font) { if (err) { alert('Could not load font: ' + err); } else { console.log("loaded the font",font); var Canvas = require('canvas') , Image = Canvas.Image , canvas = new Canvas(200, 200) , ctx = canvas.getContext('2d'); var path […]

将HTML Canvas / WebGLanimation服务器端录制到video中的最佳方法?

我有一套可以在Canvas(fabric.js)或WebGL(three.js)中制作的animation。 我需要通过脚本自动logging它们,服务器端,并输出一个video文件。 animation包括: 图片 video(带audio) 其他animation/效果 在过去几个月里,我已经研究了很多。 结果 1. 用户PhantomJS + FFMPEG 在无头浏览器(PhantomJS)上运行HTML Canvasanimation并用FFMPEGlogging。 这里的问题是PhantomJS既不支持WebGL也不支持Video元素。 http://phantomjs.org/supported-web-standards.html 2. 使用Websockets使用DataURL将数据发送回服务器 在这里,我们还需要在浏览器上运行animation( 我们不能因为我们必须在服务器上做所有事情 )。 3. 使用节点canvas 这是TJ Holowaychuk的一个库,它允许在Node.js上渲染HTML Canvas。 但它有其自身的局限性,加上我没有真正探索过这个领域。 (如果有人可以更多地了解这个图书馆) 如果有人以前做过,或可以指导我有用的地方。 我们所需要做的就是使用一些数据来创buildanimation并将其logging到video中,而服务器端的所有内容都将logging下来。