问题标签 [node-canvas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6325 浏览

javascript - 在Nodejs中将base64 png转换为jpeg图像

我在Nodejs中使用FabricJS模块。我正在尝试导出一个 Canvas,但它不会(让我很难过)。我得到的只是base64 png数据。jpeg

开始像的数据

无论如何在nodejs中我可以将此图像转换为jpeg?我用谷歌搜索了很多,但找不到解决方案

0 投票
2 回答
2732 浏览

node.js - 将图像作为框架添加到 gif

所以我想创建一个 gif 并将图像添加为框架。我正在使用gifencoder。我已经看过这些例子,而且很容易添加颜色、txt 等,但我不知道如何对图像做同样的事情。我需要像 png 文件流这样的东西吗?

例如:来自网站的色框

编辑:

我尝试做类似下面的事情,而当框架出现在我的日志中时,框架不会被添加,没有错误。在有人建议将 png/gif 转换为 base64 之前,此模块无法添加此类帧,也就是说,如果您有其他想法,请继续说下去。

无论我尝试过什么,我只会得到一个黑色的 gif,仅此而已。

编辑2:

好的,所以我尝试从 gif 中添加帧的原因是因为它看起来更容易。下面是我尝试获取图像并将其转换为 RGBA 的进度(我注意到模块接受 rgba 格式,而不是 rgb,也许这就是它总是黑色的原因)然后添加框架。如果我有数据,添加框架非常容易,因为我只需调用一个方法并将数据推入,所以我将省略它。

0 投票
1 回答
775 浏览

node.js - 从图像中提取 rgba 数据

我正在寻找一种方法来提取图像的所有 rgba 数据。

我从模块画布中遇到了这个getImageData()方法,在我的例子中,它返回一个 10x10 的数组,它只返回一个零。下面是我现在如何提取数据。任何想法,谢谢

0 投票
1 回答
1646 浏览

node.js - 将字体添加到节点画布

在过去的一个小时里,我一直在尝试为我的图像添加字体,但没有成功。不幸的是,虽然这看起来很容易做,但我无法让它发挥作用。

windows 中的目录C:\Users\...\project\fonts\BerlinSansFBRegular.ttf,它可能与我给出路径的方式有关,因为它抛出未处理的承诺拒绝:错误:未找到。

项目文件夹内是我的.js文件和 bat 所在的位置。

0 投票
1 回答
63 浏览

php - PHP - 有没有办法控制进程执行?

我已经安装在我phpnodejs服务器中。我正在调用nodejs使用node canvas通过的代码php

喜欢:

问题:

由于node canvas. _ _ 因此,如果我的服务器有大约8Gb的内存,那么在任何给定时间点只有32 个用户可以使用该服务,并且如果用户数量超过,服务器也有崩溃的风险。

这个问题有任何可扩展的解决方案吗?

更新由于我的业务需求,我必须使用Canvas服务器端,所以我正在使用node canvas,但它大量消耗内存,这是一个巨大的问题。

0 投票
1 回答
2401 浏览

javascript - Node.js 中的 Emoji 到 PNG 或 JPG - 如何?

对于我正在进行的项目,我需要从表情符号(最好是 Apple 表情符号)生成图像文件。我认为这应该是一件相当简单的事情,但我使用的每一个工具,最终都会碰壁。

我还考虑过使用表情符号集,比如可以在需要时查询的表情符号集。不幸的是,我链接的那个没有 Unicode 9.0 表情符号,例如鳄梨 () 虾 () 或 harambe ()。你知道这样一个最新的集合吗?

代码方面,我尝试过 opentype.js,但它不支持 .ttc 字体,这是我 Mac 上表情符号字体的扩展(Apple Color Emoji.ttc)。我已将字体转换为 .ttf 但这也不起作用:

结果如下所示:

结果如下所示:

我试过 fontkit,它应该能够读取 .ttc 文件,但如果我尝试使用 Apple Color Emoji 字体,它会引发错误。

如果我对转换后的 .ttf 文件尝试相同的操作,我最终会得到一些不正确的 svg:

我的问题是,我是否以正确的方式接近这个?将我机器上已有的表情符号转换为 .png 或其他格式似乎应该相当简单,但我就是无法让它工作。

编辑:

我在这个 repo中找到了表情符号名称的十六进制代码列表(对rodrigopolo 大喊大叫)。现在我可以简单地使用它:

不过,很高兴知道是否有人对这个问题有编码解决方案!

进一步编辑:

原来我发现的第一个解决方案只包括最高 Unicode 8.0 的表情符号,而不是 Unicode 9.0。我找到了一个可以提取表情符号的红宝石gemoji。如果您不是 ruby​​ 开发人员(我不是),您可以在 shell 中简单地使用以下命令:

现在,您的 some-directory/emoji 文件夹中有 Unicode 9.0 表情符号!

0 投票
1 回答
177 浏览

node.js - 在服务器和客户端的共享代码中呈现画布界面

我正在尝试编写使用 HTML 画布的共享代码(在服务器和客户端上运行)。

在客户端上,这应该可以正常工作。在服务器上,Node 没有画布(或 DOM),所以我想使用 node-canvas 插件:https ://github.com/Automattic/node-canvas 。

但是,我无法找到一种不会让 webpack 尝试将 node-canvas 捆绑到我的客户端代码中的方法来访问它(这会使 webpack 崩溃)。有什么方法可以加载 node-canvas 以使我可以使用我将在浏览器中使用的相同代码来引用它并且不会使 webpack 严重崩溃?


我目前的努力没有奏效:

canvas.server.js

canvas.client.js

画布.js

正在使用:

不幸的是,webpack 仍然捆绑在 node-canvas 中。

0 投票
2 回答
1226 浏览

javascript - Node.js 节点画布显示 base64 图像

我目前正在将base64图像从客户端传输到我的服务器socket.io。在服务器上,我想将该base64图像渲染到我的画布中。

代码是:

使用该代码,在客户端一切正常,我可以将 base64 图像加载到普通画布中,但在我的服务器上server.js(此代码所在的位置),它不工作,我收到一条错误消息Image is not definednew Image当尝试不创建图像并放入base64字符串,它表示图像或画布除外。

图像创建有什么问题,为什么它不起作用?我该怎么做才能让它发挥作用?

0 投票
1 回答
1959 浏览

javascript - nodejs画布:给定的图像尚未完成加载

我收到此错误:

尝试执行此操作时:

我正在使用节点 8.3.0、节点画布 1.6.6、mac os x 10.12.6。我已经尝试重新安装和重建 cairo、jpg/png 库、pixman、node-canvas,但它对我没有帮助。

0 投票
1 回答
155 浏览

node.js - 应用图像过滤器后调用 toDataURL 时发生 TypeError

版本

fabricjs 2.0.0-beta.6 节点画布 1.6.6 nodejs 6.11.0

重现步骤

nodejs 上的 fabricjs,1.7.16 与图像过滤器一起工作正常,当更新到 2.0.0 时,无法正常工作

预期行为

canvas.toDataURL()返回数据地址

实际行为

returnReply (/data/web/websites/adamlv/node_workspace/monet/node_modules/redis/index.js:192:18)", "在 JavascriptRedisParser.execute (/data/web/websites/adamlv/node_workspace/monet/node_modules/ redis-parser/lib/parser.js:553:10)", "在套接字。(/data/web/websites/adamlv/node_workspace/monet/node_modules/redis/index.js:274:27)", "在 emitOne (events.js:96:13)"