Canvas 电子与气流

Canvas 电子与气流,canvas,electron,fabricjs,Canvas,Electron,Fabricjs,我无法让createPngstream与fabricjs一起在electron中工作 嗨,我正在使用织物生成静态横幅 仅使用nodejs就可以很好地工作 现在我的同事也希望这样做,所以我想建立一个 电子应用程序供他使用。但是现在当我试着在electron中运行代码时,我得到了这个错误 未捕获类型错误:canvas.createPNGStream不是函数 我可以在electron中使用createPNGStream,如果我使用canvas whitout fabric? 我能做些什么来解决这个问题

我无法让createPngstream与fabricjs一起在electron中工作

嗨,我正在使用织物生成静态横幅 仅使用nodejs就可以很好地工作

现在我的同事也希望这样做,所以我想建立一个 电子应用程序供他使用。但是现在当我试着在electron中运行代码时,我得到了这个错误

未捕获类型错误:canvas.createPNGStream不是函数

我可以在electron中使用createPNGStream,如果我使用canvas whitout fabric? 我能做些什么来解决这个问题

const fs = require('fs')
const fabric = require('fabric').fabric;

let canvas  = new fabric.Canvas(null, { width: 500, height: 500 });

fabric.Image.fromURL(__dirname+'/lime-cat.jpg', function(img) {
  img.set({left: 0, top: 0});
  canvas.add(img);
});
canvas.renderAll();

let tagline = new fabric.Textbox(tagres, {
fontSize: 50,
width:iWidth,
fixedWidth: iWidth,
fill: '#ffffff',
textAlign:'center',
fontFamily:'font90557',
left: canvas.width/2, top: canvas.height/2, originX: 'center', originY: 'top',
lineHeight:0.8,
shadow: 'rgba(0,0,0,1) 4px 4px 4px'      
});  

canvas.add(tagline);
canvas.renderAll();

const out = fs.createWriteStream(__dirname + '/test.png')
const stream = canvas.createPNGStream()
stream.pipe(out)
out.on('finish', () =>  console.log('The PNG file was created.'))

我想简单地加上这个作为一个评论。。。但显然我需要回答它?!(有些非常奇怪的SO规则!)

我非常确定createPNGStream是canvas的nodejs方法

也在相关部分引用自;

所有这些都只是创建织物画布并将文本对象渲染到画布上。现在,如何创建画布上渲染的任何对象的图像?使用画布实例上可用的createPNGStream方法createPNGStream返回节点的流对象,然后可以使用on('data')将其输出到图像文件中,并写入与图像文件(fs.createWriteStream())对应的流中

fabric.Canvas#createPNGStream是特定于节点的方法之一。其他一切都是一样的-您仍然可以像往常一样创建对象,将它们添加到画布上,修改、渲染等等


解决方案似乎是在服务器上运行node.js、node canvas和fabric。说明在Node.js上标题为“Fabric on Node.js”的一节中进行了概述。我想简单地将其添加为注释。。。但显然我需要回答它?!(有些非常奇怪的SO规则!)

我非常确定createPNGStream是canvas的nodejs方法

也在相关部分引用自;

所有这些都只是创建织物画布并将文本对象渲染到画布上。现在,如何创建画布上渲染的任何对象的图像?使用画布实例上可用的createPNGStream方法createPNGStream返回节点的流对象,然后可以使用on('data')将其输出到图像文件中,并写入与图像文件(fs.createWriteStream())对应的流中

fabric.Canvas#createPNGStream是特定于节点的方法之一。其他一切都是一样的-您仍然可以像往常一样创建对象,将它们添加到画布上,修改、渲染等等


解决方案似乎是在服务器上运行node.js、node canvas和fabric。在Node.js上标题为Fabric的部分中概述了说明
Fabric.StaticCanvas.prototype.createPNGStream=function(){var impl=Fabric.util.getNodeCanvas(this.lowerCanvasEl);返回impl&&impl.createPNGStream();}尝试使用它。
fabric.StaticCanvas.prototype.createPNGStream=function(){var impl=fabric.util.getNodeCanvas(this.lowerCanvasEl);返回impl&&impl.createPNGStream();}尝试使用此选项。这看起来像是对我的真实回答u相关信息和支持您声明的链接uu一切正常!当你有足够的声誉(50)时,你将能够在其他投稿人的帖子上写评论(投票通过)同时,您可能希望查看随着声誉的提高而获得的其他特权这里>>>这看起来像是对我的真实回答u相关信息和支持您声明的链接uu很好!当你有足够的声誉(50)时,你将能够在其他投稿人的帖子上写评论(投票通过)同时,您可能希望在此处查看随着声誉的提高而获得的其他特权>>>