问题标签 [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 投票
0 回答
665 浏览

canvas - 在节点画布中使用 Web URL 注册字体

我想使用一个画布,它从 nodejs 服务器端的网页 URL 加载 Google 字体。

我使用了以下代码:

但我收到“找不到路径”错误。我们可以加载registerfont任何网址吗?我已经成功加载了之前下载过的本地字体。但是有没有机会通过网页 URL 加载它们?

0 投票
4 回答
4755 浏览

node.js - node-canvas registerFont 部署后找不到字体文件(在本地工作)

我有一个 Node.js 服务器,它使用节点画布在服务器端的图像上呈现文本。这里是回购:https ://github.com/shawninder/meme-generator (只是git clonenpm inpm run dev本地运行)。

正如您将在代码中注意到的那样,我正在加载Anton字体,这是我从这里registerFont获得的,带有node-canvas 提供的文档化函数

在本地,一切都像魅力一样,但是当我部署到Vercel(以前称为 zeit)时,该行会引发ENOENT错误:

没有这样的文件或目录,lstat '/var/task/fonts'

  • 有没有我可以在这里使用的路径,可以从 Vercel 函数中成功加载字体?
  • 我能否找到一条既能在本地工作又能在部署后工作的单一路径?
0 投票
1 回答
402 浏览

node.js - 画布不正确的 measureText()

我正在制作一个 Discord 机器人并尝试显示某人的级别,例如,我希望它基本上说“级别 1”,但是单词级别和实际级别之间的距离会根据他们所处的级别而变化。所以我试图稍微抵消这个词,但是当我使用 measureText() 时,它显示不正确。代码:

这是当前的输出: 输出 1 输出 2

0 投票
1 回答
1036 浏览

node.js - 使用 node.js 在画布上无法识别 Unicode 表情符号

我正在将 node.js 与 canvas 模块一起使用,并且我正在尝试用它创建一个图像。这一切都运作良好,并且可以使用本地主机按需要运行。当我在 heroku 上托管我的 discord.js 机器人时,不再识别 unicode 表情符号(高于 v6.1 unicode)。Wat会是解决这个问题的方法吗?

请参阅本地主机和 heroku 主机的附件图像。

0 投票
2 回答
971 浏览

node.js - 使用带有 nodejs 的 vega 的画布问题(仅限服务器端)

我已经在 Discord 机器人上工作了几个星期,它基本上编译服务器上的统计数据并推断模式。为了改进它,我想让它以 PNG 格式生成图形,以便将它们发送回用户——简而言之,没有 DOM。为了实现这一点,我正在使用 vega(版本 5.10.1 - 最新)和 node-canvas(版本 2.6.1 - 最新)和 nodejs v12.16.1。

我一直在网上搜索有关 vega 使用的帮助,并发现了一些相互矛盾的来源。我一直在使用此处提供的示例代码: https ://vega.github.io/vega/usage/

问题是我不断收到此错误:

这是给我带来麻烦的代码:

我真的不知道 canvas 或 vega 是如何工作的,所以我不知道是什么导致了这个问题以及如何解决它......但是,问题似乎位于toCanvas()方法内部。任何帮助深表感谢 !

提前致谢 !

0 投票
1 回答
898 浏览

node.js - DiscordJS Canvas 静默失败。为什么?

我一直在学习创建 Discord 机器人的基础知识,并且一直在尝试将 Canvas 与 DiscordJS 一起使用。

我试图按照这个简单的教程进行操作,但我似乎无法找到任何可能出错的线索。

作为参考,这是我在教程中得到的要点。

当此功能触发时,它应该导致机器人向服务器发送“欢迎来到服务器,[此处的成员名称]”作为消息以及指定的附件。

但是,它并没有这样做,而是将消息发送到服务器,根本没有附件。

测试时我也没有错误。

谁能给我一些关于这里可能出了什么问题的指示?

编辑:经过进一步试验,我找到了解决方案。

0 投票
1 回答
252 浏览

discord.js - DiscordJS 反转图像命令不显示任何内容

我有反转图像的代码。由于没有关于它的教程,我尝试按照教程来整理命令。

我记录了图像,它显示正常。当我运行命令时,也没有错误,但图像不显示。

0 投票
0 回答
667 浏览

canvas - 无法使用 node-canvas 加载带有 base64 图像的 svg


使用函数 loadImage 加载 svg(内部带有 base64 图像)文件时出现问题,出现异常:

这是我的代码和测试 svg 文件:

svg 文件: https ://github.com/Automattic/node-canvas/files/4774170/input.svg.zip

当我运行命令时:
node server.js

我收到错误:

在此处输入图像描述


我的环境:

  • 操作系统:MacOS Catalina 10.15.5
  • 节点:v10.16.0
  • NPM:6.9.2
  • 画布:canvas@2.6.1


请帮我解决这个问题。

是否有任何从源代码构建节点画布的文档指南,以便我可以使用节点画布构建和调试(一些指南已过时并且有很多编译错误)。

谢谢!

0 投票
1 回答
677 浏览

node.js - 如何在 NodeJS 中用图像替换颜色

正如我在标题中提到的,如何在 NodeJS 中用图像替换颜色?像绿屏一样

0 投票
1 回答
756 浏览

javascript - FabricJS 自定义字体在节点画布上呈现不正确

在 AWS Lambda 中让自定义字体与 FabricJS / node-canvas 一起使用时,我遇到了障碍。字体正在加载,但是当它们被渲染到画布上时,它们被完全破坏并出现在一行而不是多行上。字母间距(字距调整)也搞砸了,问题可能是因为这个......?

在浏览器中:

浏览器中的 FabricJS

服务器端(AWS Lambda + node-canvas + FabricJS)

带有 AWS Lambda 和节点画布的 Fabric JS 有没有人对这里发生的事情有最模糊的想法?我已经尝试更改 charSpacing 并且不起作用:(我知道可以在节点画布中呈现浏览器中可以看到的内容的精确副本,因为另一个服务正在使用 FabricJS 做同样的事情......

我将永远感激这方面的任何帮助!并提前感谢!!!

凯尔

基于另一个 SO 问题(字符宽度计算错误,某些字体可以自动缩进)我试过fabric.util.clearFabricFontCache(); 了,但这没有效果。

节点画布版本:2.6.1

FabricJS 版本:3.6.3

通过消除过程 - 我相信文本框字体/字体系列详细信息正在被缓存。我已经从加载中删除了自定义字体,我仍然在渲染自定义字体......我在 loadFromJSON 之后使用了 clearFabricFontCache() 并且它仍然显示自定义字体!